Vim: мой путь к пониманию «того самого» редактора

Честно говоря, когда я впервые столкнулся с Vim’ом года три назад, хотелось его просто… закрыть. И не мог! Попал в ту самую ловушку, о которой ходят мемы в интернете. Потом, правда, разобрался и теперь использую его почти для всего. Расскажу, что из этого вышло.

Зачем вообще Vim, если есть обычные редакторы?

Ну смотрите. Сначала я работал в gedit’е, потом попробовал nano — вроде норм, простенько и со вкусом. Но когда стал больше времени проводить в терминале (администрирую несколько серверов), понял что постоянно тянуться к мышке — это жесть какая неэффективно.

А Vim… он весь построен на том, что руки лежат на клавиатуре и никуда не убегают. Есть разные «режимы» работы:

  • Командный режим — тут ты не печатаешь текст, а управляешь редактором. Перемещаешься по файлу, удаляешь строки, копируешь блоки
  • Режим вставки — обычное редактирование, как в блокноте
  • Визуальный режим — выделяешь куски текста
  • Командная строка — продвинутые команды типа поиска-замены или сохранения

Внимание! Командный режим работает только при английской раскладке. Я об этом забывал первые пару месяцев и бесился, почему ничего не работает.

Как не остаться заложником Vim’а навсегда

Классика жанра — зашел в vim, а выйти не можешь. Вот пошаговка:

  1. Открываешь файл: vim example.txt
  2. Хочешь что-то написать — жмешь i (войти в режим вставки)
  3. Пишешь текст
  4. ОБЯЗАТЕЛЬНО жмешь Esc (возврат в командный режим)
  5. Пишешь :wq и Enter (сохранить и выйти)

Если накосячил и хочешь выйти без сохранения: :q! и Enter.

Если открыл кучу файлов и хочешь закрыть все разом: :qa!

Базовые команды, без которых никуда

Долго врабатывался в эти комбинации, но оно того стоило:

Перемещение (в командном режиме)

  • h, j, k, l — влево, вниз, вверх, вправо (да, не стрелочки!)
  • w / b — скакать по словам вперед/назад
  • 0 — в начало строки, $ — в конец
  • gg — в начало файла, G — в конец
  • 15G — прыгнуть на 15-ю строку

Фишка в том, что перед командами можно ставить цифры. 3j — вниз на 3 строки, 5w — на 5 слов вперед.

Редактирование

  • i — вставка перед курсором
  • a — вставка после курсора
  • o — новая строка ниже и сразу в режим вставки
  • O — новая строка выше

Удаление и копирование

  • x — удалить символ под курсором
  • dd — снести всю строку
  • dw — удалить слово
  • yy — скопировать строку
  • yw — скопировать слово
  • p — вставить после курсора
  • P — вставить перед курсором

Поиск

  • /что-то — найти «что-то» в тексте
  • n — следующее совпадение
  • N — предыдущее совпадение

Замена

:% s/старое/новое/g — заменить все вхождения «старое» на «новое» во всем файле

Отмена

  • u — отменить последнее действие
  • Ctrl+r — вернуть отмененное

Мои грабли и как их избежать

Раскладка клавиатуры. Месяца два мучился — то команды не срабатывают, то вместо :wq получается какая-то белиберда. Оказалось, нужно переключаться на английский перед вводом команд. Есть способы настроить русскую раскладку в vim’е, но проще привыкнуть переключаться.

Режимы. Поначалу постоянно забывал, в каком режиме нахожусь. Начинаешь печатать текст, а он команды выполняет. Или наоборот — хочешь переместиться, а vim пишет буквы. Спасает индикатор внизу экрана и привычка всегда жать Esc перед командами.

Копирование в системный буфер. Если хочешь скопировать из vim’а в браузер или другую программу, обычные yy и p не помогут. Нужно использовать "+y для копирования и "+p для вставки. Но vim должен быть скомпилирован с поддержкой clipboard’а.

Vimtutor — твой лучший друг

Серьезно, не игнорируйте эту штуку. Просто наберите vimtutor в терминале. Полчаса интерактивного обучения заменят часы чтения мануалов. Там на практике проходишь все основные команды, включая правильный выход из редактора.

Работа с несколькими файлами

Можно открыть сразу кучу файлов: vim file1.txt file2.txt file3.txt

Переключение между ними:

  • :n — следующий файл
  • :prev — предыдущий файл
  • :buffers — список всех открытых файлов
  • :buffer 2 — переключиться на второй файл из списка

Мой .vimrc (базовые настройки)

Создал файл ~/.vimrc с минимальными настройками, которые делают жизнь проще:

set number
set tabstop=4
set shiftwidth=4
set expandtab
syntax on
set hlsearch
set incsearch

Показывает номера строк, настраивает табуляцию, включает подсветку синтаксиса и поиск с подсветкой.

Почему не пожалел о потраченном времени

Да, первые недели были болезненными. Скорость работы упала в разы, постоянно гуглил команды, бесился от того что не могу быстро выйти из редактора.

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

Плюс vim (или его основы) есть практически везде в unix-мире. Знание хотя бы базовых команд выхода (:q!, :wq) и перемещения может спасти в самый неожиданный момент.

С чего начать

  1. Запустите vimtutor и пройдите его до конца
  2. Попробуйте редактировать простые файлы, привыкните к режимам
  3. Выучите наизусть команды выхода :wq, :q!, :qa!
  4. Постепенно добавляйте новые команды в арсенал
  5. Не пытайтесь освоить все сразу — vim огромен

И помните — если застряли в vim’е и не знаете как выйти, это нормально. Через это прошли все :)

 

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *