Vim: как перестать бояться и начать использовать
Первый раз открыл Vim случайно — набрал git commit без -m, и система бросила меня в редактор. Ни одна клавиша не делала то, что я ожидал. Спасло только закрытие терминала.
Потом пришлось разобраться. Vim стоит на каждом Linux-сервере по умолчанию, и иногда это единственный доступный редактор. Лучше знать базу, чем паниковать в нужный момент.
Почему Vim работает иначе
Vim — модальный редактор. Это значит, что одни и те же клавиши делают разное в зависимости от режима. Три режима, которые нужны чаще всего:
- Normal — навигация и команды. Режим по умолчанию при открытии файла
- Insert — ввод текста, как в обычном редакторе
- Command — команды редактора (сохранение, выход, поиск)
Переключение: i — войти в Insert, Esc — вернуться в Normal, : — войти в Command.
Базовый рабочий процесс
vim file.txt # открыть файл
i # начать вводить текст
Esc # выйти из режима ввода
:wq # сохранить и выйти
:q! # выйти без сохранения
Это минимум, который нужен всегда.
Навигация в Normal-режиме
| Команда | Действие |
|---|---|
h j k l |
влево / вниз / вверх / вправо |
gg |
начало файла |
G |
конец файла |
0 |
начало строки |
$ |
конец строки |
Стрелки тоже работают, но hjkl быстрее — руки не уходят с основного ряда.
Редактирование
| Команда | Действие |
|---|---|
dd |
удалить строку |
D |
удалить до конца строки |
x |
удалить символ под курсором |
yy |
скопировать строку |
p |
вставить ниже |
P |
вставить выше |
u |
отменить |
Ctrl + r |
повторить отменённое |
r<символ> |
заменить символ под курсором |
J |
склеить следующую строку с текущей |
Поиск
В Normal-режиме:
/слово # искать вперёд
После Enter: n — следующее совпадение, N — предыдущее.
По умолчанию поиск чувствителен к регистру. Чтобы игнорировать регистр:
/\cслово
Command-режим
Входишь через : из Normal-режима:
| Команда | Действие |
|---|---|
:w |
сохранить |
:q |
выйти |
:wq |
сохранить и выйти |
:q! |
выйти без сохранения |
:e file.txt |
открыть другой файл |
С чего начать
Набери в терминале vimtutor — встроенный интерактивный курс, занимает минут 30. Покрывает всё что нужно для базовой работы.
Если хочешь использовать Vim как основной редактор — со временем стоит посмотреть на плагины: NERDTree для навигации по файлам, fzf.vim для быстрого поиска, vim-airline для информативной строки статуса. Но это уже после того, как базовые команды лягут в мышечную память.
Альтернативы: Neovim — современный форк с лучшей расширяемостью и поддержкой Lua, nano — если нужно просто быстро что-то поправить без погружения.
Если работаешь с Linux-серверами и нужна помощь с настройкой рабочего окружения — пиши на [email protected] или заходи на 1it.pro.