July 28

Vi / Vim Editor: Практические команды, которые должен знать каждый разработчик, системный администратор и DevOps-инженер.

Это перевод оригинальной статьи Vi /Vim Editor : Practical commands every developer, sysadmin, and DevOps engineer should know..

Подписывайтесь на телеграм-канал usr_bin, где я публикую много полезного по Linux, в том числе ссылки на статьи в этом блоге

часто используемые команды редактора vi

Текстовый редактор vi существует уже несколько десятилетий, и тем не менее он остается одним из самых мощных и легковесных текстовых редакторов, доступных в любой Unix-подобной системе. Для разработчиков освоение его возможностей становится особенно важным. vi может стать решающим фактором между неуклюжим редактированием файлов и эффективной работой прямо в терминале.

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

1. Что такое vi редактор и почему он важен?

vi (сокращенно от visual editor ) — это текстовый редактор, встроенный в большинство систем Unix и Linux. Он известен своей высокой скоростью работы, ориентированностью на клавиатуру и доступностью практически на любой платформе. В отличие от графических редакторов или IDE, vi не использует мышь — все действия выполняются с помощью нажатий клавиш.

Для разработчиков, работающих по SSH-подключениям или администрирующих серверы без графического интерфейса, vi является основным инструментом. Если вы работаете с серверами, контейнерами Docker или облачными средами, vi это ваш лучший друг. Как только вы запомните основные команды, вы сможете редактировать быстрее, чем в большинстве графических редакторов.

2. Установка и настройка vi в Ubuntu

Большинство дистрибутивов Ubuntu поставляются с vim (Vi IMproved) — улучшенной версией vi, которая добавляет современные возможности, такие как подсветка синтаксиса и история отмены изменений.

Чтобы установить Vim, выполните:

sudo apt update
sudo apt install vim

Чтобы установить Vim в качестве редактора по умолчанию:

sudo update-alternatives --config editor

Выберите /usr/bin/vim.basic из списка и подтвердите.

Теперь вы можете открывать файлы с помощью:

vi filename.txt

3. Понимание режимов vi

В отличие от большинства редакторов, имеющих только режим «набора текста», Vim работает в нескольких режимах, каждый из которых предназначен для решения различных задач.
Переключение между ними может показаться поначалу непривычным, но именно в этом и заключается его мощь.

Обычный режим

Здесь вы проводите большую часть времени: навигация, удаление, копирование и вставка.
Если сомневаетесь, в каком режиме находитесь, нажмите дважды Esc, чтобы вернуться сюда. Экран может мигнуть или прозвучит звуковой сигнал для подтверждения.

Вставка

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

  • i -> Вставить перед курсором
  • a -> Вставить после курсора
  • o -> Вставьте новую строку ниже

Визуальный режим

Визуальный режим позволяет выделять текст и выполнять над ним операции.

  • v -> Начать визуальное выделение
  • V -> Выделить строки целиком
  • Ctrl + v -> Выделить прямоугольный блок (для редактирования столбцов)

После выделения вы можете удалить, скопировать или изменить отступ блока.

Режим командной строки

При нажатии клавиши :, в нижней части экрана вы переходите в режим командной строки.
Здесь выполняются команды сохранения, выхода и расширенные операции, такие как поиск и замена:

:w     -> Save
:q     -> Quit
:wq    -> Save and quit
:%s/foo/bar/g   -> Replace all 'foo' with 'bar'

Режим замены

Нажмите R в обычном режиме, чтобы начать ввод поверх существующего текста.
Полезно для исправления слов или цифр на месте.
Нажмите Esc, когда закончите, чтобы вернуться в обычный режим.

Двоичный режим

Признаюсь — даже я не знал об этом до недавнего времени. Я наткнулся на эту возможность, изучая документацию vi (ссылка приведена ниже).

Вы можете открывать бинарные файлы (например, скомпилированные программы или изображения) с помощью команды:

vi -b file.bin

Вы также можете просматривать и редактировать байты в шестнадцатеричном виде с помощью:

:%!xxd

и вернуться обратно командой:

:%!xxd -r

4. Основные команды vi, которые вы будете использовать.

Ниже приведены некоторые из наиболее полезных команд, которые помогут оптимизировать процесс редактирования:

Навигация

  • h, j, k, l -> перемещение влево, вниз, вверх, вправо.
  • w -> Переход к началу следующего слова.
  • b -> Переход к началу предыдущего слова.
  • gg -> Переход в начало файла.
  • G -> Переход в конец файла.
  • :n -> Переход к строке номер n (например, :42).

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

  • i -> Вставка перед курсором.
  • a -> Вставка после курсора.
  • o -> Открыть новую строку ниже.
  • dd -> Удалить строку.
  • yy -> Скопировать строку.
  • p -> Вставьте ниже текущей строки.

Отмена и повтор

  • u -> Отменить последнее изменение.
  • Ctrl + r -> Повторить отмененное изменение.

Поиск

  • /word -> Выполнить поиск по слову вперед.
  • ?word -> Выполнить поиск по слову назад.
  • nи N -> Повторить поиск вперед или назад.

Сохранение и выход

  • :w -> Сохранить изменения.
  • :q -> Выйти.
  • :wq или ZZ -> Сохранить и выйти.
  • :q! -> Принудительный выход без сохранения.

Полезный совет: комбинируйте действия для повышения скорости. Например, 3dd удаляет три строки, а 5y копирует пять строк. Когда вы войдёте в ритм, редактирование станет интуитивным.

Анимированный GIF-файл, демонстрирующий режим вставки.
Анимированный GIF-файл, демонстрирующий режим командной строки.

5. Полезные продвинутые приемы для разработчиков

Когда вы освоите основы, следующие приёмы сделают вашу работу с vi намного удобнее.

Поиск и замена:
Используйте :%s/foo/bar/g для замены всех вхождений слова «foo» на «bar».
Добавьте c в конце (:%s/foo/bar/gc) для подтверждения каждой замены — очень полезно при рефакторинге кода.

Отступы и форматирование:
Используйте >> для отступа строки и << для снятия отступа.
Для автоматического отступа блока визуально выделите его (v) и нажмите =.

Разделение экрана:
Нужно просматривать два файла одновременно?
Запустите команду :split filename для горизонтального разделения или :vsplit filename для вертикального.
Переключаться между окнами можно с помощью Ctrl + w + w.

Работа с буфером обмена:
Вы можете скопировать текст из Vim в системный буфер обмена с помощью "*yy и вставить его с помощью "*p.
Это особенно удобно при переключении между терминалом и браузером.

История отмены:
Хотели когда-нибудь вернуться в прошлое?
Используйте :earlier 5m, чтобы вернуть файл к состоянию пятиминутной давности, или :later 5m, чтобы снова переместиться вперёд.

Магия блочного редактирования:
Нажмите Ctrl + v, чтобы перейти в режим визуального блочного редактирования, выделите несколько строк и введите I#, чтобы добавить комментарии # ко всем выбранным строкам.
Нажмите Esc, и комментарий появится на каждой строке — это значительно экономит время.

Повтор последней команды:
Клавиша .(точка) повторяет ваше последнее действие.
Удалите слово один раз, нажмите ., и будет удалено следующее. Как только вы начнете этим пользоваться, это вызовет привыкание.

Заключение

Поначалу vi может показаться сложным, но освоение быстро окупается. Знание этого полезно каждому разработчику, особенно тем, кто работает с серверами, контейнерами Docker или облачными средами. Это быстро, надежно и всегда доступно.

Начните с малого: попрактикуйтесь в базовой навигации и сохранении файлов. Постепенно добавляйте в свой рабочий процесс больше команд, и вскоре vi будет ощущаться как продолжение вашей клавиатуры.

Дополнительная литература

Если вы хотите узнать больше, чем просто базовые вещи:

На этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.