VIM

Основы

Некоторые из нижеописанных команд начинаются с двоеточия: нажав его, появится подсказка, в которой будет указана полная команда. Команды без двоеточий — это скорее горячие клавиши, которые можно использовать в режиме по умолчанию (в нём запускается Vim). Команды, написанные ЗАГЛАВНЫМИ БУКВАМИ — это отдельные клавиши: например, ESC — это клавиша Esc на вашей клавиатуре.

Все команды чувствительны к регистру и должны выполняться вне режима insert.

Выход из Vim

Выход без сохранения изменений:

:q!

Как запомнить: quit dammit! (закройся, чёрт возьми!)

Выход с сохранением изменений:

:wq

Как запомнить: write to disk and quit

Для перемещения по открытому файлу используйте стрелки.

Перемещение на строку 285:

:285

Поиск слова «import»:

/import

Изменение текста

Вставка текста там, где стоит курсор:

i

Как запомнить: insert

Вставка текста в конце текущей строки:

A

Как запомнить: Append

Выход из режима редактирования (возврат в стандартный режим):

ESC

Выделение текста

Переход в визуальный режим:

v

Как запомнить: visual

Для выделения текста используйте стрелки.

Выход из визуального режима:

ESC

Копирование, удаление, вставка

Копирование выделенного текста в буфер:

y

Как запомнить: yank

Удаление выделенного текста:

d

Как запомнить: delete

Копирование текущей строки в буфер:

yy

Как запомнить: yank yank

Копирование трёх строк, включая текущую, в буфер:

3yy

Удаление текущей строки и помещение её в буфер:

dd

Как запомнить: delete delete

Удаление 5 строк, включая текущую:

5dd

Вставка из буфера перед текущей строкой:

P

Примечание: заглавная P

Вставка из буфера после текущей строки:

p

Отмена и восстановление последнего изменения

Отмена последнего изменения:

u

Как запомнить: uh-oh 🙂

Восстановление последнего отменённого изменения:

CTRL + R

Вывод изменений:

:undolist

Отмена двух последних изменений:

2u

Многоуровневое дерево отката изменений Vim очень мощное, подробнее о нём можно почитать в документации.

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

Открытие файла index.html вместо текущего:

:edit index.html

Сохранение текущего файла:

:w

Как запомнить: write to disk

Сохранение файла с изменённым именем, например, changes.txt:

:w changes.txt

Поиск и замена

Поиск и замена всех вхождений строки в файле:

:%s/typo/corrected/g

Поиск и замена с запросом подтверждения замены:

:%s/typo/corrected/gc

Как запомнить: confirm

Подсветка синтаксиса и отступы

Включение подсветки синтаксиса:

:syntax on

Включение автоматических отступов:

:set autoindent

Увеличение отступов нескольких строк при выделении их в визуальном режиме:

>

Вкладки

Открытие server.py в новой вкладке:

:tabe server.py

Как запомнить: tab edit

Переход на вкладку справа:

:tabn

Как запомнить: tab next

Переход на предыдущую вкладку слева:

:tabp

Как запомнить: tab previous

Для закрытия вкладки переключитесь на неё и используйте команду :q или :wq.

Разделённый экран

Открытие templates/base.html в режиме вертикального разделения экрана:

:vs templates/base.html

Как запомнить: vertical split

Открытие shared.js в режиме горизонтального разделения экрана:

:sp shared.js

Как запомнить: the ’default’ horizontal split

Перемещение между «частями» экрана:

CTRL + W + ARROW KEYS

Для закрытия экрана переключитесь на него и используйте команду :q или :wq.