Горячие клавиши vim
Перемещение по тексту:
| h |
Влево |
| l |
Вправо |
| j |
Вниз |
| k |
Вверх |
| w |
Вперед на первую букву слова |
| e |
Вперед на последнюю букву слова |
| b |
Назад на первую букву слова |
| ge |
Назад на последнюю букву слова |
| W |
То, же, что и w, но словом считается то, что отделено пустыми символами |
| E |
То, же, что и e, но словом считается то, что отделено пустыми символами |
| B |
То, же, что и b, но словом считается то, что отделено пустыми символами |
| gE |
То, же, что и ge, но словом считается то, что отделено пустыми символами |
| ^ |
На первый непустой символ строки |
| $, End |
На конец строки |
| 0 (ноль), Home |
На начало строки |
| ( |
На первую точку слева от курсора (если она есть, в противном случае на начало абзаца) |
| ) |
На первую точку справа от курсора (если она есть, в противном случае на конец абзаца) |
| { |
На абзац назад до пустой строки |
| } |
На абзац вперед до пустой строки |
| gj |
На одну экранную строку вниз. Экранная строка — это целая строка
длиной меньше ширины экрана, либо часть длинной строки, разделенной на
экране на несколько |
| gk |
На одну экранную строку вверх. |
| f# |
Поиск вперед в строке символа # и установка курсора на него |
| F# |
Поиск назад в строке символа # и установка курсора на него |
| t# |
Поиск вперед в строке символа # и установка курсора после него |
| T# |
Поиск назад в строке символа # и установка курсора после него |
| ; |
Повтор поиска вперед символа, найденного при помощи f/t/F/T |
| , |
Повтор поиска назад символа, найденного при помощи f/t/F/T |
| % |
Перемещение курсора на скобку, парную той, на которой находится
курсор. Парные символы можно задать при помощи команды :set matchpairs |
| :# |
Перемещение курсора на строку # |
| #G |
Перемещение курсора на строку #, аналогично :# |
| gg |
Перемещение курсора в начало |
| G |
Перемещение курсора в конец |
| #% |
Перемещение курсора на # процентов от начала |
| H |
Перемещение курсора на начало видимой части текста |
| M |
Перемещение курсора на середину видимой части текста |
| L |
Перемещение курсора на конец видимой части текста |
| Control+u |
На полэкрана вверх |
| Control+d |
На полэкрана вниз |
| Control+y |
На одну строку вверх. Курсор при этом не перемещается |
| Control+e |
На одну строку вниз. Курсор при этом не перемещается |
| Control+b |
На один экран минус 2 строки вверх |
| Control+f |
На одну экран минус 2 строки вниз |
| zt |
Прокрутка текста так, чтобы курсор оказался вверху экрана |
| zz |
Прокрутка текста так, чтобы курсор оказался в середине экрана |
| zb |
Прокрутка текста так, чтобы курсор оказался внизу экрана |
В обычном режиме:
| << |
Сдвинуть строку влево (табуляция) |
| >> |
Сдвинуть строку вправо (табуляция) |
Режим выделения:
| v |
Войти в режим выделения символов |
| V |
Войти в режим выделения строк |
| Control+Shift+v |
Войти в режим выделения прямоугольного блока текста |
| gv |
Выделяет текст, который был выделен предыдущей командой выделения |
| o |
Перемещение курсора в области блочного выделения для изменения размера влево |
| O |
Перемещение курсора в области блочного выделения для изменения размера вправо |
| I |
Включить вставку символов в блочном выделении. После нажатия I
набираются символы, а по окончании нажимаете Escape. Все набранные
символы будут вставлены в каждую строку |
| с |
Аналогично I, но перед вставкой символов удаляет всё, что было выделено блоком |
| с |
Аналогично I, но перед вставкой символов удаляет всё от левого края выделения до конца строки |
| u |
Изменить регистр выделенных символов на нижний |
| U |
Изменить регистр выделенных символов на верхний |
| ~ |
Изменить регистр выделенных символов на противоположный |
| J |
Объединить все строки, находящиеся в области выделения |
| r |
Заменить все символы на введенный после r, например rx заменит все символы в области выделения на x |
| < |
Сдвинуть выделенный блок влево (табуляция) |
| > |
Сдвинуть выделенный блок вправо (табуляция) |
Работа с буфером обмена:
| «*yy |
Скопировать строку в буфер обмена текущего выделения. Потом можно
вставить скопированное в любом приложении нажатием средней кнопки
(колесика) мыши |
| «+yy |
Скопировать строку в буфер обмена. Потом можно вставить скопированное в любом приложении нажатием Ctrl+v |
| «ayy |
Скопировать строку в регистр a (имена регистров соответствуют буквам латинского алфавита, возможны имена a-z) |
| «Ayy |
Добавить строку в регистр a |
| «ap |
Вставить текст из регистра a |
Метки:
| mx |
Создать метку с именем x |
| `x |
Переместить курсор на метку x |
| ‘x |
Переместить курсор на строку с меткой x |
| :marks |
Просмотреть все существующие в данный момент метки |
| Ctrl+Shift+o |
Перемещение по меткам назад |
| Ctrl+Shift+i |
Перемещение по меткам вперед |
| ` ` |
Переместить курсор на предыдущую метку |
| ‘ ‘ |
Переместить курсор на предыдущую метку |
Поиск:
| / |
Войти в режим ввода выражения для поиска. В vim можно использовать
при поиске регулярные выражения, при этом символы «.», «*», «[«, «]»,
«^», «%», «/», «\», «?», «~», «$» являются специальными и их обязательно
надо экранировать обратным слэшем («\») |
| ? |
То же, что и /, но поиск будет производиться в обратном порядке |
| n |
Повторить поиск вперед |
| N |
Повторить поиск назад |
| * |
Поиск слова, на котором стоит курсор, вперед, со строгим соответствием |
| # |
Поиск слова, на котором стоит курсор, назад, со строгим соответствием |
| g* |
Поиск слова, на котором стоит курсор, вперед, с нестрогим
соответствием, то есть, если курсор на слове win, то будет найдено также
слово winter |
| g# |
Поиск слова, на котором стоит курсор, назад, с нестрогим соответствием |
| /выражение\c |
Поиск слова без учета регистра, независимо от настроек vim.
Переключать учет регистра можно командами «:set ignorecase» и «:set
noignorecase» |
| /выражение\C |
Поиск слова с учетом регистра, независимо от настроек vim |
| \< |
Обозначение начала слова при поиске. /\ |
| \> |
Обозначение конца слова при поиске. /\ — найти только win, но не winter |
| /выражение/b+1 |
Найти выражение и установить курсор на символ +1 от начального, то есть на второй |
| /выражение/e-3 |
Найти выражение и установить курсор на символ -3 от конечного |
| ?выражение?b+1 |
То же, что и /выражение/b+1, но с поиском в обратную строну |
| ?выражение?e-3 |
То же, что и /выражение/e-3, но с поиском в обратную строну |
| стрелка вверх |
При вводе строки для поиска просмотр истории поиска выражений, начинающихся с того, что уже набрано |
Автозамена:
При автозамене используется следующая конструкция:
:[область-действия]s/[что-искать]/[на-что-менять]/[модификаторы]
Область действия:
| % |
Весь текст |
| 1 |
Первая строка |
| . |
Текущая строка |
| $ |
Последняя строка |
| X,Y |
От строки X до строки Y |
| .,$ |
Вариант предыдущего выражения, от первой до последней строки. Аналогично % |
Модификаторы:
| g |
Все вхождения в строке |
| c |
С запросом подтверждения |
| i |
Без учета регистра |
| e |
Не выводит ошибку, если искомая строка не найдена |
В строках для поиска и замены можно использовать регулярные
выражения, если вы знакомы с программой sed, то проблем у вас не
возникнет.
Это не все сочетания клавиш, которые доступны при работе в vim, но
даже их уже достаточно для того, чтобы повысить эффективность работы в
этом текстовом редакторе.
Комментариев нет:
Отправить комментарий