Найти в Дзене
Блокнот математика

Рубрика "Секреты Вим". Командная строка

Всем привет, давайте-ка взглянем на командную строку Вим. Под командной строкой подразумевается режим 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. Так что если часто и много работаете в командной строке Вим, подумаете о привязке полезных команд к горячим клавишам!

Путеводитель по каналу