Базовый Vim. Файл конфигурации и команды.

Если вы работаете в IT, то рано или поздно вам придется столкнуться с редактором Vim. Он есть в большинстве дистрибутивов Linux, а следовательно он есть на роутерах, в виртуальных контейнерах и т.п. И тут можно сразу вспомнить безумное количество мемов про это редактор, поскольку этот редактор отличается по своей работе от привычных современных образцов.


На большинстве сайтов при знакомстве с этим редактором дается очень много информации, о его преимуществах и т.п. Я думаю, что это неправильно. Для новичка главное — научиться делать то, что он привык делать в обычном редакторе, а вот потом уже при желании, если таковое возникнет, познавать дальнейший джэм 🙂

Поэтому вот мой список базовых команд c описанием нюансов, почему не работает, или как сделать чтобы…

Режимы работы
1. Командный режим. Запускается через Esc или двойной Esc.
По-умолчанию загружается при запуске программы Vim, предназначен для ввода команд.
Пример: «:set number». Пишем выражение заключенное в скобке и это активирует режим нумерации строк
2. Режим вставки. По факту режим редактирования текста. Включается через нажатие i в командном режиме.
3. Визуальный режим. Представляет собой простое и гибкое средство для выделения фрагмента текста и последующего использования оператора с этим фрагментом. Кроме того, это единственный способ выделения блоков текста.
Запускается через v (произвольное выделение), V (выделение строк), CTRL-V (выделение блоков текста).
Поддерживает выделение мышкой.

Выход из приложения(!!!)
ZQ или :q! — выйти без сохранения
ZZ или :wq — выйти с записью

Команды редактирования
u — отмена последней команды
CTRL-R — вернуть
. — повтор последней команды, включая ввод текста

Работают с системным буфером (os clipboard)
Необходимо проверить поддержку этого режима с помощью команды:
vim --version | grep .xterm_clipboard -o

«+x — вырезать
«+y — копировать
«+p — вставить
«+yG — копировать все содержимое (перед этим в командном режиме перейдите к началу через комбинацию gg)

Работают в пределах Vim
Однако если установить в конфиге или командой set clipboard^=unnamed,unnamedplus , то будет рабоnать и с системным буфером (см. мой конфиг)
Необходимо проверить поддержку этого режима с помощью команды:
vim --version | grep .xterm_clipboard -o

x — вырезать
y — копировать
p — вставить
yG — копировать все содержимое (перед этим в командном режиме перейдите к началу через комбинацию gg)

x — удалить текущий символ
dw — удалить текущее слово (не работает с русским языком)
dd — удалить текущую строку

ggVG — выделить все

Переход к строке под номером [number]:
[number]gg

Поиск
:/искомое слово или выражение
:/noh — отключить подсветку результатов поиска до следующего поиска

Замена
:s/foo/bar/g
Найти каждое вхождение ‘foo’ (только в ткущей строке), и заменить это на ‘bar’
:%s/foo/bar/g
Найти каждое вхождение ‘foo’ (во всех строках), и заменить это на ‘bar’.
:%s/foo/bar/gc
Заменить каждое ‘foo’ на ‘bar’, но сперва спрашивать подтверждение.

n — повторить поиск вперед
N — повторить поиск назад

Ну и возможно вам пригодится конфиг моего Vim, прописывается он в ~/.vimrc (Linux, macOS), либо в ~/_vimrc (Windows). Конфиг простой, без каких-то излишества, содержит комментарии, что и для чего нужно.

Надеюсь, что эта заметка поможет вам в освоении этого непростого, но и не божественного, как по мне, а просто любопытного и полезного редактора.