Инструменты пользователя

Инструменты сайта


unix:vim-commands

Команды

Перемещение по тексту

mv-text.txt
h, left     -- Влево.
l, right    -- Вправо.
j, down     -- Вниз.
k, up       -- Вверх.
0, home     -- В начало строки.
^           -- Первый непустой символ в строке.
$, end      -- В конец строки.
[N]|        -- На <N> столбец.
[N]_        -- Вниз на <N>-1 строк и на первый не пустой символ.
[N]%        -- На <N> процентов от всего буфера.
[N]G, :[N]  -- Переход на строку <N> (0G - BOF, $G - EOF).
g           -- Перемещение по тексту. Объекты:
0, home     -- на левый край экрана;
^           -- на первый непустой символ;
m           -- на половину ширины экрана;
$, end      -- на правый край экрана;
k, up       -- на одну строку экрана вверх;
j, down     -- на одну строку экрана вниз;
g           -- на первую строку;
o           -- на [N] байт в буфере;
e           -- назад до конца слова;
E           -- назад до конца слова (от пробела до пробела).

f[simb]     -- На первый найденный справа от курсора символ [simb].
F[simb]     -- На первый найденный слева от курсора символ [simb].
t[simb]     -- Перед первым найденный справа от курсора символ [simb].
T[simb]     -- Перед первым найденным слева от курсора символом [simb].
;           -- Повторить последнюю команду F,f,T,t в том же направлении.
,           -- Повторить последнюю команду F,f,T,t в противоположном направлении.
-           -- На строку вверх и на первый не пустой символ.
+, Enter    -- На строку вниз и на первый не пустой символ.
G, ^+End    -- На последнюю строку.
H           -- На первую строку экрана.
M           -- На среднюю строку экрана.
L           -- На последнюю строку экрана.
w, Sh+Right -- На слово вперед.
W, ^+Right  -- На слово вперед (от пробела до пробела).
e           -- Вперед до конца слова.
E           -- Вперед до конца слова (от пробела до пробела).
b, Sh+Left  -- На слово назад.
B, ^+Left   -- На слово назад (от пробела до пробела).
(           -- На предложение назад (до точки).
)           -- На предложение вперед (до точки).
{           -- На абзац назад (до пустой строки).
}           -- На абзац вперед (до пустой строки).
[[          -- Вперед на одну секцию или до { в начале строки.
][          -- Вперед на одну секцию или до } в начале строки.
]]          -- Назад на одну секцию или до { в начале строки.
[]          -- Назад на одну секцию или до } в начале строки.
^G, :file   -- Информация о текущем положении курсора в тексте.
^]          -- Переход по ссылке или на определение функции.
^T          -- Возврат после перехода по ссылке.
^O          -- Назад по списку переходов.
^I, Tab     -- Вперёд по списку переходов.
:ju         -- Список переходов.

Прокрутка экрана

scroll-screen.txt
^+E         -- Вниз на одну строку.
^+D         -- Вниз на scroll строк. если использовать цифру то далее она будет по умолчанию.
^+F, PgDwn  -- Вниз на одну страницу.
^+Y         -- Вверх на одну строку.
^+U         -- Вверх на scroll строк. если использовать цифру то далее она будет по умолчанию.
^+B, PgUp   -- Вверх на одну страницу.
zEnter      -- Прокрутка вверх, пока курсор не окажется на первой строке.
zt          -- Тоже, но курсор остаётся в той-же строке.
z[N]Enter   -- Изменить размер окна до <N> строк.
z.          -- Прокрутка помещающая строку с курсором в центре экрана.
zz          -- Тоже, но курсор остается в том же столбце.
z-          -- Прокрутка вниз, пока курсор не окажется в на последней строке.
zb          -- Тоже, но курсор остаётся в том же столбце.
zl          -- На один символ влево.
zh          -- На один символ вправо.
zL          -- На полуширину экрана влево.
zH          -- На полуширину экрана вправо.
zs          -- Помещает курсор на левый край.
ze          -- Помещает курсор на правый край.

Смена режимов

ch-mode.txt
Ins, i, a   -- Переход в режим вставки.
v           -- Визуальный строчный режим (с точностью до символа).
V           -- Визуальный строчный режим (с точностью до строки).
^V          -- Визуальный блочный режим.
gv          -- Возврат к области, выделенной в прошлый раз.
:           -- Командный режим.
r           -- Переход в режим замены.
gR          -- Переход в виртуальный режим замены.
ESC         -- Возврат в нормальный режим.

Работа с файлами

files.txt
:q          -- Выход (если не требует сохранения).
:q!         -- Закрыть окно без сохранения.
:qa!        -- Выход из всех открытых файлов без сохранения.
:x          -- Выход из всех открытых файлов без сохранения.
:wqa        -- Выход из всех файлов с сохранением.
:w          -- Запись в файл.
:w!         -- Запись в файл даже если он только для чтения.
:wq[!]      -- Сохранить и выйти.
ZZ          -- Сохранить и выйти.
:r          -- Загрузить файл в позицию курсора.

:e [++opt] [+cmd] [<file>] 
            -- Открыть новый файл заместив старый (без имени файла - перечитывает текущий).
            Доступные опции [++opt]:
            enc     -- перекодировка (++enc=cp866);
            ff      -- формат файла (++ff=unix).

            Доступные команды [+cmd]:
            +       -- начать с конца файла;
            +<num>  -- начать с указанной строки;
            +/<pat> -- начать с первой строки в которой встречается шаблон <pat>.

:e! [++opt] [+cmd] [<file>] 
            -- Открыть новый файл заместив старый и игнорируя все изменения 
            -(без имени файла - перечитывает текущий).
            :e #[count] -- Открыть файл под номером <count> из :files.
            :sp         -- Открыть в новом окне.
            gf, [f      -- Редактировать файл под курсором.

Редактирование

edit.txt
x, del          -- Удаление символа под курсором.
X               -- Удаление символа перед курсором.
u, :u           -- Откат.
U               -- Отменить все изменения, повлиявшие на текущую строку.
[reg]^R, :red   -- Накат, вставка из регистра.
С               -- Удалить от курсора и до конца строки с переходом в режим ввода.
c               -- Изменение, удаление и ввод нового.
l               -- символ, аналог s;
c               -- строку, аналог S;
[N]o            -- удаление по команде перемещения "o" [N] раз.
D               -- Удалить от текущего символа до конца строки.
[reg]d          -- Вырезать часть строки в регистр [reg]. Объекты:
l               -- аналог x;
h               -- аналог X;
d               -- текущей строки;
w               -- до конца слова;
$               -- до конца строки;
[N]o            -- удаление по команде перемещения "o" [N] раз.

O, o            -- Вставка новой строки до и после текущей, с переходом в режим вставки.
J               -- Объединить строку с последующей.
r[симв]         -- Заменить символ под курсором на [симв].
gr[симв]        -- Заменить виртуальный символ под курсором на [симв].
gJ              -- Тоже, но не вставляя новых пробелов.
[reg]y[com]     -- Копирование в регистр [reg(<<a)] строк через которые перенесет команда [com].
[reg]yy, Y      -- Копирование в регистр [reg(<<a)] текущую строку.
[reg]p          -- Вставка текста из регистра [reg(<<a)] после курсора.
P, MidMouse     -- Вставка текста из регистра перед курсором.
gp              -- Тоже что и p, но курсор помещается в конец вставленного текста.
gP              -- Тоже что и P, но курсор в конец вставленного текста.
]p              -- Тоже что и p, но дополнительно изменяется отступ вставляемого текста, 
                   аналогично отступу текущей строки.
]P              -- Тоже что и P, но дополнительно изменяется отступ вставляемого текста, 
                   аналогично отступу текущей строки.
.               -- Повторение предыдущей команды изменившей буфер.
g~, ~ [com]     -- Изменение регистра букв на участке текста, через который перенесёт команда [com].
g~ ~            -- Изменение регистра букв в текущей строке.
gu[com]         -- Превращение букв в строчные на участке текста переноса команды [com].
guu             -- Превращение в строчные буквы в текущей строке.
gU              -- Превращение букв в прописные.
gUU             -- Превращение в прописные буквы в текущей строке.
//g?[com]       -- Перекодировка по алгоритму rot13 на участке текста переноса команды [com].
g??             -- Перекодировка по алгоритму rot13 в текущей строке.
[N]^A           -- Добавить число <N> к числу в позиции курсора.
[N]^X           -- Вычесть число <N> от числа в позиции курсора.
!               -- Обработка внешней программой.
=               -- Расстановка отступов для языка программирования С.
<[com]          -- Сдвиг влево на значение (shiftwidth) строк, через которые перенесла бы команда[com].
<<              -- Сдвиг влево текущей строки.
>[com]          -- Сдвиг вправо на значение (shiftwidth) строк, через которые перенесла бы команда[com].
>>              -- Сдвиг вправо текущей строки.

Поиск

find.txt
/{str}[/[off]]  -- Переход вперёд на смещение <off> искомой строки <str>.
?{str}[?[off]]  -- Переход назад на смещение <off> искомой строки <str>.
/               -- Повторить последний поиск в прямом направлении.
?               -- Повторить последний поиск в обратном направлении.
n               -- Повторить последний поиск.
N               -- Повторить последний поиск в обратном направлении.
*               -- Поиск в прямом направлении идентификатора под курсором.
#               -- Поиск в обратном направлении идентификатора под курсором.
gd              -- Перейти к локальному определению переменной под курсором.
gD              -- Перейти к глобальному определению переменной под курсором.
:/[search]      -- Поиск <search> в прямом порядке.
:?[search]      -- Поиск <search> в обратном порядке.
:[address]s/[search]/[repl]/[gci] -- Поиск [search] и замена на [repl] 
(в режиме VISUAL - без адреса и в выделенной области)
    [gci]:
        < >     -- первого вхождения;
        <g>     -- всё;
        <c>     -- с запросом подтверждения;
        <i>     -- игнорируя регистр.

    [address]:
        <%>     -- весь текст;
        <1>     -- первая строка;
        <.>     -- текущая строка;
        <$>     -- последняя строка;
        <1,3>   -- между строками 1-3;
        <.,$>   -- от текущей до последней.

Манипуляции с окнами

wnd.txt
^W              -- Операции с окнами:
i, d, f         -- новое окно с i-переменой, d-определением, f-файлом под курсором;
n               -- открыть новое окно;
s               -- сдублировать еще одно окно от текущего (горизонтально);
v               -- сдублировать еще одно окно от текущего (вертикально);
с, q            -- закрыть текущее окно;
o               -- закрыть все остальные окна;
r               -- сдвиг вверх;
R               -- сдвиг вниз;
x               -- сдвиг на другое окно с активизацией другого окна;
K               -- переместить текущее окно вверх;
J               -- переместить текущее окно вниз;
H               -- переместить текущее окно влево;
L               -- переместить текущее окно вправо;
k, Up           -- активизировать окно сверху;
j, Down         -- активизировать окно снизу;
h, Left         -- активизировать окно слева;
l, Right        -- активизировать окно справа;
w               -- активизировать следующее окно;
p               -- активизировать предыдущее окно;
+               -- увеличить высоту окна на одну строку;
-               -- уменьшить высоту окна на одну строку;
>               -- увеличить ширину окна на один символ;
<               -- уменьшить ширину окна на один символ;
=               -- сравнять размеры окон;
_               -- установить максимальную высоту окна;
1_              -- установить минимальную высоту окна;
|               -- установить максимальную ширину окна;
1|              -- установить минимальную ширину окна.
:sp             -- Разделить окно по горизонтали.
:vs             -- Разделить окно по вертикали.
:new            -- Создать новое окно (горизонтальное разделение).
:vne            -- Создать новое окно (вертикальное разделение).

Метки

tags.txt
m[M]            -- Установить метку <M> в позицию курсора.
m>>, m'         -- Установить метку предыдущего контекста.
:[N]ma, [N]k M  -- Установить метку <M> на строке <N>.
'M              -- Перемещение в начало строки с меткой <M>.
`M              -- Перемещение на метку <M>.
'[              -- Первый непустой символ в первой строке части текста, 
                   над которой производилась последняя операция.
"[              -- Первый символ части текста, над которой производилась последняя операция.
']              -- Первый непустой символ в последней строке части текста, 
                   над которой производилась последняя операция.
"]              -- Последний символ части текста, над которой производилась последняя операция.
:marks          -- Показать список меток.
:marks ABC..    -- Показать метки ABC.. .
%               -- Переход на противоположную скобку: ()[].... .
[(              -- Переход к предыдущей незакрытой ( .
[{              -- Переход к предыдущей незакрытой { .
[)              -- Переход к следующей не открытой ( .
[}              -- Переход к следующей не открытой } .
]m              -- Переход к следующему началу метода (Java).
]M              -- Переход к следующему концу метода (Java).
[m              -- Переход к предыдущему началу метода (Java).
[M              -- Переход к предыдущему концу метода (Java).
[#              -- Переход на предыдущий незакрытый #if или #else.
]#              -- Переход на следующий неоткрытый #else или #endif.
[*, [/          -- Переход на предыдущее начало С-комментария /*.
]*, ] /         -- Переход на следующий конец С-комментария */.

Регистры

reg.txt
""              -- Безымянный регистр (используется по умолчанию).
<<0             -- Содержит текст прочитанный последней командой 'y'.
"1->>9          -- Сдвиговые регистры удалённого и изменённого текста.
<<-             -- Заполняется при удаление текста, занимающего менее одной строки.
"a->>z          -- Именованные регистры, заполняются только при указании их специально.
<<.             -- Последний вставленный текст.
"%              -- Содержит имя редактируемого файла.
"#              -- Содержит имя альтернативного файла.
<<:             -- Последняя команда в режиме ':'.
"=              -- Ввод выражений.
"*              -- Хранит в себе выбранный мышью текст (X-Window).
<</             -- Регистр последнего поиска.
:reg [reg]      -- Печать содержимого регистров.
q[reg]          -- Ввод регистра [reg] до нажатия q.
@[reg]          -- Выполнения команд в регистре [reg].

Настройки

tuning.txt
:set            -- Работа с опциями (без имени опции показывает установленные опции).
all             -- показать все опции;
termcap         -- показать только терминальные опции;
<opt>           -- активирует опцию если она логическая;
<opt>!          -- инвертирует опцию;
<opt>&          -- устанавливает стандартное значение опции;
no<opt>         -- деактивирует опцию;
<opt>=<value>   -- установка значения опции в <value>;
<opt>?          -- показать значение опции.
:options        -- Установка различных опций.

Опции

options.txt
ai              -- При начале новой строки отступ копируется из предыдущей.
aw              -- Сохраняет содержимое файла, если он был изменен перед выполнением некоторых команд.
bk              -- Создаёт резервную копию файла при перезаписи.
bkc             -- Определяет метод создание резервной копии:
<yes>           -- Копирует существующий файл и перезаписывает старый;
<no>            -- Переименовывает существующий файл и создает новый;
<auto>          -- Выбирает наиболее оптимальный вариант.
bin             -- Редактирование файла в бинарном режиме.
dict            -- Список файлов с словарями автозавершения ключевых слов 
                   (разделяются запятыми, переключение Ctrl-X + Ctrl-K).
dy              -- Изменяет способ отображение текста.
ef              -- Имя файла с ошибками в режиме быстрой отладки.
efm             -- Описание формата строки файла с ошибками, записанное в стиле scanf.
fenc=<code>     -- Перекодировать файл в кодировку <code> (set fenc=koi8-r).
ff=<format>     -- Изменить формат файла на <format> (dos,unix,mac).
fcl             -- Если равно "all", то группировка автоматически закрываются, 
                   при выходе курсора за её пределы.
fdm             -- Определяет метод группировки для текущего окна.
ic              -- Игнорировать регистр при поиске.
mef             -- Имя файла ошибок, возникших при выполнении команды :make .
mouse=a         -- Включить мышь в X или GUI.
mp              -- Программа, используемая при выполнении команды :make .
ml              -- Включает непосредственное включение строки конфигурации в редактируемый файл.
number          -- Показывать номера строк.
scrollbind      -- Установить совместную прокрутку содержимого окон.
sbr             -- Символы, которыми обозначаются автоматически перенесённые строки.
sm              -- Если установлено, то при вводе закрывающей скобки происходит 
                   быстрая подсветка соответствующей ей открывающей скобки.
sw              -- Число пробелов используемых при автоотступе.
ts              -- Размер табуляции.
tw              -- Максимальное число символов, которые могут быть введены в одну строку.
tsr             -- Список файлов, по которым осуществляется поиск 
                   словарных статей (<CTRL>+X + <CTRL>+T).
ul              -- Максимальное число изменений, которые могут быть отменены.
ve              -- Включает автоматическое заполнение пробелами/табуляторами при навигации по тексту.
vb              -- Заменить звуковой сигнал визуальным.
wrap            -- Заворачивание строк длиннее ширины экрана.
wb              -- При перезаписи файла, создается его временная копия.

Команды интеграции

integr.txt
:help com       -- Получение помощи по команде <com>. Префиксы команд:
<ничего>        -- нормальная команда;
v_              -- визуальная команда;
i_              -- вставочная команда;
:               -- команда командной строки;
с_              -- редактирование командной строки;
-               -- командные аргументы.
:! com          -- Запускает в оболочке команду <com>.
:!!             -- Повторяет предыдущую команду :! .
:r! com         -- Вставить в позицию курсора <<выхлоп>> команды <com>.
:r file         -- Вставляет в текст содержимое файла <file>.

Группировка текста

txt-group.txt
:mkview         -- Создание/сохранение группировок файла.
:loadview       -- Загрузка группировок файла.
zf              -- Создать группировку выделенного участка (маркер группировки).
zfap            -- Создать группировку параграфа (маркер группировки).
zd              -- Удалить группировку.
zE              -- Удалить все группировки.
zo              -- Открыть текущую группировку.
zO              -- Открыть текущую группировку рекурсивно.
zr              -- Открыть все группировки.
zc              -- Скрыть/закрыть текущую группировку.
zС              -- Скрыть/закрыть текущую группировку рекурсивно.
zM              -- Скрыть/закрыть все группировки.

Компиляция/отладка программ

compil-dbg.txt
:make           -- Вызов команды make (сборка проекта).
:cc[numb]       -- Отображение ошибки с указанным номером.
:cn             -- Перейти к следующей ошибке.
:cp             -- Перейти к предыдущей ошибке.
:cr             -- Перейти к первой ошибке.
:cla            -- Перейти к последней ошибке.
:cq             -- Выйти из программы с возвратом кода ошибки.
:cf [file]      -- Загрузить указанный файл в качестве файла ошибок.
:cl             -- Отобразить все ошибки.
:copen          -- Открыть окно со списком ошибок.
:cclose         -- Закрыть окно со списком ошибок.
:cscope         -- ?

Другое

other.txt
^p, ^n          -- Дополнение слова используя в качестве словаря весь текст 
                   или дополнительные источники (include файлы).
Sh+K            -- Вызов man по команде под курсором.
[i              -- Показать определение (included) переменной, функций ... .
[d              -- Показать определение (defined) МАКРО.
ga              -- Информация о символе под курсором.
g ~ [com]       -- Изменение регистра букв на участке текста, через который перенесет команда [com].
:ls             -- Список буферов.
:badd [file]    -- Добавить файл в буфер.
:bdelete [N]    -- Выгрузить буфер.
:buffer [N]     -- Перейти к буферу [N].
:print          -- Распечатать.
:iabbrev        -- Описание аббревиатур (:iabbrev L$ Linux).

Часто используемые команды (желательно запомнить)

often.txt
[N]G            -- Переход на строку <N>, 0G - BOF, $G - EOF.
%               -- Переходит на противоположную скобку: ()[].... .
^]              -- Переход по ссылке или на определение функции.
^T              -- Возврат после перехода по ссылке.
^O              -- Назад по списку переходов.
^I              -- Вперёд по списку переходов.
u, :u           -- Откат.
U               -- Отменить все изменения, повлиявшие на текущую строку.
^R,:red         -- Накат.
.               -- Повторение предыдущей команды изменившей буфер.
m[M]            -- Установить метку <M> в текущую позицию.
'M              -- Перемещение в начало строки с меткой <M>.
`M              -- Перемещение на метку <M>.
:copen          -- Показать окно ошибок (после вызова команды типа make).
^p, ^n          -- Дополнение слова используя в качестве словаря весь текст 
                   или дополнительные источники (include файлы).
[i              -- Показать определение переменной, функций ... 
unix/vim-commands.txt · Последнее изменение: 2011/12/01 23:49 (внешнее изменение)