Vi & Vim

Вопросы и ответы для людей, использующих семейства текстовых редакторов vi и Vim

3
Как я могу заставить 'n' идти вперед, даже если я начал искать с '?' или '#'?
Vim имеет (как минимум) два набора команд, которые ищут в противоположных направлениях. Ввод, /а затем шаблон будет искать вперед в документе для шаблона; набрав, ?а затем шаблон будет искать в обратном направлении. Же зависимость существует между *и #командами. То , что мне не нравится то , что эти команды также …

4
Какой самый удобный способ работы с разными клавиатурами в vim?
Иногда мне нужно писать греческие слова, но когда я использую греческую клавиатуру, удар, скажем, <C-p>будет пониматься как, <C-π>а не как команда, которую я намереваюсь. Это можно исправить с помощью :map <C-p> <C-π>. Могу ли я сделать это для всех писем без составления списка всех? PS. Составление списка всего не дает …

2
Аргументы функций подкачки
При рефакторинге кода было бы полезно поменять аргументы функций. Изменение, например: func(foo[0], bar(), baz.spam) в func(baz.spam, foo[0], bar()) Есть ли способ поменять местами аргументы влево / вправо, оставив в скобках функции и запятые? Обратите внимание, что это может стать довольно сложным, если вы хотите учесть аргументы, которые сами по себе …
19 macro  refactor 

8
Как автоматически отключить «hlsearch» после завершения поиска?
Мне нравится настройка "hlsearch", но после того, как я закончу поиск, я нахожу это противным. Особенно, если я ищу что-то, что имеет много совпадений. Я знаю, что могу отключить это с :set nohlsearch Но это занимает целых 16 нажатий клавиш, и что еще более досадно, я должен снова включить его …
19 search  highlight 

2
Какая связь между vi, nvi и vim?
В некоторых UNIX-системах иногда я обнаруживал команду с именем nvi. Это был редактор в стиле vi, без особой функциональности. Может быть, это была вилка старого vi? В любом случае, какие viверсии являются ответвлением от других, а какие являются независимыми разработками? Есть ли у них «родословная», похожая на юниксы?

1
Понимание комбинации CTRL-U
В этом ответе я столкнулся с CTRL-Uвызовом используемой функции после :и до фактического имени функции. :nnoremap <buffer> <cr> :<C-U>call append('.', repeat([''],v:count1))<cr> Вот что говорит помощь: CTRL-U Scroll window Upwards in the buffer. The number of lines comes from the scroll option (default: half a screen). If [count] given, first set …

6
Могу ли я соединить строки запятой (или другим символом)?
Я знаю, что могу объединять строки в Vim с Jнесколькими вариантами ( gJи т. Д.); Jбудет «Удалить отступ и вставить до двух пробелов» . Но есть ли простой способ вставить другой символ вместо двух пробелов? Например, запятая ( ,) или запятая и пробел ( ,)? Данный: 8 9 10 32 …

3
Как сделать регулярные выражения не жадными?
Я пытаюсь использовать регулярные выражения для замены текста в файле (заменить полный URL-адрес просто протокол / домен /): :%s/\(https\?:\/\/.*?\/\).*/\1/gc К сожалению .*?не совпадает строка, даже пытаясь уйти от ?квантификатора? Как избежать использования жадного квантификатора в vim?


5
После копирования визуального выделения на клавиатуру вернитесь в исходное местоположение.
Мой курсор находится в середине абзаца, когда я вдруг решил, что мне нужно скопировать этот абзац: Поэтому я набираю, vipчтобы выбрать абзац визуально: Теперь я нажимаю, cmd+Cчтобы скопировать в буфер обмена (это может отличаться в вашей системе, но не должно относиться к основному вопросу моего поста), что оставляет мой курсор …

2
Заменить строку без изменения регистра?
Из-за извращения в предметно-ориентированном языке, с которым я работаю, я часто сталкиваюсь с задачей (выборочно, а не глобально) замены termили TERMс wordили WORD, соответственно. Это означает, что я ищу без учета регистраterm и хочу заменить его, word сохраняя при этом прописные / строчные буквы оригинала termнетронутыми . Поскольку проверка целого …
18 substitute 

1
Как мне узнать фактическую высоту и ширину Vim?
winheight()и winwidth()вернуть количество столбцов / строк в текущем окне. То, что я ищу, - это что-то ближе к реальной высоте и ширине области редактирования или отображаемой области, если выполняется в терминале. Проблема с winheight()и в winwidth()том , что соотношение сторон рассчитаны из этих значений вне связи с фактическим соотношением сторон. …

5
Можно ли передать команды vim в vim?
Я хочу запустить следующую оболочку. wea-this is the end of the second word | vim j exit 0 Я надеялся, что это будет wнаправлять нажатия клавиш (двигаться вперед по слову), затем e(конец слова), затем a(добавлять), затем -this is the end of the second word(текст) в документ Vim с именем, в …
18 invocation 

4
Очистить строку быстрее, чем [0] [d] [$]
Есть ли более быстрый способ стереть текст в строке, чем нажмите, 0чтобы перейти к началу, затем нажатием d$удалить до конца строки? Кроме того, что если я захочу удалить все, кроме отступа? Есть способ сделать это?

1
Большие числа заставляют vim бежать медленно?
Это кажется действительно глупым вопросом, но у меня есть файл Python, в котором есть число длиной в тысячу цифр, и этот файл, кажется, работает очень медленно, я не уверен, что происходит какая-то обработка, которую я незнаю о. Я нажимаю на линию jи появляется определенная пауза в ~ 1 секунду, что …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.