Skip to content

Перемещения в Vim объяснённые

Клавиши Vim для повседневной работы, сгруппированные по задачам: перемещение, правка текста, выделение, запись макросов, установка меток, поиск и замена, сохранение и выход, а также управление сплитами, вкладками и файлами. Каждая строка связывает клавиши с тем, что они делают.

Vim — модальный редактор: вы либо вводите текст, либо подаёте команды, но никогда и то и другое сразу. Нажмите Esc, чтобы выйти из режима вставки и вернуться в обычный режим, где каждая клавиша — команда. Выгода в том, что частые правки превращаются в короткие последовательности, набираемые без мыши и меню. Команды ниже предполагают, что вы в обычном режиме, если строка не говорит иное.

Справочная таблица · 65 записи
65 of 65 rows
Перемещение
Сдвигает курсор на одну позицию влево, вниз, вверх или вправо.
Прыжок к началу следующего слова, началу предыдущего слова или концу текущего.
Прыжок к первому или последнему символу строки.
Прыжок к первой или последней строке файла.
Прокрутка на полстраницы вниз или вверх.
Прыжок к следующему или предыдущему вхождению символа x в строке.
Прыжок вплотную перед следующим или сразу после предыдущего вхождения символа x.
Повторяет последний прыжок f, F, t или T в том же или противоположном направлении.
Прыжок к квадратной, фигурной или круглой скобке, парной к той, что под курсором.
Прыжок к предыдущей или следующей пустой строке (границе абзаца).
Прыжок к началу предыдущего или следующего предложения.
Прыжок к верхней, средней или нижней строке видимого окна.
Перерисовывает экран так, чтобы строка курсора оказалась в центре, вверху или внизу окна.
Прыжок назад или вперёд по списку позиций, из которых вы прыгали.
Возвращает к позиции последней вставки и снова начинает вставку.
Правка
Входит в режим вставки перед курсором или после него.
Входит в режим вставки в начале или в конце строки.
Открывает новую строку ниже или выше и начинает вставку.
Удаляет строку, следующее слово или символ под курсором.
Изменяет (удаляет и вставляет) строку или следующее слово.
Очищает текущую строку и начинает вставку (то же самое, что cc).
Удаляет, изменяет или копирует (yank) от курсора до конца строки (Y копирует всю строку).
Изменяет, удаляет или выделяет слово под курсором из любой позиции внутри него.
Действует с c, d или v на внутренность кавычек, скобок, фигурных скобок, абзаца или пары тегов.
Удаляет или изменяет текст до позиции непосредственно перед следующим вхождением символа x.
Присоединяет следующую строку к текущей.
Сдвигает выделенные строки на один уровень отступа вправо или влево.
Заменяет символ под курсором или перезаписывает символы по мере ввода.
Переключает регистр или приводит к нижнему/верхнему регистру символ под курсором либо выделение.
Меняет местами символ под курсором со следующим (удаление и вставка).
Вставляет удалённый или скопированный текст после или перед курсором.
Отменяет или повторяет последнее изменение.
Повторяет последнее изменение в позиции курсора.
Визуальное выделение
Начинает посимвольное выделение; двигайтесь, чтобы расширить его.
Начинает построчное выделение.
Начинает блочное (колоночное) выделение.
Заново выделяет последнее визуальное выделение.
Макросы и регистры
Записывает нажатия клавиш в регистр a; нажмите q ещё раз, чтобы остановить.
Воспроизводит макрос из регистра a или повторяет последний воспроизведённый макрос.
Копирует (yank) в регистр a вместо безымянного регистра по умолчанию.
Показывает все регистры и их текущее содержимое.
Метки
Ставит метку a в текущей позиции курсора.
Прыжок к метке a; гравис попадает в точное место, апостроф — в начало её строки.
Прыжок к началу или концу последнего визуального выделения.
Поиск и замена
Ищет вперёд или назад по шаблону.
Прыжок к следующему или предыдущему совпадению.
Ищет вперёд или назад слово под курсором.
Заменяет каждое old на new по всему файлу (вариант gc спрашивает перед каждой заменой).
Снимает подсветку, оставшуюся от последнего поиска.
Удаляет все строки, совпадающие с шаблоном.
Сортирует выделенные строки или весь файл с диапазоном %.
Сохранение и выход
Записывает (сохраняет) файл.
Выходит; добавьте ! для принудительного выхода (отбросить несохранённые изменения).
Записывает файл и выходит.
Записать-и-выйти или выйти-без-сохранения, не прибегая к командной строке.
Сплиты и окна
Делит окно по горизонтали или по вертикали.
Переносит курсор в сплит слева, вниз, вверх или вправо.
Выравнивает размеры всех сплитов.
Закрывает текущий сплит.
Вкладки и файлы
Открывает файл в текущем окне или перезагружает его с диска, если имя не указано.
Просматривает и открывает файлы из списка внутри текущего окна.
Открывает новую вкладку, затем переходит к следующей или предыдущей.
Сохраняет текущие окна, вкладки и метки в файл сеанса.
Включает номера строк, относительные номера строк и подсветку поиска.
Выполняет команду оболочки и возвращается в буфер.