Инструменты пользователя

Инструменты сайта


vim:additional

Это старая версия документа!


# Vim: движемся дальше

В этой заметке мы рассмотрим новые приёмы работы с Vim, включая сокращения, автозавершение слов и редактирование нескольких документов в рамках одной Vim-сессии.

## Автозавершение слов

Хотя изучение Vim и может показаться сложной задачей на первых этапах, будьте уверены в том, что в будущем умение работать с ним сэкономит вам немало времени. Одним из способов, которыми Vim поможет сэкономить вам время, является автозавершение слов. Эта возможность Vim часто используется разработчиками и системными администраторами при редактировании исходных кодов программ или конфигурационных файлов.

Автозаврешение работает следующим образом: Когда вы набираете какое-нибудь длинное слово, которое _уже встречается где-то в тексте_, нажмите Ctrl+p или Ctrl+n в процессе набора слова.

Например, у вас в тексте уже есть слово «searching». Теперь начните вводить это слово где-нибудь в тексте, при этом наберите только первые буквы, например «sea», и нажмите Ctrl+p. Vim автоматически завершит слово «searching» или предложит варианты слов, начинающихся с «sea», если таковые имеются.

Если имеется несколько вариантов завершения слова, то после нажатия Ctrl+p вы можете продолжить набирать слово, сужая тем самым область предлагаемых Vim вариантов слов. Или же вы можете просто выбрать нужное слово из списка при помощи клавиш со стрелками и затем нажать Tab. Если Vim не найдёт в документе ни одного подходящего слова, вы получите сообщение «pattern not found».

В чём разница между командами Ctrl+p и Ctrl+n? В том, что _первая ищет слова в обратном направлении_, относительно текущего, _а вторая — в прямом_. Во многих случаях люди не делают большой разницы между этими командами.

## Сокращения

Как вы уже наверное заметили, Vim является отличным редактором для людей, которые любят работать с клавиатуры. Среди многих возможностей редактора в этом отношении имеется ещё одна мощная штука — сокращения, которые вы можете настраивать «на лету», в процессе редактирования. Давайте посмотрим, что это такое.

Представьте, что вы редактируете какой-то текст, а нём часто-густо встречается одно и то же длинное слово, которое вы уже замучились набирать. Это может быть чья-то фамилия или название какой-то компании. Итак, если вы не хотите набирать постоянно «ReallyLongWord», просто _сделайте для него сокращение в командном режиме_:

``` :ab rlw ReallyLongWord ```

Первый аргумент команды :ab — это, собственно, само сокращение, а второй — это слово, до которого будет расширено сокращение. Теперь если, набирая текст, вы введёте слово «rlw», Vim автоматически заменит его на «ReallyLongWord». Просто, не правда ли?

Что делать, если сокращение вам больше не нужно и вы хотите его удалить? Просто закройте Vim и все определённые сокращения автоматически удалятся. Также можно _удалить сокращение_ не выходя из редактора при помощи команды:

``` :una rlw ```

## Мэпинг

Оценили возможности использования сокращений? А что, если вам необходимо выполнить последовательность определённых команд по нажатию горячей клавиши или нескольких клавиш? Здесь вам поможет мэпинг.

Простой пример. Vim умеет подсвечивать результаты поиска. Эта возможность обычно отключена по умолчанию. Если вы выполните ``` ?searchitem ``` или ``` /searchitem ```

вы будете автоматически перемещены к первому результату поиска, однако вам _не будут видны оставшиеся найденные термы_.

Если же вы хотите видеть все вхождения искомого терма, вам нужно будет включить подсветку поиска. Автор находит подсветку найденного отвлекающей, однако она действительно необходима и полезна в работе. Так, в конфигурационном файле Vim автора есть строка, выполняющая мэпинг:

``` nmap <silent> <C-n> <Esc>:call ToggleHLSearch ()<CR> ```

Эта строка настраивает мэпинг комбинации Ctrl+n для включения/отключения функции подсветки результатов поиска. Сперва «нажимается» клавиша Escape, чтобы переключиться в командный режим, затем даётся команда :call ToggleHLSearch () и «нажимается» возврат каретки, то бишь Enter.

Другой, более простой пример. Когда автор редактирует чужие статьи, ему удобно двигаться по тексту, проскакивая по нескольку слов за раз. Для удобства автор настроил у себя следующий мэпинг, _перемещающий курсор на пять слов вперёд за раз_:

``` imap ,w 5W ```

Выглядит слегка странно, использовать два нажатия вместо двух нажатий. Однако, лично автору, неудобно держать палец над цифровой клавишей, а удобней использовать вариант, приведённый в примере. В общем, суть не в этом, а в том, чтобы показать читателю пример.

_Чтобы настроенные вами мэпинги и сокращения не исчезали после закрытия Vim, вам нужно добавить их в файл .vimrc, расположенный в вашем домашнем каталоге._

/var/www/html/dokuwiki/data/attic/vim/additional.1658861639.txt.gz · Последнее изменение: (внешнее изменение)