Язык редактирования документов
Большая часть команд Vim состоят из глагола (требуемого действия) и существительного (аргумента; того, над чем должно быть совершено действие). Также эти существительные называют движениями (movements).
Глаголы
d
=> delete - удалитьc
=> change - заменить (удалить и перейти в режим вставки)>
=> indent - увеличить отступv
=> visually select - переход в режим визуального выделенияy
=> yank - копировать в буфер обмена
Существительные
Могут использоваться с модификатором количества, число должно быть указано перед существительным.
Текстовые объекты:
w
=> word - слово (с позиции курсора и до конца слова)iw
=> inner word - слово (целиком, вне зависимости от положения курсора)b
=> back a word - слово вправо от курсораit
=> inner tag - содержимое html-тегаi"
=> inner quotes - содержимое кавычек (не включая кавычки)ip
=> inner paragraph - весь абзацas
=> a sentence - текущее предложение{
или}
=> begin paragraph, end paragraph - перемещение на строку перед началом или после конца параграфа (в IDE удобно для навигации по методам).
Параметризованные текстовые объекты:
f, F
=> find - действует до первого указанного символа, включая егоt, T
=> find - действует до первого указанного символа, не включая его/
=> search - действует до первого найденного совпадения, не включая его?
=> backward search - действует до первого предыдущего совпадения, включая его.
Буферы и метки
ma
- установить меткуa
'a
- перейти в начало строки, в которой установлена меткаa
(backtick)a
- перейти на точное место, в котором установлена меткаa
"a
- работа с буферомa
Профессиональные советы
Использование регулярных выражений
Команда замены (substitute) может быть использована для подсчета количества значений в файле, общий вид команды:
:%s/<Regex>/<Regex>/<Flags>
^ ^ ^
| | +---- - флаги, детализирующие команду
| +------------ - регулярка, описывающая требуемый текст
+-------------------- - регулярка, описывающая искомый текст
Для подсчета значений команда должна выглядеть так:
:%s/<Regex>//gn
Флаг g
говорит о необходимости выполнять поиск по всему файлу, а флаг n
указывает на то, что реальную операцию замены проводить не нужно (no-op флаг).
В общем и целом, команды :
могут содержать диапазоны строк:
:10,20 <Command>
=> применить команду к строкам с 10 по 20:%
=> применить команду ко всему файлу:.,$
=> применить команду от текущей строки (.
) до конца файла ($
):.,+21
=> применить команду к 21 строке, начиная с текущей строки