- переходы
- --
Для перехода на строку с номером n, воспользуйтесь командой G.
Так, для перехода к началу текста набирайте 0G, для сотой строки 100G, а для конца -- $G.
Для перехода на n символов в нужную вам сторону можете использовать клавиши со стрелками.
То есть для перехода на 1000 символов вниз наберите 1000 и нажмите стрелку вниз.
Для перемещения по тексту используйте следующие команды: ``(,)'' для перемещения по предложениям, ``{,}'' для параграфов, ``[[,]]'' для функций, ``%'' -- переход к парной скобке, ````'' -- к предыдущему положению, а ``<CTRL>-O, <CTRL>-I'' -- соответственно назад и вперед по истории переходов...
- метки
- -- Используются для отметки позиции (mметка, где меткой является любая буква) и быстрого к ней перехода (`метка).
Метки нижнего регистра действительны в пределах данного файла, метки же верхнего регистра действуют во всех открытых файлах.
Список всех меток можно получить командой marks.
- регистры
- -- Конечно же вам доступно множество именованных регистров (хранилищ данных, буферов).
Регистр отмечается ``"буква''. К нему применимы все стандартные действия -- копирование в него
("меткаy), вырезание ("меткаd), и вставка из него ("меткаp, можете вместо p использовать [p,]p для вставки соответственно перед, или после курсора).
В режиме редактирования вставка из регистра осуществляется по ``<Ctrl>+R метка''.
Для добавления данных в регистр используйте заглавную метку.
Также вы можете писать в регистр, воспользовавшись командой ``qметка'' и завершая запись по ``q''.
Таким образом вы сохраняете макрос, выполнить который можно по ``@метка''.
Регистры с метками ``*'' и ``+'' совпадают с X-Window clipboards, ``%'' -- соответствует редактируемому файлу.
Для просмотра содержимого всех регистров воспользуйтесь командой :registers, либо :reg метка1метка2... для просмотра некоторых...
- фолды
- -- предназначены для сокрытия не нужных в данный момент данных, дабы те не отвлекали внимания.
Например, кода подпрограммы с которой вы в данный момент не работаете.
По умолчанию фолды активированы в режиме их ручной расстановки.
Если вы хотите их автоактивации по отношению к табуляции, то добавьте в конфиг строку set foldmethod=indent.
Все команды для работы с фолдами начинаются с ``z''.
Открытие фолда производится, например, по zo (или стрелке вправо) на нем, закрытие кода в фолд -- по zc...
- сессии
- -- при ведении группы проектов нередко желательно сохранить текущее состояния и настройки редактора, дабы в дальнейшем продолжить работу с того же места. Для этого и предназначены сессии, что создаются командой :mksession /path/to/Session.vim, а читаются простой командой :so /path/to/Session.vim.
Гораздо чаще, впрочем, возникает нужда в сохранении не всей сессии, но только текущего контекста (в что входит, например, положение курсора в коде, текущая расстановка фолдов и много другое, о чем читайте в документации).
Это действие выполняет команда :mkview, чтение -- :loadview.
Очень удобно сделать сохранение и чтение контекста автоматическим при начале и окончании редактирования файла.
У меня это реализовано следующим кодом (применяется для всех файлов, имеющих точку в имени):
au BufWinLeave *.* mkview
au BufWinEnter *.* silent loadview
- поиск и замена
- --
Поиск осуществляется командами ``/'' для поиска (по регулярному выражению) вперед, а ``?'' в обратном направлении.
Для продолжения поиска используйте ``n'', а для прошлого варианта ``N''. Для поиска слова под курсором используются соответственно ``#'' и ``*''.
Для поиска с заменой используйте :%s/что/на что/gic, где ``%'' означает работу со всем текстом (а не с текущей строкой) ``g'' -- глобальная замена (а не первое совпадение), ``i'' -- игнорирование регистра, а ``c'' -- подтверждение каждого действия.
- автодополнение
- --
Производится по содержимому данного файла, а также угазанных в переменной dictionary по нажатию клавиш ``
- отмена
- -- ``u'' для отмены и ``
- смена регистра
- -- ``~'' для выделенного участка (или буквы под курсором).
``U'' -- принудительно установить верхний регистр, а ``u'' соответственно нижний.
- повторить
- -- ``.''.