vim — редактирование файлов в терминале
Минимум для правки конфигов в терминале; Esc всегда возвращает в режим Normal, где буквы — команды, а не текст.
Шпаргалка
8 команд Версия для печати-
iвойти в режим вставки, чтобы печатать текст -
Escвернуться в Normal -
:wсохранить -
:qвыйти -
:wqсохранить и выйти -
:q!выйти без сохранения -
/текстискать вперёд по файлу -
:%s/a/b/gcзаменить во всём файле с подтверждением каждой замены
Обзор
vim/vi есть почти везде — уметь хотя бы выйти и сохранить обязательно. Ключевая
идея — режимы:
- Normal (по умолчанию) — навигация и команды;
- Insert — набор текста (вход:
i); - Visual — выделение (вход:
v); - Command — команды через
:(сохранить/выйти).
Esc всегда возвращает в Normal.
Ключи
5Флаги командной строки, а не команды внутри редактора: vim +42 file
открывает файл сразу на строке 42, vim -R file — только для чтения (защита
от случайной правки), vim -u NONE запускает без личного ~/.vimrc —
полезно, когда нужно проверить, не конфиг ли ломает поведение.
| Ключ | Что делает | Пример |
|---|---|---|
-R |
Открыть файл только для чтения — защита от случайной правки. | vim -R /etc/nginx/nginx.conf |
+N |
Открыть файл сразу на строке N. | vim +42 file |
-u FILE |
Запустить с указанным vimrc вместо личного; NONE — вообще без конфига. | vim -u NONE file |
-d |
Режим сравнения двух файлов бок о бок (diff mode). | vim -d file1 file2 |
-p |
Открыть несколько файлов во вкладках. | vim -p file1 file2 |
Ничего не найдено. Попробуй запрос короче.
Рецепты
3Навигация и правка
Полезное
Неполадки
5Застрял, всё ломается при наборе
Ты в Normal, буквы — команды. Esc, затем :q! чтобы выйти без сохранения, и начни
аккуратно (i для ввода).
Не сохранить: «E212: Can't open file for writing»
Нет прав (открыл не под sudo). Сохрани через :w !sudo tee % > /dev/null или выйди
:q! и sudo vim file.
Вставка мышью «лесенкой» ломает отступы
:set paste перед вставкой (в Insert auto-indent добавляет лишнее), затем :set nopaste.
Случайно наделал правок
u отменяет по шагам; :q! выйдет, отбросив всё; :e! перечитает файл с диска.
Нужен редактор попроще
nano file — внизу подсказки (см. nano). Для конфигов ок.
См. также
- files-basics — Навигация и файлы — ls, cd, cp, mv, rm, cat, less, head, tail, копипаст в терминале.
- env-vars — env, export, $PATH, ~/.bashrc vs профили; почему «command not found».
Есть неточность? Сообщить об ошибке в статье