СПРАВОЧНИК ПО VIM Брам Мооленаар
Примечание: N указывает, что перед командой может быть использовано число.
Перемещение влево-вправо
h | N h | влево (также: CTRL-H, <BS>, или <Left>) |
l | N l | вправо (также: <Space> or <Right>) |
0 | 0 | к первому символу строки (also: <Home>) |
^ | ^ | к первому непустому символу строки |
$ | N $ | к последнему символу строки (на N-1 строк ниже) (также: <End>) |
g0 | N g0 | к первому символу в строке экрана (отличается от "0" если строка переносится) |
g^ | N g^ | к первому непустому символу в строке экрана (отличается от "^" если строка переносится) |
g$ | N g$ | к последнему символу в строке экрана (отличается от "$" если строка переносится) |
gm | N gm | к середине экранной строки |
bar | N | | к колонке N (по умолчанию: 1) |
f | N f{char} | к N-ому появлению {char} справа |
F | N F{char} | к N-ому появлению {char} слева |
t | N t{char} | к месту перед N-ным появлением {char} справа |
T | N T{char} | к месту перед N-ным появлением {char} слева |
; | N ; | повторить последнее "f", "F", "t" или "T" N раз |
, | N , | повторить последнее "f", "F", "t" или "T" N раз в противоположном направлении |
Перемещение вверх-вниз
k | N k | вверх на N строк (также: CTRL-P и <Up>) |
j | N j | вниз на N строк (также: CTRL-J, CTRL-N, <NL> и <Down>) |
- | N - | вверх на N строк, на первый непустой символ |
+ | N + | вниз на N строк, на первый непустой символ (также: CTRL-M и <CR>) |
_ | N _ | вниз на N-1 строк, на первый непустой символ |
G | N G | переход к строке N (по умолчанию к последней строке), на первый непустой символ |
gg | N gg | переход к строке N (по умолчанию к первой строке), на первый непустой символ |
N% | N % | переход к строке N процентов ниже в файле. N должно быть указано, иначе считается, что это команда |%|. |
gk | N gk | N экранных строк вверх (отличается от "k" если строка переносится) |
gj | N gj | N экранных строк вниз (отличается от "j" если строка переносится) |
Перемещение по фрагментам текста
w | N w | N слов вперёд |
W | N W | N разделённых пробелами |СЛОВ| вперёд |
e | N e | вперёд к концу N-ного слова |
E | N E | вперёд к концу N-ного разделённого пробелами |СЛОВА|. |
b | N b | N слов назад |
B | N B | N разделённых пробелами |СЛОВ| назад |
ge | N ge | назад к концу N-ного слова |
gE | N gE | назад к концу N-ного разделённого пробелами |СЛОВА| |
) | N ) | N предложений вперёд |
( | N ( | N предложений назад |
} | N } | N абзацев вперёд |
{ | N { | N абзацев назад |
]] | N ]] | N разделов вперёд, к началу раздела |
[[ | N [[ | N разделов назад, к началу раздела |
][ | N ][ | N разделов вперёд, в конец раздела |
[] | N [] | N разделов назад, в конец раздела |
[( | N [( | N раз назад к незакрытой '(' |
[{ | N [{ | N раз назад к незакрытой '{' |
[m | N [m | N раз назад к началу метода (для Java) |
[M | N [M | N раз назад в конец метода (для Java) |
]) | N ]) | N раз вперёд к незакрытой ')' |
]} | N ]} | N раз вперёд к незакрытой '}' |
]m | N ]m | N раз вперёд к началу метода (для Java) |
]M | N ]M | N раз вперёд в конец метода (для Java) |
[# | N [# | N раз назад к незакрытому "#if" или "#else" |
]# | N ]# | N раз вперёд к незакрытому "#else" или "#endif" |
[star | N [* | N раз назад к началу комментария "/*" |
]star | N ]* | N раз вперёд в конец комментария "*/" |
Поиск по шаблонам
/ | N /{шаблон}[/[смещение]]<CR> | поиск вперёд к N-ному появлению {шаблона} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
? | N ?{pattern}[?[смещение]]<CR> | поиск назад к N-ному появлению {шаблона} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/<CR> | N /<CR> | повторить последний поиск, в прямом направлении | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?<CR> | N ?<CR> | повторить последний поиск, в обратном направлении | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n | N n | повторить последний поиск | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
N | N N | повторить последний поиск, в обратном направлении | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* | N * | искать вперёд по имени под курсором | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# | N # | искать назад по имени под курсором | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
g* | N g* | как "*", но находить и частичные соответствия | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
g# | N g# | как "#", но находить и частичные соответствия | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gd | gd | перейти к локальному объявлению имени под курсором | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gD | gD | перейти к глобальному объявлению имени под курсором | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
шаблон |
Специальные символы в шаблонах для поиска
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
смещения в поиске |
Смещения, допустимые в командах поиска
|
Отметки и перемещения
m | m{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-O | N CTRL-O | перейти к более давней (на N) позиции в списке прыжков |
CTRL-I | N CTRL-I | перейти к более свежей (на N) позиции в списке прыжков |
:ju | :ju[mps] | показать список прыжков |
Различные перемещения
% | % | найти следующую круглую или фигурную скобку, комментарий, "#if"/"#else"/"#endif" на этой строке и перейти к её паре |
H | N H | перейти к N-ной строке в окне, к первому непробельному символу |
M | M | перейти к средней строке в окне, к первому непробельному символу |
L | N L | перейти к N-ной строке снизу, к первому непробельному символу |
go | N go | перейти к N-ному байту в буфере |
:go | :[диапазон]go[to] [смещение] | перейти к [смещение] байту в буфере |
Использование меток
:ta | :ta[g][!] {метка} | Прыжок к метке {метка} |
:ta | :[число]ta[g][!] | Прыжок к метке, которая на [число] свежее в в списке меток |
CTRL-] | CTRL-] | Прыжок к метке под курсором, при условии, что все изменения сохранены |
:ts | :ts[elect][!] [метка] | Показать совпадающие метки и выбрать ту, к которой надо прыгнуть |
:tjump | :tj[ump][!] [метка] | Прыгнуть к метке [метка] или выбрать из списка, если существует несколько соответствий |
:tags | :tags | Показать список меток |
CTRL-T | N 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 z | CTRL-W z | закрыть окно предварительного просмотра метки |
Прокрутка
CTRL-E | N CTRL-E | окна N строк вниз (по умолчанию: 1) |
CTRL-D | N CTRL-D | окна N строк вниз (по умолчанию: 1/2 окна) |
CTRL-F | N CTRL-F | окна N страниц вперёд (т.е. вниз) |
CTRL-Y | N CTRL-Y | окна N строк вверх (по умолчанию: 1) |
CTRL-U | N CTRL-U | окна N строк вверх (по умолчанию: 1/2 окна) |
CTRL-B | N CTRL-B | окна N страниц назад (т.е. вверх) |
z<CR> | z<CR> или zt | обновить, поместив текущую строку вверху окна |
z. | z. или zz | обновить, поместив текущую строку в середине окна |
z- | z- или zb | обновить, поместив текущую строку внизу окна |
Следующие команды работают только если опция 'wrap' отключена: | ||
zh | N zh | прокрутка экрана на N символов вправо |
zl | N zl | прокрутка экрана на N символов влево |
zH | N zH | прокрутка экрана на пол-экрана вправо |
zL | N zL | прокрутка экрана на пол-экрана влево |
Вставка текста
a | N a | добавить текст после курсора (N раз) |
A | N A | добавить текст в конце строки (N раз) |
i | N i | вставить текст перед курсором (N раз) (также: <Insert>) |
I | N I | вставить текст перед первым непробельным символом строки (N раз) |
gI | N gI | вставить текст в колонке 1 (N раз) |
o | N o | открыть новую строку под текущей строкой, добавить текст (N раз) |
O | N O | открыть новую строку над текущей строкой, добавить текст (N раз) |
:startinsert | :star[tinsert][!] | перейти в режим Вставки, если указан [!], то сделать добавление |
в режиме Визуального блока: | ||
v_b_I | I | вставить один и тот же текст перед каждой из выделенных строк |
v_b_A | A | добавить один и тот же текст после каждой из выделенных строк |
Кнопки режима Вставки
Алфавитный список команд, доступных в режиме Вставки выход из режима Вставки: |
||
i_<Esc> | <Esc> | завершить режим Вставки, вернуться в Обычный режим |
i_CTRL-C | CTRL-C | как <Esc>, но без использования сокращений |
i_CTRL-O | CTRL-O {команда} | выполнить {команду} и вернуться в режим Вставки |
перемещение: | ||
i_<Up> | кнопки курсора | перемещение курсора влево/вправо/вверх/вниз |
i_<S-Left> | shift-left/right | одно слово вправо/влево |
i_<S-Up> | shift-up/down | один экран вперед/назад |
i_<End> | <End> | поместить курсор после последнего символа в строке |
i_<Home> | <Home> | поместить курсор к первому символу в строке |
Специальные кнопки в режиме Вставки
i_CTRL-V | CTRL-V {символ}.. | вставить литерал как есть, или ввести десятичное значение байта |
i_<NL> | <NL> или <CR> или CTRL-M или CTRL-J | начать новую строку |
i_CTRL-E | CTRL-E | вставить символы, расположенные ниже курсора |
i_CTRL-Y | CTRL-Y | вставить символы, расположенные выше курсора |
i_CTRL-A | CTRL-A | вставить текст, вставленный перед этим |
i_CTRL-@ | CTRL-@ | вставить текст, вставленный перед этим и выйти из режима Вставки |
i_CTRL-R | CTRL-R {0-9a-z%#:.-="} | вставить содержимое регистра |
i_CTRL-N | CTRL-N | вставить следующее совпадение идентификатора перед курсором |
i_CTRL-P | CTRL-P | вставить предыдущее совпадение идентификатора перед курсором |
i_CTRL-X | CTRL-X ... | завершить слово перед курсором различными способами |
i_<BS> | <BS> или CTRL-H | удалить символ перед курсором |
i_<Del> | <Del> | удалить символ под курсором |
i_CTRL-W | CTRL-W | удалить слово перед курсором |
i_CTRL-U | CTRL-U | удалить все символы, введённые в текущей строке. |
i_CTRL-T | CTRL-T | вставить один отступ перед текущей строкой |
i_CTRL-D | CTRL-D | удалить один отступ перед текущей строкой |
i_0_CTRL-D | 0 CTRL-D | удалить все отступы в текущей строке |
i_^_CTRL-D | ^ CTRL-D | удалить все отступы в текущей строке и восстановить отступы в следующей строке |
Диграфы
:dig | :dig[raphs] | показать текущий список диграфов |
:dig | :dig[raphs] {симв1}{симв2} {число} ... | добавить диграф(ы) к списку |
В режиме Вставки или командной строки: | ||
i_CTRL-K | CTRL-K {симв1} {симв2} | введите диграф |
i_диграф | {char1} <BS> {char2} | введите диграф, если установлена опция 'digraph' |
Особые случаи вставки
:r | :r [файл] | вставить содержимое [файла] ниже курсора |
:r! | :r! {команда} | вставить содержимое стандартного вывода {команды} ниже курсора |
Удаление текста
x | N x | удалить N символов под курсором и после курсора |
<Del> | N <Del> | удалить N символов под курсором и после курсора |
X | N X | удалить N символов перед курсором |
d | N d{перемещение} | удалить текст над которым осуществлено {перемещение} |
v_d | {визуально}d | удалить выделенный текст |
dd | N dd | удалить N строк |
D | N D | удалить до конца строки (и еще N-1 строк) |
J | N J | соединить N-1 строк (удалить <EOL>) |
v_J | {визуально}J | соединить выделенные строки |
gJ | N gJ | как "J", но без вставки пробелов |
v_gJ | {визуально}gJ | как "{визуально}J", но без вставки пробелов |
:d | :[диапазон]d [x] | удалить [диапазон] строк [в регистр x] |
Копирование и перемещение текста
кавычка | "{символ} | использовать регистр {символ} для последующей операции удаления, копирования или вклейки |
:reg | :reg | показать содержимое всех регистров |
:reg | :reg {арг} | показать содержимое всех регистров, указанных в {арг} |
y | N y{motion} | скопировать в регистр текст, над которым произведено {перемещение} |
v_y | {визуально}y | скопировать выделенный текст в регистр |
yy | N yy | скопировать в регистр N строк |
Y | N Y | скопировать в регистр N строк |
p | N p | вклеить содержимое регистра после курсора (N раз) |
P | N P | вклеить содержимое регистра перед курсором (N раз) |
]p | N ]p | как p, но с применением отступов к текущей строке |
[p | N [p | как P, но с применением отступов к текущей строке |
gp | N gp | как p, но с перемещением курсора к точке после нового текста |
gP | N gP | как P, но с перемещением курсора к точке после нового текста |
Изменение текста
r | N r{символ} | заменить N символов {символом} |
gr | N gr{символ} | заменить N символов без изменения внешнего вида текста |
R | N R | перейти в режим Замены (повторить введённый текст N раз) |
gR | N gR | перейти в режим виртуальной Замены: похоже на обычный режим замены, но без изменения внешнего вида текста |
v_b_r | {визуально}r{символ} | в режиме Визуального блока: заменить каждый символ выделенного текста {символом} (изменить = удалить текст и перейти в режим вставки) |
c | N c{перемещение} | изменить текст, к которому применено {перемещение} |
v_c | {визуально}c | изменить выделенный текст |
cc | N cc | изменить N строк |
S | N S | изменить N строк |
C | N C | изменить текст до конца строки (и еще N-1 строк) |
s | N s | изменить N символов |
v_b_c | {визуально}c | в режиме Визуального блока: Изменить каждую из выделенных строк и перейти к вводу текста |
v_b_C | {визуально}C | в режиме Визуального блока: Изменить каждую из выделенных строк до конца строки и перейти к вводу текста |
~ | N ~ | изменить регистр у N символов, перемещая курсор вперёд |
v_~ | {визуально}~ | изменить регистр выделенного текста |
v_u | {визуально}u | написать выделенный текст в нижнем регистре (строчными) |
v_U | {визуально}U | написать выделенный текст в верхнем регистре (прописными) |
g~ | g~{перемещение} | изменить регистр у текста, к которому применено {перемещение} |
gu | gu{перемещение} | написать текст, к которому применено {перемещение}, в нижнем регистре (строчными) |
gU | gU{перемещение} | написать текст, к которому применено {перемещение}, в верхнем регистре (прописными) |
v_g? | {визуально}g? | преобразовать выделенный текст по алгоритму кодирования rot13 |
g? | g?{перемещение} | преобразовать текст, к которому применено {перемещение}, по алгоритму кодирования rot13 |
CTRL-A | N CTRL-A | добавить N к числу в позиции курсора или после него |
CTRL-X | N CTRL-X | вычесть N из числа в позиции курсора или после него |
< | N <{перемещение} | переместить строки, к которым применено {перемещение} на ширину одного отступа влево |
<< | N << | переместить N строк на ширину одного отступа влево |
> | N >{перемещение} | переместить строки, к которым применено {перемещение} на ширину одного отступа вправо |
>> | N >> | переместить N строк на ширину одного отступа вправо |
gq | N 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' в новое значение и изменить пробелы в соответствии с новым значением |
Визуальный режим (список команд Визуального режима)
v | v | начать выделение символов |
V | V | начать выделение строк |
CTRL-V | CTRL-V | начать выделение блока |
v_o | o | переместить курсор в начало выделенной области |
gv | gv | начать выделение в предыдущей визуальной области |
v_v | v | начать или прекратить выделение символов |
v_V | V | начать или прекратить выделение строк |
v_CTRL-V | CTRL-V | начать или прекратить выделение блока |
Переместите курсор и примените к выделенному тексту требуемую команду
Текстовые объекты (только в Визуальном режиме или после оператора)
v_aw | N aw | Выделить "слово" |
v_iw | N iw | Выделить "внутреннее слово" |
v_aW | N aW | Выделить |СЛОВО|" |
v_iW | N iW | Выделить внутреннее |СЛОВО|" |
v_as | N as | Выделить "предложение" |
v_is | N is | Выделить "внутреннее предложение" |
v_ap | N ap | Выделить "абзац" |
v_ip | N ip | Выделить "внутренний абзац" |
v_ab | N ab | Выделить "блок" (от "[(" до "])") |
v_ib | N ib | Выделить "внутренний блок" (от "[(" до "])") |
v_aB | N aB | Выделить "Блок" (от "[{" до "]}") |
v_iB | N iB | Выделить "внутренний Блок" (от "[{" до "]}") |
Повторение команд
. | N . | повторить последнее изменение (с новым числом N) |
q | q{a-z} | записать набранные символы в регистр {a-z} |
q | q{A-Z} | записать набранные символы, добавляя к регистру {a-z} |
q | q | закончить запись |
@ | 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] секунд |
gs | N 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' | задержка в миллисекундах после каждого символа (для отладки) |
Команды отмены и повторного выполнения
u | N u | отменить последние N изменений |
CTRL-R | N CTRL-R | восстановить последние N отменённых изменений |
U | U | восстановить последнюю изменённую строку |
Внешние команды
:shell | :sh[ell] | запуск оболочки |
:! | :!{команда} | выполнить {команду} при помощи оболочки |
K | K | посмотреть ключевое слово под курсором при помощи программы '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-L | CTRL-L | Очистить и обновить экран |
CTRL-G | CTRL-G | Показать имя текущего файла (с путём) и позицию курсора |
ga | ga | показать значение символа под курсором в коде ASCII в десятичных, шестнадцатеричных и восьмеричных числах |
g_CTRL-G | g CTRL-G | показать колонку, строку, позицию символа под курсором. |
CTRL-C | CTRL-C | во время поиска: прервать поиск |
dos-CTRL-Break | CTRL-Break | MS-DOS: во время поиска: прервать поиск |
<Del> | <Del> | во время ввода числа перед командой: удалить последний символ |
:version | :ve[rsion] | показать информацию о версии |
:mode | :mode N | MS-DOS: установить режим экрана в N (число, C80, C4350, и т.д.) |
:normal | :norm[al][!] {команда} | Выполнить команду обычного режима |
Q | Q | Перейти в режим "Ex" |
:redir | :redir >{файл} | перенаправить сообщения в {файл} |
:silent | :silent[!] {команда} | выполнить {команду} молча |
:confirm | :confirm {команда} | выйти, записать и т.д., спросив подтверждение в случае несохранённых данных или файлов, открытых только для чтения |
:browse | :browse {команда} | открыть/прочитать/записать файл при помощи системного диалога выбора файлов |
Редактирование командной строки
c_<Esc> | <Esc> | покинуть командную строку (если 'wildchar' установлен в <Esc>, то требуется нажать дважды) |
c_CTRL-V | CTRL-V {символ} | вставка {символа} как есть |
c_CTRL-V | CTRL-V {число} | ввести десятичное значение символа (до трёх цифр) |
c_CTRL-K | CTRL-K {симв1} {симв2} | ввести диграф (См. Диграфы) |
c_CTRL-R | CTRL-R {0-9a-z"%#:-=} | ввести содержимое регистра |
c_<Left> | <Left>/<Right> | перемещение курсора влево/вправо |
c_<S-Left> | <S-Left>/<S-Right> | перемещение курсора влево/вправо на одно слово |
c_CTRL-B | CTRL-B/CTRL-E | перемещение курсора в начало или конец командной строки |
c_<BS> | <BS> | удалить символ перед курсором |
c_<Del> | <Del> | удалить символ под курсором |
c_CTRL-W | CTRL-W | удалить слово перед курсором |
c_CTRL-U | CTRL-U | удалить все символы |
c_<Up> | <Up>/<Down> | восстановить из истории командную строку, начинающуюся с этой команды |
c_<S-Up> | <S-Up>/<S-Down> | восстановить командную строку из истории |
:history | :his[tory] | показать команды, введённые раннее |
Контекстно-зависимое дополнение в командной строке:
c_подстановка | 'wildchar' (по умолчанию: <Tab>) | выполнять дополнение по шаблону перед курсором. Если возникает несколько вариантов, то подаётся звуковой сигнал и показывается первый вариант; повторный ввод 'wildchar' показывает следующий вариант. |
c_CTRL-D | CTRL-D | показать все имена, соответствующие шаблону перед курсором |
c_CTRL-A | CTRL-A | показать все имена, соответствующие шаблону перед курсором |
c_CTRL-L | CTRL-L | вставить самую длинную часть имён, соответствующую шаблону |
c_CTRL-N | CTRL-N | после 'wildchar' с несколькими соответствиями: перейти к следующему соответствию |
c_CTRL-P | CTRL-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>"
|
Редактирование файла
Без !: Не выполняется, если текущий буфер изменён.
С !: Отменить все изменения в текущем буфере.
:edit_f | :e[dit][!] {файл} | Редактировать {файл}. |
:edit | :e[dit][!] | Прочитать текущий файл заново. |
:enew | :ene[w][!] | Редактировать в новом безымянном буфере. |
:find | :fin[d][!] {файл} | Найти {файл} в 'path' и редактировать его. |
CTRL-^ | N CTRL-^ | Использовать соседний файл N (эквивалентно ":e #N"). |
gf | gf или ]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", но записывать только в том случае, если есть изменения. |
ZZ | ZZ | То же, что и ":x". |
ZQ | ZQ | То же, что и ":q!". |
:xall | :xa[ll][!] или :wqall[!] | Записать все изменённые буферы и выйти |
:stop | :st[op][!] | Прервать Vim или запустить новую оболочку. Если включена опция 'aw' и нет [!], то записать буфер. |
CTRL-Z | CTRL-Z | То же, что и ":stop" |
Запуск VIM
-vim | vim [опции] | начать редактирование в пустом буфере |
-file | vim [опции] {файл} .. | начать редактирование одного или нескольких файлов |
-- | vim [опции] - | прочитать файл со стандартного ввода |
-метка | vim [опции] -t {метка} | редактировать файл, связанный с {меткой} |
-qf | vim [опции] -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 | -f | GUI: не порождать новый процесс 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_s | CTRL-W s или :split | Разделить окно на две части |
:split_f | :split {файл} | Разделить окно и редактировать {файл} в одном из окон |
:vsplit | :vsplit {файл} | То же, но с вертикальным разделением окна |
:vertical | :vertical {команда} | Использовать вертикальное разделение окна при выполнении {команды} |
:sfind | :sf[ind] {файл} | Разделить окно, найти {файл} в 'path' и редактировать его. |
CTRL-W_] | CTRL-W ] | Разделить окно и перейти к метке под курсором |
CTRL-W_f | CTRL-W f | Разделить окно и редактировать файл, имя которого находится под курсором |
CTRL-W_^ | CTRL-W ^ | Разделить окно и редактировать соседний файл |
CTRL-W_n | CTRL-W n или :new | Создать новое пустое окно |
CTRL-W_q | CTRL-W q или :q[uit] | Закончить редактирование и закрыть окно |
CTRL-W_c | CTRL-W c или :cl[ose] | Спрятать буфер и закрыть окно |
CTRL-W_o | CTRL-W o или :on[ly] | Сделать текущее окно единственным на экране |
CTRL-W_j | CTRL-W j | Переместить курсор в окно внизу |
CTRL-W_k | CTRL-W k | Переместить курсор в окно наверху |
CTRL-W_CTRL-W | CTRL-W CTRL-W | Переместить курсор в окно внизу (или в самое верхнее окно, если курсор находится в самом нижнем) |
CTRL-W_W | CTRL-W W | Переместить курсор в окно наверху (или в самое нижнее окно, если курсор находится в самом верхнем) |
CTRL-W_t | CTRL-W t | Переместить курсор в самое верхнее окно |
CTRL-W_b | CTRL-W b | Переместить курсор в самое нижнее окно |
CTRL-W_p | CTRL-W p | Переместить курсор в предыдущее активное окно |
CTRL-W_r | CTRL-W r | Ротация окон вниз |
CTRL-W_R | CTRL-W R | Ротация окон вверх |
CTRL-W_x | CTRL-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 | :gui | UNIX: запустить с 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' | |
zf | zf{перемещение} | оператор: Определить складку вручную |
:fold | :{диапазон}fold | определить складку для {диапазона} строк |
zd | zd | удалить одну складку под курсором |
zD | zD | удалить все складки под курсором |
zo | zo | открыть одну складку под курсором |
zO | zO | открыть все складки под курсором |
zc | zc | закрыть одну складку под курсором |
zC | zC | закрыть все складки под курсором |
zm | zm | сложить ещё: уменьшить 'foldlevel' |
zM | zM | сложить все складки: сделать 'foldlevel' равным нулю |
zr | zr | меньше складок: увеличить 'foldlevel' |
zR | zR | открыть все складки: сделать 'foldlevel' максимальным. |
zn | zn | ничего не складывать: выключить 'foldenable' |
zN | zN | складывать: включить 'foldenable' |
zi | zi | переключать 'foldenable' |