OpenSCADAWiki: Roman Savochenko/ Vim Short All
 

VIM — кратко обо всём

Автор: Роман Савоченко
Примечание: Документ создаётся автором с 2002г. До настоящего момента документ создавался в среде LaTeX. На текущий момент выполняется публикация документа в среде Wiki с последующим оформлением в среде dockbook. LaTeX версию документа можно взять PDF Documentздесь и исходник здесь. Документ оформляется в среде WIKI для привлечения к его развитию общественности. Разрешается вносить изменения в данный документ с целью исправления обнаруженных ошибок или с целью его дополнения.


Contents

1 Опции командной строки

-t {tag} — Открывает файл с функцией <tag> и позиционирует курсор на неё. Должен присутствовать файл tags сформированный командой ctags (ctags -h ".h.cpp" ./*).
+N — При открытии файла позиционирует курсор на строке с номером N.

2 VIM-файлы

{home}/.vimrc — Локальный файл конфигурации VIM.
/usr/share/vim/ — Каталог ресурсных файлов VIM.
vimrc_example.vim — Пример конфигурационного файла.

3 Структура команд

[N][команда][объект][N1][команда перемещения]
где:
N — количество повторений команды;
N1 — количество повторений команды перемещения.

4 Команды

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

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 — Список переходов.

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

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

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

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

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

:q — Выход (если не требует сохранения).
:q! — Закрыть окно без сохранения.
:qa! — Выход из всех открытых файлов без сохранения.
:x — Выход из всех открытых файлов без сохранения.
:wqa — Выход из всех файлов с сохранением.
:w — Запись в файл.
:w! — Запись в файл даже если он только для чтения.
:wq[!] — Сохранить и выйти.
: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 — Редактировать файл под курсором.

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

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].
>> — Сдвиг вправо текущей строки.

4.6 Поиск

/{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;
<.,$> — от текущей до последней.

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

^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 — Создать новое окно (вертикальное разделение).

4.8 Метки

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.
[*, [/ — Переход на предыдущее начало С-комментария /*.
]*, ] / — Переход на следующий конец С-комментария */.

4.9 Регистры

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

4.10 Настройки

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

4.11 Опции

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 — При перезаписи файла, создается его временная копия.

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

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

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

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

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

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

4.15 Другое

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

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

[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 — Показать определение переменной, функций ... .

Ссылки


Referring pages: RomanSavochenko/VimShortAll