Введение / Зачем это нужно
Vim — это мощный, консольный текстовый редактор, который предустановлен практически в любой системе Linux. Его изучение — критически важный навык для системного администратора, разработчика и любого, кто работает с серверами через SSH. Даже если вы предпочитаете графические редакторы, знание Vim спасает, когда графический интерфейс недоступен. Этот гайд даст вам прочный фундамент: вы перестанете бояться Vim и сможете комфортно редактировать конфиги, скрипты и текстовые файлы прямо в терминале.
Требования / Подготовка
- Система: Любой дистрибутив Linux (Ubuntu, Debian, CentOS, Fedora и т.д.).
- Доступ: Права на запуск терминала и редактирование целевых файлов (может потребоваться
sudoдля системных конфигов). - Пакет: Vim обычно уже установлен. Если нет, установите его:
- Debian/Ubuntu:
sudo apt update && sudo apt install vim - RHEL/CentOS/Fedora:
sudo yum install vimилиsudo dnf install vim
- Debian/Ubuntu:
Пошаговая инструкция
Шаг 1: Запуск Vim и понимание интерфейса
Откройте терминал (Ctrl+Alt+T в большинстве дистрибутивов). Для редактирования конкретного файла выполните:
vim /путь/к/файлу.conf
Для создания нового файла:
vim новый_файл.txt
После запуска вы увидите:
- Титульную строку (вверху) — информацию о файле.
- Основную область — содержимое файла (или пустую).
- Строку состояния (внизу) — здесь будут появляться сообщения и команды.
Ключевой момент: Сразу после запуска вы находитесь в нормальном режиме (Normal mode). В этом режиме каждая клавиша — это команда для навигации, удаления, копирования и т.д. Вы не можете просто начать печатать текст. Для этого нужно переключиться.
Шаг 2: Основные движения курсором (режим Normal)
Практикуйтесь в этих командах, находясь в нормальном режиме. Не нажимайте другие клавиши, пока не освоите эти.
| Команда | Действие |
|---|---|
h | Влево |
j | Вниз |
k | Вверх |
l | Вправо |
Эти четыре клавиши — основа основ. Запомните их: h — left (лево), j — down (вниз, как стрелка вниз), k — up (вверх), l — right (право).
Быстрые перемещения:
w— на начало следующего слова.b— на начало предыдущего слова.0(ноль) — в самый конец строки.$— в самый конец строки.gg— в самое начало файла.G(Shift+g) — в самый конец файла.
💡 Совет: Если вы нажали клавишу и что-то не так — просто нажмите Esc, чтобы сбросить любую незавершенную команду и вернуться в чистый нормальный режим.
Шаг 3: Режимы вставки (Insert) и редактирования
Чтобы начать вводить или редактировать текст, нужно перейти в режим вставки.
| Команда | Когда использовать | Куда станет курсор |
|---|---|---|
i | Insert (вставить) | Перед текущим символом |
a | Append (добавить) | После текущего символа |
o | Open (открыть) | В новую строку ниже текущей |
O (Shift+o) | В новую строку выше текущей |
Пример:
- Находясь в нормальном режиме, поставьте курсор на букву
eв словетекст. - Нажмите
i. Внизу в строке состояния появится-- INSERT --. - Начните печатать. Текст будет вставлен перед символом
e. - Нажмите
Esc. Вы вернетесь в нормальный режим, и можно снова управлять редактором.
Шаг 4: Удаление, замена и отмена
Все эти действия выполняются в нормальном режиме.
- Удаление:
x— удалить символ под курсором (какDelete).dd— удалить всю строку, на которой курсор.dw— удалить слово, начиная с курсора.d$— удалить от курсора до конца строки.d0— удалить от курсора до начала строки.
- Замена:
r+символ— заменить один символ под курсором на указанный (например,rxзаменит символ наx). После этого вы останетесь в нормальном режиме.
- Отмена (Undo) и Повтор (Redo):
u— отменить последнее изменение.Ctrl + r— повторить (откатить отмену).
Шаг 5: Сохранение и выход
Всегда проверяйте, в каком режиме вы находитесь! Для сохранения и выхода нужно быть в нормальном режиме (Esc).
- Нажмите
:(двоеточие). Курсор перейдет вниз, в строку команд. - Введите одну из команд:
:w— write (сохранить).:q— quit (выйти). Работает только если файл не изменялся!:wq— сохранить и выйти.ZZ(Shift+zz) — быстрый аналог:wq(не требует нажатия:).:q!— выйти без сохранения, отменив все изменения с последнего сохранения.:w имя_файла— сохранить под другим именем.
Проверка результата
- Создайте тестовый файл:
vim test_vim.txt. - Нажмите
i, введите несколько строк текста. - Нажмите
Esc. - Попробуйте переместиться по файлу с помощью
j,k,w,b. - Удалите пару слов (
dw) или строку (dd). - Нажмите
u— изменения должны отмениться. - Нажмите
:и введите:wq. Файлtest_vim.txtдолжен сохраниться в текущей директории. Проверьте:cat test_vim.txt.
Если все прошло успешно — вы освоили жизненно важный минимум.
Возможные проблемы
- Проблема: При попытке выйти (
:q) Vim пишетE37: No write since last change (add ! to override).- Причина: Файл был изменен, но не сохранен.
- Решение: Либо сохраните (
:wq), либо выйдите без сохранения (:q!).
- Проблема: Нажал случайно клавишу, и появилась странная строка внизу или текст начал вести себя непредсказуемо.
- Решение: Нажмите
Escнесколько раз. Это гарантированно вернет вас в чистый нормальный режим.
- Решение: Нажмите
- Проблема: Не могу ввести текст, только перемещаюсь.
- Причина: Вы находитесь в нормальном режиме.
- Решение: Нажмите
i,aилиo, чтобы перейти в режим вставки. В строке состояния появится-- INSERT --.
- Проблема: Не знаю, в каком режиме нахожусь.
- Решение: Просто нажмите
Esc. Если вы были в режиме вставки, вы вернетесь в нормальный. Если уже были в нормальном — ничего не изменится. Это безопасный способ "сброса".
- Решение: Просто нажмите
Дальнейшее развитие навыков
Освоив эти основы, вы уже можете работать. Чтобы стать быстрым, осваивайте команды постепенно:
- Копирование и вставка:
yy(копировать строку),p(вставить после курсора),P(вставить перед). - Поиск:
/текст+Enter(искать вперед),n— следующее совпадение,N— предыдущее. - Работа с несколькими файлами:
:e имя_файла(открыть),:bn/:bp(следующий/предыдущий буфер). - Разделение окна:
:split(горизонтально),:vsplit(вертикально).
Полезная шпаргалка всегда под рукой: в самом Vim введите :help или найдите онлайн-ресурсы по запросу "vim cheat sheet". Главное — практика. Откройте любой конфигурационный файл (/etc/fstab, ~/.bashrc) и попробуйте внести в него изменения с помощью Vim. У вас всё получится!