Всем привет, давайте-ка взглянем на командную строку Вим. Под командной строкой подразумевается режим ex и поиск. Режим ex включается двоеточием (:) и позволяет вводить команды для работы с текстом в целом, с отдельными строками, с вкладками и окнами, задавать переменные настройки Вим и многое другое. Поиск включается слешем (/) или знаком вопроса (?) и в появившейся строке можно вводить регулярное выражение. С точки зрения команд, описанных далее, это одна и та же командная строка.
Комбинации для редактирования командной строки
Отмечу, что кое-что из перечисленного может не работать, если терминал перехватывает комбинацию. Например, ctrl+- часто уменьшает шрифт, а поскольку _ находится на той же клавише, то переключение на иврит может не работать.
Еще отмечу, что многое из описанного работает также и в режиме вставки.
→ и ← (стрелка влево и вправо) — сдвиг на символ, с shift — на слово.
<C-B> или <Home> — начало строки, <C-E> или <End> — конец.
<С-H> или <BS> — удалить символ слева. <Del> — справа.
<C-W> — удалить слово слева.
<C-U> — удалить все до начала строки.
<Insert> — переключение вставки и замены.
Стрелки вверх/вниз — пролистать историю команд.
<C-V> или <C-Q> — вставка символа по коду. Например, <C-V>666 введет символ ÿ. Заметьте, что это работает и в режиме вставки тоже!
символ <BS> символ или <C-K> символ символ — диграф. Удобно, если надо искать ← или —
Кстати, <C-K> вводит литерально спецсимволы, если соответствующую клавишу нажать два раза. Например, <C-K>энтер энтер. Полезно в выражении замены.
Cпецсимволы вводятся через <>. Например, <CR>, <ESC>, <BS>, <TAB>, <C-A>, <F2>, <S-F10>. А вот в выражении замены придется вставлять литерально.
<C-R> — вставка содержимого регистра. Далее может идти:
- цифра (история удалений/копирований);
- буква (именованные регистры);
- двойная кавычка " — безымянный регистр;
- минус (-) — регистр "минус" (удаленный или копированный текст не более одной строки);
- % — имя файла; а # имя — второго открытого файла. Прочие, если у вас их больше, сами вставляйте))
- / — поисковый запрос. Очень полезно, если применили сложное выражение в команде замены, а теперь хотите поискать это же или что-то похожее, или наоборот: сначала нашли что-то сложное, а теперь надо это заменять на что-то другое.
- : — последняя команда; аналогичный комментарий.
- = — регистр-выражение (его надо ввести и оно вычислится), например, нажимаете /<C-R>=97/12 и получаете поиск числа 8 (деление нацело). Но вообще, это не для простой арифметики задумано, хотя в повседневной работе нужно нечасто.
- <C-W> — вставка слова (граница по символу) под курсором,
- <C-A> — то же (граница по пробелу);
<C-R><C-R> — тоже вставка из регистра, но литерально, то есть спецсимволы вставляются как символы. Например, <BS>.
<C-J> или <CR> — выполнить команду.
<C-C> — отмена.
<C-_> — переключение на иврит (справа налево).
<C-^> — переключение языка.
<Tab> — автодополнение
: history — просмотр истории
:keepp — выполнить команду не занося ее в историю
" — комментарий
| — конвейер. Это не конвейер в смысле UNIX, то есть не передача выхода первой команды на вход второй. Это просто выполнение команд одна за другой. Например,
:%s/\<foo\>/bar/g | w
И последнее. Вы можете делать что хотите, переопределяя комбинации и последовательности для командной строки посредством команд семейства cmap. Так что если часто и много работаете в командной строке Вим, подумаете о привязке полезных команд к горячим клавишам!