VIM содержит сотни команд, выучить их все невозможно, да и по правде говоря «зазубривание» — дело неблагодарное. Читая различные факи и туториалы я взял за правило заносить новые для меня команды в отдельный файл, сопровождая их кратким описанием. В процессе работы с редактором я часто заглядываю в этот файл и с течением времени многие команды из него пополняют мой стандартный набор. Своим файлом-шпаргалкой я и хочу с вами поделиться.
Описания команд максимально лаконичны, часто в ущерб точности. Подробную информацию о команде можно посмотреть в документации (:help cmd). Дополнения приветствуются.
* — поиск слова под курсором. Как и при любом другом поиске n и N позволяют перемещаться между совпадениями.
# — то же самое, но в обратном направлении.
gd — переход к локальному объявлению. Переходит к первому упоминанию слова под курсором в пределах функции, игнорируя комментарии.
gD — переход к глобальному объявлению. Аналогично gd, за исключением того, что ищется первое упоминание в пределах файла.
[[ — переход к началу функции.
%s/foo/bar/c — замена с подтверждением.
perldo s/foo/bar/g — perl регулярные выражения.
fx — переместить курсор на первый символ x в текущей строке.
tx — установить курсор перед символом x.
Fx, Tx — в обратном направлении.
; — повторить последнее перемещение.
`. — перейти к последней редактируемой строке.
`` — перейти к последней активной строке.
% — перейти к парной скобке.
= — в визуальном режиме форматирует выделенный текст.
]p — вставка с учетом отступов.
ga — отобразить код символа под курсором в статусной строке.
xp — поменять соседние буквы местами.
J — слияние двух соседних строк.
u — в визуальном режиме переводит выделенный фрагмент в нижний регистр.
U — в верхний.
!sort — в визуальном режиме сортирует выделенный фрагмент. Подобным образом можно применить любую внешнюю команду.
di{ — удалить текст внутри активных фигурных скобок. Работает для любых других скобок и кавычек (спасибо bbbb).
da{ — то же самое вместе со скобками (спасибо paul).
В завершение альтернатива стандартной замене с подтверждением, которой я часто пользуюсь: * или / — поиск кандидата на замену, cw — удаление слова, ввод нового слова, n — переход к следующему совпадению, . — повторение предыдущей команды (замена слова).
Описания команд максимально лаконичны, часто в ущерб точности. Подробную информацию о команде можно посмотреть в документации (:help cmd). Дополнения приветствуются.
Поиск
* — поиск слова под курсором. Как и при любом другом поиске n и N позволяют перемещаться между совпадениями.
# — то же самое, но в обратном направлении.
gd — переход к локальному объявлению. Переходит к первому упоминанию слова под курсором в пределах функции, игнорируя комментарии.
gD — переход к глобальному объявлению. Аналогично gd, за исключением того, что ищется первое упоминание в пределах файла.
[[ — переход к началу функции.
Замена
%s/foo/bar/c — замена с подтверждением.
perldo s/foo/bar/g — perl регулярные выражения.
Перемещение
fx — переместить курсор на первый символ x в текущей строке.
tx — установить курсор перед символом x.
Fx, Tx — в обратном направлении.
; — повторить последнее перемещение.
`. — перейти к последней редактируемой строке.
`` — перейти к последней активной строке.
% — перейти к парной скобке.
Разное
= — в визуальном режиме форматирует выделенный текст.
]p — вставка с учетом отступов.
ga — отобразить код символа под курсором в статусной строке.
xp — поменять соседние буквы местами.
J — слияние двух соседних строк.
u — в визуальном режиме переводит выделенный фрагмент в нижний регистр.
U — в верхний.
!sort — в визуальном режиме сортирует выделенный фрагмент. Подобным образом можно применить любую внешнюю команду.
di{ — удалить текст внутри активных фигурных скобок. Работает для любых других скобок и кавычек (спасибо bbbb).
da{ — то же самое вместе со скобками (спасибо paul).
В завершение альтернатива стандартной замене с подтверждением, которой я часто пользуюсь: * или / — поиск кандидата на замену, cw — удаление слова, ввод нового слова, n — переход к следующему совпадению, . — повторение предыдущей команды (замена слова).