Справочник по VIM

Краткий справочник

СПРАВОЧНИК ПО VIM  Брам Мооленаар

Краткий справочник

Примечание: N указывает, что перед командой может быть использовано число.

Перемещение влево-вправо
hN  hвлево (также: CTRL-H, <BS>, или <Left>)
lN  lвправо (также: <Space> or <Right>)
00к первому символу строки (also: <Home>)
^^к первому непустому символу строки
$N  $к последнему символу строки (на N-1 строк ниже) (также: <End>)
g0N  g0к первому символу в строке экрана (отличается от «0» если строка переносится)
g^N  g^к первому непустому символу в строке экрана (отличается от «^» если строка переносится)
g$N  g$к последнему символу в строке экрана (отличается от «$» если строка переносится)
gmN  gmк середине экранной строки
barN  |к колонке N (по умолчанию: 1)
fN  f{char}к N-ому появлению {char} справа
FN  F{char}к N-ому появлению {char} слева
tN  t{char}к месту перед N-ным появлением {char} справа
TN  T{char}к месту перед N-ным появлением {char} слева
;N  ;повторить последнее «f», «F», «t» или «T» N раз
,N  ,повторить последнее «f», «F», «t» или «T» N раз в противоположном направлении
Перемещение вверх-вниз
kN  kвверх на N строк (также: CTRL-P и <Up>)
jN  jвниз на N строк (также: CTRL-J, CTRL-N, <NL> и <Down>)
N  —вверх на N строк, на первый непустой символ
+N  +вниз на N строк, на первый непустой символ (также: CTRL-M и <CR>)
_N  _вниз на N-1 строк, на первый непустой символ
GN  Gпереход к строке N (по умолчанию к последней строке), на первый непустой символ
ggN  ggпереход к строке N (по умолчанию к первой строке), на первый непустой символ
N%N  %переход к строке N процентов ниже в файле.  N должно быть указано, иначе считается, что это команда |%|.
gkN  gkN экранных строк вверх (отличается от «k» если строка переносится)
gjN  gjN экранных строк вниз (отличается от «j» если строка переносится)
Перемещение по фрагментам текста
wN  wN слов вперёд
WN  WN разделённых пробелами |СЛОВ| вперёд
eN  eвперёд к концу N-ного слова
EN  Eвперёд к концу N-ного разделённого пробелами |СЛОВА|.
bN  bN слов назад
BN  BN разделённых пробелами |СЛОВ| назад
geN  geназад к концу N-ного слова
gEN  gEназад к концу N-ного разделённого пробелами |СЛОВА|
)N  )N предложений вперёд
(N  (N предложений назад
}N  }N абзацев вперёд
{N  {N абзацев назад
]]N  ]]N разделов вперёд, к началу раздела
[[N  [[N разделов назад, к началу раздела
][N  ][N разделов вперёд, в конец раздела
[]N  []N разделов назад, в конец раздела
[(N  [(N раз назад к незакрытой ‘(‘
[{N  [{N раз назад к незакрытой ‘{‘
[mN  [mN раз назад к началу метода (для Java)
[MN  [MN раз назад в конец метода (для Java)
])N  ])N раз вперёд к незакрытой ‘)’
]}N  ]}N раз вперёд к незакрытой ‘}’
]mN  ]mN раз вперёд к началу метода (для Java)
]MN  ]MN раз вперёд в конец метода (для Java)
[#N  [#N раз назад к незакрытому «#if» или «#else»
]#N  ]#N раз вперёд к незакрытому «#else» или «#endif»
[starN  [*N раз назад к началу комментария «/*»
]starN  ]*N раз вперёд в конец комментария «*/»
Поиск по шаблонам
/N  /{шаблон}[/[смещение]]<CR>поиск вперёд к N-ному появлению {шаблона}
?N  ?{pattern}[?[смещение]]<CR>поиск назад к N-ному появлению {шаблона}
/<CR>N  /<CR>повторить последний поиск, в прямом направлении
?<CR>N  ?<CR>повторить последний поиск, в обратном направлении
nN  nповторить последний поиск
NN  Nповторить последний поиск, в обратном направлении
*N  *искать вперёд по имени под курсором
#N  #искать назад по имени под курсором
g*N  g*как «*», но находить и частичные соответствия
g#N  g#как «#», но находить и частичные соответствия
gdgdперейти к локальному объявлению имени под курсором
gDgDперейти к глобальному объявлению имени под курсором

шаблон

Специальные символы в шаблонах для поиска

значениеmagicnomagic
соответствует любому одиночному символу.\.
соответствует началу строки^^
соответствует <EOL>$$
соответствует началу слова\<\<
соответствует концу слова\>\>
соответствует одному символу из диапазона[a-z]\[a-z]
соответствует одному символу вне диапазона[^a-z]\[^a-z]
соответствует символу-идентификатору\i\i
то же, но исключая цифры\I\I
соответствует символу ключевого слова\k\k
то же, но исключая цифры\K\K
соответствует символу имени файла\f\f
то же, но исключая цифры\F\F
соответствует печатному символу\p\p
то же, но исключая цифры\P\P
соответствует пробельному символу\s\s
соответствует непробельному символу\S\S
соответствует <Esc>\e\e
соответствует <Tab>\t\t
соответствует <CR>\r\r
соответствует <BS>\b\b
соответствует 0 и более предыдущих атомов*\*
соответствует 1 и более предыдущих атомов\+\+
соответствует 0 или 1 предыдущему атому\=\=
соответствует от 2 до 5 предыдущих атомов\{2,5}\{2,5}
разделяет две альтернативы\|\|
группирует шаблон в атом\(\)\(\)

смещения в поиске

Смещения, допустимые в командах поиска

[число][число] строк вниз, в колонке 1
+[число][число] строк вниз, в колонке 1
-[число][число] строк вверх, в колонке 1
e[+число][число] символов справа от конца соответствия
e[-число][число] символов слева от конца соответствия
s[+число][число] символов справа от начала соответствия
s[-число][число] символов слева от начала соответствия
b[+число]то же, что и s[+число] (мнемоника: «begin», «начало»)
b[-число]то же, что и s[-число] (мнемоника: «begin», «начало»)
;{команда-поиска}затем выполнить {команду-поиска}
Отметки и перемещения
mm{a-zA-Z}пометить текущую позицию отметкой {a-zA-Z}
`a`{a-z}перейти к отметке {a-z} в текущем файле
`A`{A-Z}перейти к отметке {A-Z} в любом файле
`0`{0-9}перейти к позиции, в которой находились перед выходом из Vim в последний раз
««перейти к позиции перед последним прыжком
перейти к позиции последнего редактирования файла
`[`[перейти к началу предыдущего текста, который был вклеен или находился в работе
`]`]перейти к концу предыдущего текста, который был вклеен или находился в работе
`<`<перейти к началу (предыдущей) Визуальной области
`>`>перейти к концу (предыдущей) Визуальной области
`.`.перейти к позиции последнего изменения в текущем файле
‘{a-zA-Z0-9[]'»<>.}то же, что и `, но на первом непробельном символе в строке
:marks:marksпоказать активные отметки
CTRL-ON  CTRL-Oперейти к более давней (на N) позиции в списке прыжков
CTRL-IN  CTRL-Iперейти к более свежей (на N) позиции в списке прыжков
:ju:ju[mps]показать список прыжков
Различные перемещения
%%найти следующую круглую или фигурную скобку, комментарий, «#if»/»#else»/»#endif» на этой строке и перейти к её паре
HN  Hперейти к N-ной строке в окне, к первому непробельному символу
MMперейти к средней строке в окне, к первому непробельному символу
LN  Lперейти к N-ной строке снизу, к первому непробельному символу
goN  goперейти к N-ному байту в буфере
:go:[диапазон]go[to] [смещение]перейти к [смещение] байту в буфере
Использование меток
:ta:ta[g][!] {метка}Прыжок к метке {метка}
:ta:[число]ta[g][!]Прыжок к метке, которая на [число] свежее в в списке меток
CTRL-]CTRL-]Прыжок к метке под курсором, при условии, что все изменения сохранены
:ts:ts[elect][!] [метка]Показать совпадающие метки и выбрать ту, к которой надо прыгнуть
:tjump:tj[ump][!] [метка]Прыгнуть к метке [метка] или выбрать из списка, если существует несколько соответствий
:tags:tagsПоказать список меток
CTRL-TN  CTRL-TПрыжок назад от метки, которая на N более старая в списке меток
:po:[число]po[p][!]Прыжок назад от метки, которая на [число] более старая в списке меток
:tnext:[count]tn[ext][!]Прыжок к [число]-й следующей метке в списке меток
:tp:[число]tp[revious][!]Прыжок к [число]-й предыдущей метке в списке меток
:tr:[число]tr[ewind][!]Прыжок к [count]-й метке
:tl:tl[ast][!]Прыжок к последней метке
:ptag:pt[ag] {метка}Показать метку {метка} в окне предварительного просмотра
CTRL-W }CTRL-W }как  CTRL-], но показывать в окне предварительного просмотра
:pts:pts[elect]как «:tselect», но показывать в окне предварительного просмотра
:ptjump:ptj[ump]как «:tjump», но показывать в окне предварительного просмотра
:pclose:pc[lose]закрыть окно предварительного просмотра метки
CTRL-W zCTRL-W zзакрыть окно предварительного просмотра метки
Прокрутка
CTRL-EN  CTRL-Eокна N строк вниз (по умолчанию: 1)
CTRL-DN  CTRL-Dокна N строк вниз (по умолчанию: 1/2 окна)
CTRL-FN  CTRL-Fокна N страниц вперёд (т.е. вниз)
CTRL-YN  CTRL-Yокна N строк вверх (по умолчанию: 1)
CTRL-UN  CTRL-Uокна N строк вверх (по умолчанию: 1/2 окна)
CTRL-BN  CTRL-Bокна N страниц назад (т.е. вверх)
z<CR>z<CR> или ztобновить, поместив текущую строку вверху окна
z.z. или zzобновить, поместив текущую строку в середине окна
z-z- или zbобновить, поместив текущую строку внизу окна
Следующие команды работают только если опция ‘wrap’ отключена:
zhN  zhпрокрутка экрана на N символов вправо
zlN  zlпрокрутка экрана на N символов влево
zHN  zHпрокрутка экрана на пол-экрана вправо
zLN  zLпрокрутка экрана на пол-экрана влево
Вставка текста
aN  aдобавить текст после курсора (N раз)
AN  Aдобавить текст в конце строки (N раз)
iN  iвставить текст перед курсором (N раз) (также: <Insert>)
IN  Iвставить текст перед первым непробельным символом строки (N раз)
gIN  gIвставить текст в колонке 1 (N раз)
oN  oоткрыть новую строку под текущей строкой, добавить текст (N раз)
ON  Oоткрыть новую строку над текущей строкой, добавить текст (N раз)
:startinsert:star[tinsert][!]перейти в режим Вставки, если указан [!], то сделать добавление
в режиме Визуального блока:
v_b_IIвставить один и тот же текст перед каждой из выделенных строк
v_b_AAдобавить один и тот же текст после каждой из выделенных строк
Кнопки режима Вставки

Алфавитный список команд, доступных в режиме Вставки

выход из режима Вставки:

i_<Esc><Esc>завершить режим Вставки, вернуться в Обычный режим
i_CTRL-CCTRL-Cкак <Esc>, но без использования сокращений
i_CTRL-OCTRL-O {команда}выполнить {команду} и вернуться в режим Вставки
перемещение:
i_<Up>кнопки курсораперемещение курсора влево/вправо/вверх/вниз
i_<S-Left>shift-left/rightодно слово вправо/влево
i_<S-Up>shift-up/downодин экран вперед/назад
i_<End><End>поместить курсор после последнего символа в строке
i_<Home><Home>поместить курсор к первому символу в строке
Специальные кнопки в режиме Вставки
i_CTRL-VCTRL-V {символ}..вставить литерал как есть, или ввести десятичное значение байта
i_<NL><NL> или <CR> или CTRL-M или CTRL-Jначать новую строку
i_CTRL-ECTRL-Eвставить символы, расположенные ниже курсора
i_CTRL-YCTRL-Yвставить символы, расположенные выше курсора
i_CTRL-ACTRL-Aвставить текст, вставленный перед этим
i_CTRL-@CTRL-@вставить текст, вставленный перед этим и выйти из режима Вставки
i_CTRL-RCTRL-R {0-9a-z%#:.-=»}вставить содержимое регистра
i_CTRL-NCTRL-Nвставить следующее совпадение идентификатора перед курсором
i_CTRL-PCTRL-Pвставить предыдущее совпадение идентификатора перед курсором
i_CTRL-XCTRL-X …завершить слово перед курсором различными способами
i_<BS><BS> или CTRL-Hудалить символ перед курсором
i_<Del><Del>удалить символ под курсором
i_CTRL-WCTRL-Wудалить слово перед курсором
i_CTRL-UCTRL-Uудалить все символы, введённые в текущей строке.
i_CTRL-TCTRL-Tвставить один отступ перед текущей строкой
i_CTRL-DCTRL-Dудалить один отступ перед текущей строкой
i_0_CTRL-D0 CTRL-Dудалить все отступы в текущей строке
i_^_CTRL-D^ CTRL-Dудалить все отступы в текущей строке и восстановить отступы в следующей строке
Диграфы
:dig:dig[raphs]показать текущий список диграфов
:dig:dig[raphs] {симв1}{симв2} {число} …добавить диграф(ы) к списку
В режиме Вставки или командной строки:
i_CTRL-KCTRL-K {симв1} {симв2}введите диграф
i_диграф{char1} <BS> {char2}введите диграф, если установлена опция ‘digraph’
Особые случаи вставки
:r:r [файл]вставить содержимое [файла] ниже курсора
:r!:r! {команда}вставить содержимое стандартного вывода {команды} ниже курсора
Удаление текста
xN  xудалить N символов под курсором и после курсора
<Del>N  <Del>удалить N символов под курсором и после курсора
XN  Xудалить N символов перед курсором
dN  d{перемещение}удалить текст над которым осуществлено {перемещение}
v_d{визуально}dудалить выделенный текст
ddN  ddудалить N строк
DN  Dудалить до конца строки (и еще N-1 строк)
JN  Jсоединить N-1 строк (удалить <EOL>)
v_J{визуально}Jсоединить выделенные строки
gJN  gJкак «J», но без вставки пробелов
v_gJ{визуально}gJкак «{визуально}J», но без вставки пробелов
:d:[диапазон]d [x]удалить [диапазон] строк [в регистр x]
Копирование и перемещение текста
кавычка«{символ}использовать регистр {символ} для последующей операции удаления, копирования или вклейки
:reg:regпоказать содержимое всех регистров
:reg:reg {арг}показать содержимое всех регистров, указанных в {арг}
yN  y{motion}скопировать в регистр текст, над которым произведено {перемещение}
v_y{визуально}yскопировать выделенный текст в регистр
yyN  yyскопировать в регистр N строк
YN  Yскопировать в регистр N строк
pN  pвклеить содержимое регистра после курсора (N раз)
PN  Pвклеить содержимое регистра перед курсором (N раз)
]pN  ]pкак p, но с применением отступов к текущей строке
[pN  [pкак P, но с применением отступов к текущей строке
gpN  gpкак p, но с перемещением курсора к точке после нового текста
gPN  gPкак P, но с перемещением курсора к точке после нового текста
Изменение текста
rN  r{символ}заменить N символов {символом}
grN  gr{символ}заменить N символов без изменения внешнего вида текста
RN  Rперейти в режим Замены (повторить введённый текст N раз)
gRN  gRперейти в режим виртуальной Замены: похоже на обычный режим замены, но без изменения внешнего вида текста
v_b_r{визуально}r{символ}в режиме Визуального блока: заменить каждый символ выделенного текста {символом} (изменить = удалить текст и перейти в режим вставки)
cN  c{перемещение}изменить текст, к которому применено {перемещение}
v_c{визуально}cизменить выделенный текст
ccN  ccизменить N строк
SN  Sизменить N строк
CN  Cизменить текст до конца строки (и еще N-1 строк)
sN  sизменить N символов
v_b_c{визуально}cв режиме Визуального блока: Изменить каждую из выделенных строк и перейти к вводу текста
v_b_C{визуально}Cв режиме Визуального блока: Изменить каждую из выделенных строк до конца строки и перейти к вводу текста
~N  ~изменить регистр у N символов, перемещая курсор вперёд
v_~{визуально}~изменить регистр выделенного текста
v_u{визуально}uнаписать выделенный текст в нижнем регистре (строчными)
v_U{визуально}Uнаписать выделенный текст в верхнем регистре (прописными)
g~g~{перемещение}изменить регистр у текста, к которому применено {перемещение}
gugu{перемещение}написать текст, к которому применено {перемещение}, в нижнем регистре (строчными)
gUgU{перемещение}написать текст, к которому применено {перемещение}, в верхнем регистре (прописными)
v_g?{визуально}g?преобразовать выделенный текст по алгоритму кодирования rot13
g?g?{перемещение}преобразовать текст, к которому применено {перемещение}, по алгоритму кодирования rot13
CTRL-AN  CTRL-Aдобавить N к числу в позиции курсора или после него
CTRL-XN  CTRL-Xвычесть N из числа в позиции курсора или после него
<N  <{перемещение}переместить строки, к которым применено {перемещение} на ширину одного отступа влево
<<N  <<переместить N строк на ширину одного отступа влево
>N  >{перемещение}переместить строки, к которым применено {перемещение} на ширину одного отступа вправо
>>N  >>переместить N строк на ширину одного отступа вправо
gqN  gq{перемещение}форматировать строки, к которым применено {перемещение} на ширину ‘textwidth’
:ce:[диапазон]ce[nter] [ширина]выровнять строки в [диапазоне] по центру
:le:[диапазон]le[ft] [отступ]выровнять строки в [диапазоне] (с [отступом]) по левому краю
:ri:[диапазон]ri[ght] [ширина]выровнять строки в [диапазоне] по правому краю
Сложные изменения
!N  !{перемещение}{команда}<CR>фильтровать строки, к которым применено перемещение, при помощи {команды}
!!N  !!{команда}<CR>фильтровать N строк при помощи {команды}
v_!{визуально}!{команда}<CR>фильтровать выделенный текст при помощи {команды}
:диапазон!:[диапазон]! {команда}<CR>фильтровать строки в [диапазоне] при помощи {команды}
=N  ={перемещение}фильтровать строки, к которым применено перемещение, при помощи программы ‘equalprg’
==N  ==фильтровать N строк при помощи программы ‘equalprg’
v_={визуально}=фильтровать выделенные строки при помощи программы ‘equalprg’
:s:[диапазон]s[ubstitute]/{шаблон}/{строка}/[g][c]заменить соответствие {шаблону} на {строку} в [диапазоне] строк;
  [g] заменяет все соответствия {шаблону};
  [c] требует подтверждения каждой замены
:s:[диапазон]s[ubstitute] [g][c]повторить предыдущую команду «:s» с новым диапазоном и опциями
&&повторить предыдущую команду «:s» на текущей строке без опций
:ret:[диапазон]ret[ab][!] [табуляция]установить ‘tabstop’ в новое значение и изменить пробелы в соответствии с новым значением
Визуальный режим (список команд Визуального режима)
vvначать выделение символов
VVначать выделение строк
CTRL-VCTRL-Vначать выделение блока
v_ooпереместить курсор в начало выделенной области
gvgvначать выделение в предыдущей визуальной области
v_vvначать или прекратить выделение символов
v_VVначать или прекратить выделение строк
v_CTRL-VCTRL-Vначать или прекратить выделение блока

Переместите курсор и примените к выделенному тексту требуемую команду

Текстовые объекты (только в Визуальном режиме или после оператора)
v_awN  awВыделить «слово»
v_iwN  iwВыделить «внутреннее слово»
v_aWN  aWВыделить |СЛОВО|»
v_iWN  iWВыделить внутреннее |СЛОВО|»
v_asN  asВыделить «предложение»
v_isN  isВыделить «внутреннее предложение»
v_apN  apВыделить «абзац»
v_ipN  ipВыделить «внутренний абзац»
v_abN  abВыделить «блок» (от «[(» до «])»)
v_ibN  ibВыделить «внутренний блок» (от «[(» до «])»)
v_aBN  aBВыделить «Блок» (от «[{» до «]}»)
v_iBN  iBВыделить «внутренний Блок» (от «[{» до «]}»)
Повторение команд
.N  .повторить последнее изменение (с новым числом N)
qq{a-z}записать набранные символы в регистр {a-z}
qq{A-Z}записать набранные символы, добавляя к регистру {a-z}
qqзакончить запись
@N  @{a-z}выполнить содержимое регистра {a-z} (N раз)
@@N  @@повторить предыдущую команду @{a-z} (N раз)
:@:@{a-z}выполнить содержимое регистра {a-z} в виде команды Ex
:@@:@@повторить предыдущую команду :@{a-z}
:g:[диапазон]g[lobal]/{шаблон}/[команда]Выполнить команду Ex [команда] (по умолчанию: «:p») на строках в [диапазоне] учитывая соответствие {шаблону}.
:g:[диапазон]g[lobal]!/{шаблон}/[команда]Выполнить команду Ex [cmd] (по умолчанию: «:p») на строках в [диапазоне] где НЕТ соответствия {шаблону}.
:so:so[urce] {файл}Прочитать команды Ex из {файла}.
:so:so[urce]! {файл}Прочитать команды Vim из {файла}.
:sl:sl[eep] [sec]ничего не делать в течение [sec] секунд
gsN  gsничего не делать в течение N секунд
Привязки клавиш
:map:ma[p] {lhs} {rhs}Привязать {lhs} к {rhs} в Обычном и Визуальном режимах.
:map!:ma[p]! {lhs} {rhs}Привязать {lhs} к {rhs} в режимах Вставки и  командной строки.
:noremap:no[remap][!] {lhs} {rhs}То же, что и «:map», но без повторной привязки для {rhs}
:unmap:unm[ap] {lhs}Удалить привязку {lhs} для Обычного и Визуального режимов.
:unmap!:unm[ap]! {lhs}Удалить привязку {lhs} для режимов Вставки и командной строки.
:map_l:ma[p] [lhs]Показать привязки (начиная с [lhs]) для Обычного и Визуального режимов.
:map_l!:ma[p]! [lhs]Показать привязки (начиная с [lhs]) для режимов Вставки и командной строки.
:cmap:cmap/:cunmap/:cnoremapкак «:map!»/»:unmap!»/»:noremap!», но только для режима командной строки
:imap:imap/:iunmap/:inoremapкак «:map!»/»:unmap!»/»:noremap!», но только для режима Вставки
:nmap:nmap/:nunmap/:nnoremapкак «:map»/»:unmap»/»:noremap», но только для Обычного режима
:vmap:vmap/:vunmap/:vnoremapкак «:map»/»:unmap»/»:noremap», но только для Визуального режима
:omap:omap/:ounmap/:onoremapкак «:map»/»:unmap»/»:noremap», но только для режима ожидания оператора
:mapc:mapc[lear]удалить привязки для обычного и Визуального режимов
:mapc:mapc[lear]!удалить привязки для режимов Вставки и командной строки
:imapc:imapc[lear]удалить привязки для режима Вставки
:vmapc:vmapc[lear]удалить привязки для Визуального режима
:omapc:omapc[lear]удалить привязки для режима ожидания оператора
:nmapc:nmapc[lear]удалить привязки для обычного режима
:cmapc:cmapc[lear]удалить привязки для режима командной строки
:mkexrc:mk[exrc][!] [файл]записать текущие привязки, сокращения и  настройки в [файл] (по умолчанию: «.exrc»; добавьте ! для того, чтобы переписать существующий файл).
:mkvimrc:mkv[imrc][!] [файл]то же, что и «:mkexrc», но с «.vimrc» по умолчанию
:mksession:mks[ession][!] [файл]то же, что и «:mkvimrc», но с сохранением существующих файлов, окон и т.д., чтобы продолжить текущую сессию позднее
Сокращения
:abbreviate:ab[breviate] {lhs} {rhs}добавить сокращение {lhs} для {rhs}
:abbreviate:ab[breviate] {lhs}показать сокращения, начинающиеся с {lhs}
:abbreviate:ab[breviate]показать все сокращения
:unabbreviate:una[bbreviate] {lhs}удалить сокращение {lhs}
:noreabbrev:norea[bbrev] [lhs] [rhs]как «:ab», но без переопределения привязки [rhs]
:iabbrev:iab/:iunab/:inoreabкак «:ab», но только для режима Вставки
:cabbrev:cab/:cunab/:cnoreabкак «:ab», но только для режима командной строки
:abclear:abc[lear]удалить все сокращения
:cabclear:cabc[lear]удалить все сокращения для режима командной строки
:iabclear:iabc[lear]удалить все сокращения для режима Вставки
Опции
:set:se[t]Показать все изменённые опции.
:set:se[t] allПоказать все не-termcap опции.
:set:se[t] termcapПоказать все termcap опции.
:set:se[t] {опция}Включить опцию с булевым значением, показать значение числовой или строковой опции.
:set:se[t] no{option}Выключить опцию с булевым значением.
:set:se[t] inv{option}Изменить булево значение опции на обратное.
:set:se[t] {опция}={значение}Установить числовую или строковую опцию в {значение}.
:set:se[t] {опция}+={значение}добавить {значение} к строковой опции или прибавить {значение} к числовой опции
:set:se[t] {опция}-={значение}убрать {значение} из строковой опции, вычесть {значение} из числовой опции
:set:se[t] {опция}?Показать значение {опции}.
:set:se[t] {опция}&Вернуть {опции} значение по умолчанию.
:setlocal:setl[ocal]подобно «:set», но устанавливает локальное значение для опций, у которых есть локальный контекст
:setglobal:setg[lobal]подобно «:set», но устанавливает глобальное значение локальной опции
:fix:fix[del]Установить значение ‘t_kD’ в соответствии со значением ‘t_kb’.
:options:opt[ions]Открыть окно установки опций, сгруппированных по функциональности, с необходимыми краткими пояснениями и ссылками на справочник.
Краткое пояснение для каждой опции:
‘aleph’‘al’ASCII код буквы Алеф (иврит)
‘allowrevins’‘ari’разрешить CTRL-_ в режимах вставки и командной строки
‘altkeymap’‘akm’второй язык по умолчанию (фарси/иврит)
‘ambiwidth’‘ambw’настраивает обработку символов Unicode с непонятной шириной
‘antialias’‘anti’Mac OS X: использовать «сглаженные» шрифты
‘autochdir’‘acd’изменение каталога на каталог, в котором находится загруженный в активном окне файл
‘arabic’‘arab’использовать в качестве второго языка по умолчанию арабский.
‘arabicshape’‘arshape’выполнять изменение формы арабских символов
‘autoindent’‘ai’наследовать отступ для новой строки
‘autoread’‘ar’автоматически читать файл, если изменён вне Vim
‘autowrite’‘aw’автоматически записывать файл при изменении
‘autowriteall’‘awa’как ‘autowrite’, но работает с большим числом команд
‘background’‘bg’фон «dark» или «light», используется для подсветки синтаксиса
‘backspace’‘bs’определяет режима работы backspace в начале строки
‘backup’‘bk’сохранять резервную копию файла при сохранении
‘backupcopy’‘bkc’сохранять резервную копию, не переименовывать файл
‘backupdir’‘bdir’список каталогов для резервных копий
‘backupext’‘bex’расширения для резервных копий
‘backupskip’‘bsk’не делать резервных копий для файлов, соответствующих шаблону
‘balloondelay’‘bdlay’задержка в миллисекундах перед выдачей пузыря
‘ballooneval’‘beval’включить пузырь
‘binary’‘bin’читать/записывать/редактировать в двоичном режиме
‘bioskey’‘biosk’MS-DOS: использовать для кнопок вызовы bios
‘bomb’ добавлять к файлу метку Byte Order Mark
‘breakat’‘brk’символы, на которых возможен перенос строки
‘browsedir’‘bsdir’каталог, в котором следует запустить проводник по файловой системе
‘bufhidden’‘bh’что делать, если буфер не находится в окне
‘buflisted’‘bl’следует ли показывать буфер в списке буферов
‘buftype’‘bt’настройка специального буфера
‘casemap’‘cmp’определяет правила изменения регистра символов
‘cdpath’‘cd’список каталогов для поиска «:cd»
‘cedit’ клавиша для открытия окна редактирования командной строки
‘charconvert’‘ccv’выражение для преобразования кодировок символов
‘cindent’‘cin’выполнять форматирование текста в стиле C
‘cinkeys’‘cink’кнопки, вызывающие появление отступа, при включённом ‘cindent’
‘cinoptions’‘cino’опции, касающиеся форматирования отступов при включённом ‘cindent’
‘cinwords’‘cinw’слова, на которых ‘si’ и ‘cin’ добавляют отступ
‘clipboard’‘cb’использовать системный буфер обмена в качестве безымянного регистра
‘cmdheight’‘ch’количество строк для командной строки
‘cmdwinheight’‘cwh’высота окна редактирования командной строки
‘columns’‘co’количество колонок в экране
‘comments’‘com’шаблоны для указания начала комментариев
‘commentstring’‘cms’шаблон для комментария; используется для маркера складки
‘compatible’‘cp’как можно более Vi-совместимое поведение
‘complete’‘cpt’указывает как работает дополнение в режиме Вставки
‘confirm’‘cf’запрос о том, что делать с несохранёнными и открытыми только для чтения файлами
‘conskey’‘consk’читать коды кнопок напрямую с консоли (только для MS-DOS)
‘copyindent’‘ci’заставить ‘autoindent’ использовать существующую структуру отступов
‘cpoptions’‘cpo’флаги для Vi-совместимого поведения
‘cscopepathcomp’‘cspc’сколько компонентов пути следует показывать
‘cscopeprg’‘csprg’команда для cscope
‘cscopequickfix’‘csqf’позволяет использовать окно быстрых исправлений для отображения результатов работы cscope.
‘cscopetag’‘cst’использовать cscope для команд меток
‘cscopetagorder’‘csto’определяет порядок поиска «:cstag»
‘cscopeverbose’‘csverb’показывать сообщения при добавлении в базу cscope
‘debug’ «msg» показывает все отладочные сообщения
‘define’‘def’шаблон для поиска определений макросов
‘delcombine’‘deco’удалять совмещенные (мультибайтные) символы по одному
‘dictionary’‘dict’список имён файлов для дополнения по ключевому слову
‘diff’ использовать режим отличий diff для текущего окна
‘diffexpr’‘dex’выражение для создания файла отличий diff
‘diffopt’‘dip’опции для режима отличий diff
‘digraph’‘dg’разрешить ввод диграфов в режиме Вставки
‘directory’‘dir’список каталогов для своп-файлов
‘display’‘dy’список флагов для отображения текста
‘edcompatible’‘ed’включение или выключение флагов для команды «:substitute»
‘eadirection’‘ead’направление работы ‘equalalways’
‘encoding’‘enc’внутренняя кодировка Vim
‘endofline’‘eol’записывать <EOL> для последней строки файла
‘equalalways’‘ea’автоматически делать окна одного размера
‘equalprg’‘ep’внешняя программа для команды «=»
‘errorbells’‘eb’выдавать звуковой сигнал при сообщениях об ошибках
‘errorfile’‘ef’имя файла с ошибками для по умолчанию Быстрого Исправления
‘errorformat’‘efm’описание строк в файле ошибок
‘esckeys’‘ek’распознавать функциональные кнопки в режиме Вставки
‘eventignore’‘ei’события, которые игнорируются автокомандами
‘expandtab’‘et’использовать пробелы при вставке <Tab>
‘exrc’‘ex’читать .vimrc и .exrc в текущем каталоге
‘fileencoding’‘fenc’кодировка файла для мультибайтного текста
‘fileencodings’‘fencs’список автоматически распознаваемых кодировок файла
‘fileformat’‘ff’формат файла для операций I/O
‘fileformats’‘ffs’автоматически распознаваемые значения для ‘fileformat’
‘filetype’‘ft’тип файла, используется автокомандами
‘fillchars’‘fcs’символы, используемые для отображения специальных данных
‘fkmap’‘fk’привязка клавиатуры для фарси
‘foldclose’‘fcl’закрывать складку, если курсор выходит за её пределы
‘foldcolumn’‘fdc’ширина колонки для индикации складок
‘foldenable’‘fen’показать все складки открытыми
‘foldexpr’‘fde’выражение, используемое при ‘foldmethod’ установленном в «expr»
‘foldignore’‘fdi’игнорировать строки, если ‘foldmethod’ установлен в «indent»
‘foldlevel’‘fdl’закрыть складки с уровнем выше указанного
‘foldlevelstart’‘fdls’установка ‘foldlevel’ при начале редактировании файла
‘foldmarker’‘fmr’маркеры, используемые при ‘foldmethod’ установленном в «marker»
‘foldmethod’‘fdm’тип складки
‘foldminlines’‘fml’минимальное число строк для закрытия складки
‘foldnestmax’‘fdn’максимальная глубина складки
‘foldopen’‘fdo’команды, для которых открывается складка
‘foldtext’‘fdt’выражение, которое надо показывать для закрытых складок
‘formatoptions’‘fo’как выполнять автоматическое форматирование
‘formatprg’‘fp’имя внешней программы для команды «gq»
‘gdefault’‘gd’флаг ‘g’ команды «:substitute» по умолчанию включён
‘grepformat’‘gfm’формат вывода ‘grepprg’
‘grepprg’‘gp’программа, используемая для «:grep»
‘guicursor’‘gcr’GUI: установки для формы и мигания курсора
‘guifont’‘gfn’GUI: Имя используемого шрифта
‘guifontset’‘gfs’GUI: Имена мультибайтных шрифтов
‘guifontwide’‘gfw’список шрифтов с символами двойной ширины
‘guiheadroom’‘ghr’GUI: дополнительная высота в пикселах для окна
‘guioptions’‘go’GUI: компоненты и опции, используемые для GUI
‘guipty’ GUI: стараться использовать pseudo-tty для команд «:!»
‘helpfile’‘hf’настройка полного пути к основному файлу справки
‘helpheight’‘hh’минимальная высота нового окна помощи
‘helplang’‘hlg’настройка языковых предпочтений для справочника
‘hidden’‘hid’не выгружать буфер, если |буфер_был_покинут|.
‘highlight’‘hl’установить режим подсветки для различных случаев
‘hlsearch’‘hls’подсвечивать совпадения с шаблоном последнего поиска
‘history’‘hi’количество командных строк, которое хранится в истории
‘hkmap’‘hk’привязка клавиатуры для иврита
‘hkmapp’‘hkp’фонетическая привязка клавиатуры для иврита
‘icon’ разрешить Vim устанавливать текст для значка окна
‘iconstring’ строка для текста значка окна
‘ignorecase’‘ic’регистронезависимый поиск по шаблонам
‘imactivatekey’‘imak’кнопка для активации метода ввода X
‘imcmdline’‘imc’использовать метод ввода при редактировании командной строки
‘imdisable’‘imd’отключает использование метода ввода IM во всех режимах
‘iminsert’‘imi’использовать :lmap или метод ввода IM в режиме Вставки
‘imsearch’‘ims’использовать :lmap или метод ввода IM при наборе шаблона поиска
‘include’‘inc’шаблон для поиска файла include
‘includeexpr’‘inex’выражение для разбора строки include
‘incsearch’‘is’подсвечивать совпадения при наборе шаблона поиска
‘indentexpr’‘inde’выражение для вычисления отступа строки
‘indentkeys’‘indk’кнопки, вызывающие форматирование отступов с ‘indentexpr’
‘infercase’‘inf’поправлять регистр соответствия для дополнения по ключевым словам
‘insertmode’‘im’начать редактирование файла в режиме Вставки
‘isfname’‘isf’символы, входящие в имена файлов и каталогов
‘isident’‘isi’символы, входящие в идентификаторы
‘iskeyword’‘isk’символы, входящие в ключевые слова
‘isprint’‘isp’печатные символы
‘joinspaces’‘js’вставлять два пробела после точки при использовании команды join
‘key’ пароль для шифровки
‘keymap’‘kmp’имя файла с привязкой кнопок клавиатуры
‘keymodel’‘km’разрешить начинать/прекращать выделение при помощи кнопок
‘keywordprg’‘kp’программа для команды «K»
‘langmap’‘lmap’подстановка символов для второго языка
‘langmenu’‘lm’язык меню
‘laststatus’‘ls’отображение статусной строки для последнего окна
‘lazyredraw’‘lz’не обновлять окно во время выполнения макросов
‘linebreak’‘lbr’переносить длинные строки на пробелах
‘lines’ число строк на экране
‘linespace’‘lsp’междустрочное расстояние в пикселах
‘lisp’ автоматическое форматирование отступов для Lisp
‘lispwords’‘lw’слова, изменяющие форматирование отступов для Lisp
‘list’ показывать и
‘listchars’‘lcs’символы для режима list
‘loadplugins’‘lpl’загружать модули сценариев в начале работы
‘magic’ изменяет спецсимволы в шаблонах поиска
‘makeef’‘mef’имя файла ошибок для «:make»
‘makeprg’‘mp’программа используемая для команды «:make»
‘matchpairs’‘mps’пары символов, соответствие которых ищет «%»
‘matchtime’‘mat’количество 1/10 секунды, в течение которых отображается соответствие скобок
‘maxfuncdepth’‘mfd’максимальная глубина рекурсии для пользовательских функций
‘maxmapdepth’‘mmd’максимальная глубина рекурсии для привязок
‘maxmem’‘mm’максимальный объем памяти (в Kbyte) для одного буфера
‘maxmemtot’‘mmt’максимальный объем памяти (в Kbyte) для всех буферов
‘menuitems’‘mis’максимальное число пунктов меню
‘modeline’‘ml’поиск режимной строки в начале или конце файла
‘modelines’‘mls’количество строк, которое просматривать в поисках режимной строки
‘modifiable’‘ma’управление возможностью изменять текст в буфере
‘modified’‘mod’буфер был изменён
‘more’ прерывать показ списков, если экран полностью заполнен
‘mouse’ разрешить использование мыши
‘mousefocus’‘mousef’клавиатурный фокус следует за мышью
‘mousehide’‘mh’прятать курсор мыши при наборе
‘mousemodel’‘mousem’изменяет значение кнопок мыши
‘mouseshape’‘mouses’форма курсора мыши в различных режимах
‘mousetime’‘mouset’максимальное время между щелчками при двойном нажатии мыши
‘nrformats’‘nf’формат чисел, различаемых командой CTRL-A
‘number’‘nu’печатать номер строки перед каждой строкой
‘osfiletype’‘oft’информация о типе файла, специфичная для операционной системы
‘paragraphs’‘para’макросы nroff для разделения параграфов
‘paste’ разрешить вклейку текста
‘pastetoggle’‘pt’код клавиши для горячего изменения значения ‘paste’
‘patchexpr’‘pex’выражение для изменения файла с помощью заплатки
‘patchmode’‘pm’сохранять самую старую версию файла
‘path’‘pa’список каталогов для поиска при использовании «gf» и т.д.
‘preserveindent’‘pi’сохранять существующую структуру отступов при переформатировании отступов
‘previewheight’‘pvh’высота окна предварительного просмотра
‘previewwindow’‘pvw’указывает на окно предварительного просмотра
‘printdevice’‘pdev’имя принтера, который следует использовать для :hardcopy
‘printencoding’‘penc’кодировка, используемая при печати
‘printexpr’‘pexpr’выражение, которое используется для печати файла PostScript при выполнении команды :hardcopy
‘printfont’‘pfn’имя шрифта, используемого при печати командой :hardcopy
‘printheader’‘pheader’формат заголовка страницы, используемого при печати командой :hardcopy
‘printoptions’‘popt’формат вывода :hardcopy
‘readonly’‘ro’запретить запись буфера
‘remap’ разрешить рекурсивную отработку привязок
‘report’ порог для сообщения о количестве измененных строк
‘restorescreen’‘rs’Win32: восстановить экран при выходе
‘revins’‘ri’вставка символов справа налево
‘rightleft’‘rl’окно ориентировано справа налево
‘rightleftcmd’‘rlc’определяет команды, которые позволяют использовать набор справа налево при вводе командной строки
‘ruler’‘ru’показывать в статусной строке номер строки и колонки, где находится курсор
‘rulerformat’‘ruf’настройка формата линейки
‘runtimepath’‘rtp’список каталогов для файлов Vim
‘scroll’‘scr’количество строк для прокрутки с CTRL-U и CTRL-D
‘scrollbind’‘scb’прокручивать окно при прокрутке других окон
‘scrolljump’‘sj’минимальное количество строк для прокрутки
‘scrolloff’‘so’минимальное количество строк сверху и снизу от курсора
‘scrollopt’‘sbo’способ реализации ‘scrollbind’
‘sections’‘sect’макросы nroff для разделения разделов
‘secure’ защищенный режим для чтения .vimrc в текущем каталоге
‘selection’‘sel’используемый тип выделения
‘selectmode’‘slm’когда использовать режим Выделения вместо Визуального режима
‘sessionoptions’‘ssop’настройки для |:mksession|
‘shell’‘sh’имя оболочки для выполнения внешних программ
‘shellcmdflag’‘shcf’аргументы, с которыми запускается оболочка для выполнения внешней команды
‘shellpipe’‘sp’строка для записи вывода «:make» в файл ошибок
‘shellquote’‘shq’символ кавычки, в которые заключается команда оболочки
‘shellredir’‘srr’строка для записи вывода фильтра во временный файл
‘shellslash’‘ssl’использовать прямую косую черту для имен файлов оболочки
‘shelltype’‘st’Amiga: влияет на использование оболочки
‘shellxquote’‘sxq’как ‘shellquote’, но включая перенаправление
‘shiftround’‘sr’округлять отступ до целых shiftwidth
‘shiftwidth’‘sw’количество пробелов для шага (автоматического) форматирования отступов
‘shortmess’‘shm’список флагов для уменьшения длины сообщений
‘shortname’‘sn’не-MS-DOS: имена файлов в формате 8.3
‘showbreak’‘sbr’строка для использования в начале перенесённой строки
‘showcmd’‘sc’показывать (частично) команду в статусной строке
‘showfulltag’‘sft’показывать полный шаблон метки при дополнении метки
‘showmatch’‘sm’кратковременно прыгнуть к соответствующей скобке при вставке новой скобки
‘showmode’‘smd’показывать текущий режим в статусной строке
‘sidescroll’‘ss’минимальное число колонок для горизонтальной прокрутки
‘sidescrolloff’‘siso’минимальное количество колонок слева и справа от курсора
‘smartcase’‘scs’не игнорировать регистр, если шаблон содержит символы в верхнем регистре
‘smartindent’‘si’«Умное» автоформатирование для программ C
‘smarttab’‘sta’использовать ‘shiftwidth’ при вставке
‘softtabstop’‘sts’количество пробелов, которое используется при редактировании
‘splitbelow’‘sb’размещать новое окно при разделение под текущим
‘splitright’‘spr’размещать новое окно при разделении справа от текущего
‘startofline’‘sol’команды перемещают курсор к первому пробелу в строке
‘statusline’‘stl’настройки формата статусной строки
‘suffixes’‘su’суффиксы, которые игнорируются при множественных соответствиях
‘suffixesadd’‘sua’суффиксы, добавляемые при поиске файла
‘swapfile’‘swf’использование своп-файла для буфера
‘swapsync’‘sws’способ синхронизации своп-файла
‘switchbuf’‘swb’поведение редактора при переключении в другой буфер
‘syntax’‘syn’загрузка синтаксических правил для текущего буфера
‘tabstop’‘ts’количество пробелов, которые использует в файле
‘tagbsearch’‘tbs’использование бинарного поиска в файле меток
‘taglength’‘tl’количество значимых символов для метки
‘tagrelative’‘tr’относительные имена файлов в файле меток
‘tags’‘tag’имена файлов, используемые командой tag
‘tagstack’‘tgst’поместить метки в стек меток
‘term’ имя терминала
‘termbidi’‘tbidi’опция используется для указания, что обработкой двунаправленного текста занимается терминал
‘termencoding’‘tenc’кодировка, используемая терминалом
‘terse’ сократить некоторые сообщения
‘textauto’‘ta’устарело, пользуйтесь ‘fileformats’
‘textmode’‘tx’устарело, пользуйтесь ‘fileformat’
‘textwidth’‘tw’максимальная ширина текста при вставке
‘thesaurus’‘tsr’список файла тезауруса для дополнения по ключевым словам
’tildeop’‘top’поведение тильды «~» как команды оператора
‘timeout’‘to’тайм-аут для привязок и кодов кнопок
‘timeoutlen’‘tm’время тайм-аута в миллисекундах
‘title’ разрешить Vim устанавливать название окна
‘titlelen’ процентное количество ‘columns’ используемое для названия окна
‘titleold’ старое название окна, которое будет восстановлено при выходе
‘titlestring’ строка для названия окна Vim
‘toolbar’‘tb’GUI: что показывать на панели инструментов
‘toolbariconsize’‘tbis’задаёт размер значков на инструментальной панели (только для GTK 2)
‘ttimeout’ тайм-аут для привязок
‘ttimeoutlen’‘ttm’тайм-аут для кодов кнопок в миллисекундах
‘ttybuiltin’‘tbi’использовать встроенный termcap перед внешним
‘ttyfast’‘tf’указывает на быстрое соединение с терминалом
‘ttymouse’‘ttym’тип генерируемых кодов мыши
‘ttyscroll’‘tsl’максимальное число строк для прокрутки
‘ttytype’‘tty’синоним ‘term’
‘undolevels’‘ul’максимальное количество изменений, которые можно отменить
‘updatecount’‘uc’прочищать своп файл после данного количества символов
‘updatetime’‘ut’прочищать своп файл по истечении заданного количества миллисекунд
‘verbose’‘vbs’выдавать информативные сообщения
‘viewdir’‘vdir’каталог для записи файлов командой :mkview
‘viewoptions’‘vop’определяет информацию для сохранения :mkview
‘viminfo’‘vi’использовать .viminfo при запуске и выходе
‘virtualedit’‘ve’использование виртуального редактирования
‘visualbell’‘vb’использование визуального сигнала вместо звукового
‘warn’ выдавать предупреждение для команды оболочки при изменении буфера
‘weirdinvert’‘wi’для терминалов со странностями в инверсном видеорежиме
‘whichwrap’‘ww’разрешить указанным кнопкам пересекать границы строк
‘wildchar’‘wc’символ подстановки для командной строки
‘wildcharm’‘wcm’как ‘wildchar’, но работает также с привязками
‘wildignore’‘wig’файлы, соответствующие данному шаблону не дополняются
‘wildmenu’‘wmnu’использовать меню для дополнения командной строки
‘wildmode’‘wim’режим для расширения подстановки ‘wildchar’ в командной строке
‘winaltkeys’‘wak’когда windows перехватывает кнопку ALT
‘winheight’‘wh’минимальное количество строк в текущем окне
‘winfixheight’‘wfh’позволяет сохранять высоту окон при открытии или закрытии других окон
‘winminheight’‘wmh’минимальное количество строк в окнах
‘winminwidth’‘wmw’минимальное количество колонок в окнах
‘winwidth’‘wiw’минимальное количество колонок в текущем окне
‘wrap’ перенос длинных строк на следующую строку экрана
‘wrapmargin’‘wm’количество символов справа, при которых происходит перенос строки
‘wrapscan’‘ws’перенос поиска в конце файла
‘write’ разрешить запись в файл
‘writeany’‘wa’запись в файл без необходимости добавления «!»
‘writebackup’‘wb’делать резервную копию перед записью файла
‘writedelay’‘wd’задержка в миллисекундах после каждого символа (для отладки)
Команды отмены и повторного выполнения
uN  uотменить последние N изменений
CTRL-RN  CTRL-Rвосстановить последние N отменённых изменений
UUвосстановить последнюю изменённую строку
Внешние команды
:shell:sh[ell]запуск оболочки
:!:!{команда}выполнить {команду} при помощи оболочки
KKпосмотреть ключевое слово под курсором при помощи программы ‘keywordprg’ (по умолчанию: «man»)
Команды для Быстрого Исправления
:cc:cc [nr]показать ошибку номер [nr] (по умолчанию: показать текущую)
:cnext:cnпоказать следующую ошибку
:cprevious:cpпоказать предыдущую ошибку
:clist:clпоказать все ошибки
:cfile:cfпрочитать ошибки из файла ‘errorfile’
:cquit:cqвыйти без сохранения и вернуть код ошибки (для компилятора)
:make:make [args]выполнить make, прочитать ошибки и перейти к первой ошибке
:grep:gr[ep] [args]выполнить ‘grepprg’ для поиска соответствий и  перейти к первому соответствию.
Различные команды
CTRL-LCTRL-LОчистить и обновить экран
CTRL-GCTRL-GПоказать имя текущего файла (с путём) и позицию курсора
gagaпоказать значение символа под курсором в коде ASCII в десятичных, шестнадцатеричных и восьмеричных числах
g_CTRL-Gg CTRL-Gпоказать колонку, строку, позицию символа под курсором.
CTRL-CCTRL-Cво время поиска: прервать поиск
dos-CTRL-BreakCTRL-BreakMS-DOS: во время поиска: прервать поиск
<Del><Del>во время ввода числа перед командой: удалить последний символ
:version:ve[rsion]показать информацию о версии
:mode:mode NMS-DOS: установить режим экрана в N (число, C80, C4350, и т.д.)
:normal:norm[al][!] {команда}Выполнить команду обычного режима
QQПерейти в режим «Ex»
:redir:redir >{файл}перенаправить сообщения в {файл}
:silent:silent[!] {команда}выполнить {команду} молча
:confirm:confirm {команда}выйти, записать и т.д., спросив подтверждение в случае несохранённых данных или файлов, открытых только для чтения
:browse:browse {команда}открыть/прочитать/записать файл при помощи системного диалога выбора файлов
Редактирование командной строки
c_<Esc><Esc>покинуть командную строку (если ‘wildchar’ установлен в <Esc>, то требуется нажать дважды)
c_CTRL-VCTRL-V {символ}вставка {символа} как есть
c_CTRL-VCTRL-V {число}ввести десятичное значение символа (до трёх цифр)
c_CTRL-KCTRL-K {симв1} {симв2}ввести диграф (См. Диграфы)
c_CTRL-RCTRL-R {0-9a-z»%#:-=}ввести содержимое регистра
c_<Left><Left>/<Right>перемещение курсора влево/вправо
c_<S-Left><S-Left>/<S-Right>перемещение курсора влево/вправо на одно слово
c_CTRL-BCTRL-B/CTRL-Eперемещение курсора в начало или конец командной строки
c_<BS><BS>удалить символ перед курсором
c_<Del><Del>удалить символ под курсором
c_CTRL-WCTRL-Wудалить слово перед курсором
c_CTRL-UCTRL-Uудалить все символы
c_<Up><Up>/<Down>восстановить из истории командную строку, начинающуюся с этой команды
c_<S-Up><S-Up>/<S-Down>восстановить командную строку из истории
:history:his[tory]показать команды, введённые раннее

 Контекстно-зависимое дополнение в командной строке:

c_подстановка‘wildchar’ (по умолчанию: <Tab>)выполнять дополнение по шаблону перед курсором. Если возникает несколько вариантов, то подаётся звуковой сигнал и показывается первый вариант; повторный ввод ‘wildchar’ показывает следующий вариант.
c_CTRL-DCTRL-Dпоказать все имена, соответствующие шаблону перед курсором
c_CTRL-ACTRL-Aпоказать все имена, соответствующие шаблону перед курсором
c_CTRL-LCTRL-Lвставить самую длинную часть имён, соответствующую шаблону
c_CTRL-NCTRL-Nпосле ‘wildchar’ с несколькими соответствиями: перейти к следующему соответствию
c_CTRL-PCTRL-Pпосле ‘wildchar’ с несколькими соответствиями: перейти к предыдущему соответствию
Диапазоны Ex
:диапазон,разделяет два номера строки
:диапазон;то же самое, устанавливает курсор на первый номер строки перед интерпретацией второго номера
:диапазон{число}абсолютное значение номера строки
:диапазон.текущая строка
:диапазон$последняя строка в файле
:диапазон%соответствует 1,$ (весь файл)
:диапазон*соответствует ‘<,’> (визуальная область)
:диапазон‘tпозиция отметки t
:диапазон/{шаблон}[/]следующая строка с соответствием {шаблону}
:диапазон?{шаблон}[?]предыдущая строка с соответствием {шаблону}
:диапазон+[число]добавить [число] к предыдущему номеру строки (по умолчанию: 1)
:диапазон-[число]вычесть [число] из предыдущего номера строки (по умолчанию: 1)
Специальные символы Ex
:bar|разделяет две команды (кроме «:global» и «:!»)
:кавычка«начало комментария
:_%%текущее имя файла (в тех случаях, когда требуется имя файла)
:_##[число]имя соседнего файла [число] (в тех случаях, когда требуется имя файла)

Замечание: следующие четыре символа набираются буквально; это не специальные клавиши!

:<cword><cword>слово под курсором (в тех случаях, когда требуется имя файла)
:<cWORD><cWORD>СЛОВО под курсором (в тех случаях, когда требуется имя файла) (см. |СЛОВО|)
:<cfile><cfile>имя файла под курсором (в тех случаях, когда требуется имя файла)
:<afile><afile>имя файла для автокоманды (в тех случаях, когда требуется имя файла)
:<sfile><sfile>имя файла для сценария, считанного командой «:source» (в тех случаях, когда требуется имя файла)
 

После «%», «#», «<cfile>», «<sfile>» или «<afile>»

::p:pполный путь
::h:hголова (без имени файла)
::t:tхвост (только само имя файла)
::r:rкорень (без расширения)
::e:eрасширение
::s:s/{шабл}/{замена}/заменить {шабл} на {замену}
  Редактирование файла

Без !: Не выполняется, если текущий буфер изменён.
С !: Отменить все изменения в текущем буфере.

:edit_f:e[dit][!] {файл}Редактировать {файл}.
:edit:e[dit][!]Прочитать текущий файл заново.
:enew:ene[w][!]Редактировать в новом безымянном буфере.
:find:fin[d][!] {файл}Найти {файл} в ‘path’ и редактировать его.
CTRL-^N   CTRL-^Использовать соседний файл N (эквивалентно «:e #N»).
gfgf или ]fРедактировать файл, имя которого находится под курсором
:pwd:pwdПоказать имя текущего каталога.
:cd:cd [путь]Сменить текущий каталог на [путь].
:cd-:cd —Вернуться в предыдущий текущий каталог.
:file:f[ile]Показать имя текущего файла и позицию курсора.
:file:f[ile] {имя}Установить имя текущего файла в {имя}.
:files:filesПоказать имена соседних файлов.
Использование списка аргументов
:args:ar[gs]Показать список аргументов, с текущим файлом в «[]».
:all:all  или :sallОткрыть окно для каждого файла в списке аргументов.
:wn:wn[ext][!]Записать файл и перейти к редактированию следующего.
:wn:wn[ext][!] {файл}Записать в {файл} и перейти к редактированию следующего, если {файл} не существует. Добавление ! переписывает существующий файл.
:wN:wN[ext][!] [файл]Записать файл и перейти к редактированию предыдущего файла.
 в текущем окнев новом окне 
:argument:argu[ment] N:sar[gument] NРедактировать файл N
:next:n[ext]:sn[ext]Редактировать следующий файл
:next_f:n[ext] {список-арг}:sn[ext] {список-арг}определить новый список аргументов и редактировать первый файл
:Next:N[ext]:sN[ext]Редактировать предыдущий файл
:first:fir[st]:sfir[st]Редактировать первый файл
:last:la[st]:sla[st]Редактировать последний файл
Запись и выход из программы
:w:[диапазон]w[rite][!]Запись в текущий файл.
:w_f:[диапазон]w[rite] {файл}Запись в {файл}, за исключением случаев, если файл уже существует.
:w_f:[диапазон]w[rite]! {файл}Запись в {файл}. Существующий файл будет переписан.
:w_a:[диапазон]w[rite][!] >>Добавить в текущий файл.
:w_a:[диапазон]w[rite][!] >> {файл}Добавить в {файл}.
:w_c:[диапазон]w[rite] !{команда}Выполнить {команду} с строками, указанными в [диапазоне] в качестве стандартного ввода.
:up:[диапазон]up[date][!]записать в текущий файл, если внесены изменения
:wall:wa[ll][!]записать все изменённые буферы
:q:q[uit]Выход из текущего буфера, если буфер не изменён. Выйти из Vim, если больше нет буферов, не являющихся буфером справки.
:q:q[uit]!Выйти из текущего буфера в любом случае, изменения будут потеряны. Выйти из Vim, если больше нет буферов, не являющихся буфером справки.
:qa:qa[ll]Выйти из Vim, если нет изменений.
:qa:qa[ll]!Выйти из Vim в любом случае, изменения будут потеряны.
:cq:cqВыйти без записи с возвращением кода ошибки.
:wq:wq[!]Записать в текущий файл и выйти.
:wq:wq[!] {файл}Записать в {файл} и выйти.
:xit:x[it][!] [файл]Как «:wq», но записывать только в том случае, если есть изменения.
ZZZZТо же, что и «:x».
ZQZQТо же, что и «:q!».
:xall:xa[ll][!] или :wqall[!]Записать все изменённые буферы и выйти
:stop:st[op][!]Прервать Vim или запустить новую оболочку. Если включена опция ‘aw’ и нет [!], то записать буфер.
CTRL-ZCTRL-ZТо же, что и «:stop»
Запуск VIM
-vimvim [опции]начать редактирование в пустом буфере
-filevim [опции] {файл} ..начать редактирование одного или нескольких файлов
vim [опции] —прочитать файл со стандартного ввода
-меткаvim [опции] -t {метка}редактировать файл, связанный с {меткой}
-qfvim [опции] -q [имя-файла]начать редактирование в режиме Быстрого Исправления, показать первую ошибку

    Аргументы запуска Vim:

-gui-gзапустить с GUI (также возможны другие опции)
-++[число]поместить курсор на строке [число] (по умолчанию: последняя строка)
-+c+{команда}выполнить {команду} после загрузки файла
-+/+/{шабл} {файл} ..поместить курсор на первом соответствии {шаблону}
-v-vРежим Vi, запустить ex в Обычном режиме
-e-eРежим Ex, запустить vim в режиме Ex
-R-RРежим чтения, предполагает -n
-m-mЗапретить изменения (изменяет опцию ‘write’)
-b-bБинарный режим
-l-lРежим lisp
-A-AРежим арабского (включить опцию ‘arabic’)
-F-FРежим «фарси» (включить ‘fkmap’ и ‘rightleft’)
-H-HРежим «иврит» (включить ‘hkmap’ и ‘rightleft’)
-V-VВыдавать информативные сообщения
-C-CСовместимы режим, включает опцию ‘compatible’
-N-NНесовместимый режим, выключает опцию ‘compatible’
-r-rПоказать список своп-файлов
-r-r {файл} ..Восстановить прерванную сессию редактирования
-n-nНе создавать своп-файл
-o-o [число]открыть [число] окон (по умолчанию: одно для каждого файла)
-f-fGUI: не порождать новый процесс
Amiga: не перезапускать VIM для открытия окна (например для почты)
-s-s {сценарий}сначала прочитать команды из файла {сценария}
-w-w {сценарий}записывать все набранные символы в {сценарий} (добавлять)
-W-W {сценарий}записывать все набранные символы в {сценарий} (переписать)
-T-T {терминал}установить имя терминала
-d-d {устройство}Amiga: открыть {устройство} в качестве консоли
-u-u {vimrc}прочитать инициализацию из {vimrc} вместо других файлов инициализации
-U-U {gvimrc}то же, при запуске GUI
-i-i {viminfo}прочитать данные из {viminfo} вместо других файлов
конец опций, остальные аргументы являются именами файлов
—help—helpпоказать список аргументов и выйти
—version—versionпоказать информацию о версии и выйти
Прочитать файл из стандартного ввода
Автоматические команды

Чтение регистров, отметок, истории при запуске, сохранение при выходе.

:rviminfo:rv[iminfo] [файл]прочитать данные из viminfo [файла]
:rviminfo:rv[iminfo]! [файл]то же, переписав существующие данные
:wviminfo:wv[iminfo] [файл]Добавить данные к viminfo [файл]
:wviminfo:wv[iminfo]! [файл]Записать данные в viminfo [файл]

Автоматическая настройка опций при редактировании файлов

режимная_строкаvim:{аргументы}: ..Размещается в начале или в конце файла (см. опцию ‘ml’), {аргументы} передаются команде «:set»

Автоматическое выполнение команд по заданным событиям.

:autocmd:auПоказать все автокоманды
:autocmd:au {событие}Показать автокоманды для {события}
:autocmd:au {событие} {шаблон} Показать все автокоманды для {события}, соответствующие {шаблону}
:autocmd:au {событие} {шаблон} {команда}Ввести новые автокоманды для {события} соответствующие {шаблону}
:autocmd:au!Удалить все автокоманды
:autocmd:au! {событие}Удалить все автокоманды для {события}
:autocmd:au! * {шаблон}Удалить все автокоманды, соответствующие {шаблону}
:autocmd:au! {событие} {шаблон}Удалить все автокоманды для {события}, соответствующие {шаблону}
:autocmd:au! {событие} {шаблон} {команда}Удалить все автокоманды для {события}, соответствующие {шаблону}, и ввести новые
Команды для работы с окнами
CTRL-W_sCTRL-W s или :splitРазделить окно на две части
:split_f:split {файл}Разделить окно и редактировать {файл} в одном из окон
:vsplit:vsplit {файл}То же, но с вертикальным разделением окна
:vertical:vertical {команда}Использовать вертикальное разделение окна при выполнении {команды}
:sfind:sf[ind] {файл}Разделить окно, найти {файл} в ‘path’ и редактировать его.
CTRL-W_]CTRL-W ]Разделить окно и перейти к метке под курсором
CTRL-W_fCTRL-W fРазделить окно и редактировать файл, имя которого находится под курсором
CTRL-W_^CTRL-W ^Разделить окно и редактировать соседний файл
CTRL-W_nCTRL-W n или :newСоздать новое пустое окно
CTRL-W_qCTRL-W q или :q[uit]Закончить редактирование и закрыть окно
CTRL-W_cCTRL-W c или :cl[ose]Спрятать буфер и закрыть окно
CTRL-W_oCTRL-W o или :on[ly]Сделать текущее окно единственным на экране
CTRL-W_jCTRL-W jПереместить курсор в окно внизу
CTRL-W_kCTRL-W kПереместить курсор в окно наверху
CTRL-W_CTRL-WCTRL-W CTRL-WПереместить курсор в окно внизу (или в самое верхнее окно, если курсор находится в самом нижнем)
CTRL-W_WCTRL-W WПереместить курсор в окно наверху (или в самое нижнее окно, если курсор находится в самом верхнем)
CTRL-W_tCTRL-W tПереместить курсор в самое верхнее окно
CTRL-W_bCTRL-W bПереместить курсор в самое нижнее окно
CTRL-W_pCTRL-W pПереместить курсор в предыдущее активное окно
CTRL-W_rCTRL-W rРотация окон вниз
CTRL-W_RCTRL-W RРотация окон вверх
CTRL-W_xCTRL-W xПоменять местами текущее окно и следующее
CTRL-W_=CTRL-W =Сделать все окна равной высоты
CTRL-W_-CTRL-W —Уменьшить высоту текущего окна
CTRL-W_+CTRL-W +Увеличить высоту текущего окна
CTRL-W__CTRL-W _Установить высоту текущего окна (по умолчанию: максимально возможная)
Команды для списка буферов
:buffers:buffers или :filesпоказать все буферы и имена файлов
:ball:ball или :sballредактировать все буферы или аргументы
:unhide:unhide или :sunhideредактировать все загруженные буферы
:badd:badd {имя-файла}добавить файл {имя-файла} к списку
:bunload:bunload[!] [N]выгрузить буфер [N] из памяти
:bdelete:bdelete[!] [N]выгрузить буфер [N] и удалить его из списка буферов
 в текущем окнев новом окне 
:buffer:[N]buffer [N]:[N]sbuffer [N]к арг/буф N
:bnext:[N]bnext [N]:[N]sbnext [N]к N-ному след. арг/буф
:bNext:[N]bNext [N]:[N]sbNext [N]к N-ному пред. арг/буф
:bprevious:[N]bprevious [N]:[N]sbprevious [N]к N-ному пред. арг/буф
:bfirst:bfirst:sbfirstк первому арг/буф
:blast:blast:sblastк последнему арг/буф
:bmodified:[N]bmod [N]:[N]sbmod [N]к N-ному изменённому буферу
Подсветка синтаксиса
:syn-on:syntax onвключить подсветку синтаксиса
:syn-off:syntax offвыключить подсветку синтаксиса
:syn-keyword:syntax keyword {группа} {ключевое-слово} ..добавить ключевое слово
:syn-match:syntax match {группа} {шаблон} …добавить синтаксическое соответствие
:syn-region:syntax region {группа} {шаблон} …добавить синтаксическую область
:syn-sync:syntax sync [ccomment | lines {N} | …]задаёт способ синхронизации синтаксиса
:syntax:syntax [list]показать текущие элементы синтаксиса
:syn-clear:syntax clearочистить всю синтаксическую и информацию
:highlight:highlight clearочистить всю информацию о подсветке
:highlight:highlight {группа} {ключ}={арг} ..установить подсветку для {группы}
:filetype:filetype onвключить определение типа файла, без подсветки синтаксиса
:filetype:filetype plugin indent onвключить определение типа файла,  с автоматическим определением отступов и другими установками
Команды GUI
:gui:guiUNIX: запустить с GUI
:gui:gui {файл} ..то же, перейти к редактированию {файла} ..
:menu:menuпоказать все меню
:menu:menu {путь-к-меню}показать все меню, начинающиеся с {путь-к-меню}
:menu:menu {путь-к-меню} {rhs}добавить меню {путь-к-меню}, с выражением {rhs}
:menu:menu {pri} {путь-к-меню} {rhs}то же, с приоритетами {pri}
:menu:menu ToolBar.{name} {rhs}добавить элемент панели инструментов, с выражением {rhs}
:tmenu:tmenu {путь-к-меню} {текст}добавить подсказку к меню {путь-к-меню}
:unmenu:unmenu {путь-к-меню}удалить меню {путь-к-меню}
Складки
‘foldmethod’set foldmethod=manualскладки вручную
 set foldmethod=indentскладки по отступу
 set foldmethod=exprскладки по ‘foldexpr’
 set foldmethod=syntaxскладки по синтаксическим областям
 set foldmethod=markerскладки по ‘foldmarkers’
zfzf{перемещение}оператор: Определить складку вручную
:fold:{диапазон}foldопределить складку для {диапазона} строк
zdzdудалить одну складку под курсором
zDzDудалить все складки под курсором
zozoоткрыть одну складку под курсором
zOzOоткрыть все складки под курсором
zczcзакрыть одну складку под курсором
zCzCзакрыть все складки под курсором
zmzmсложить ещё: уменьшить ‘foldlevel’
zMzMсложить все складки: сделать ‘foldlevel’ равным нулю
zrzrменьше складок: увеличить ‘foldlevel’
zRzRоткрыть все складки: сделать ‘foldlevel’ максимальным.
znznничего не складывать: выключить ‘foldenable’
zNzNскладывать: включить ‘foldenable’
ziziпереключать ‘foldenable’