Установка и использование текстового редактора Vim

Один из наиболее мощных текстовых редакторов, доступных из командной строки, – редактор Vim. Основанный на Vi и выпущенный в 1976, данный редактор обладает дополнительной функциональностью и мощностью, сохраняя при этом стиль редактирования своего предшественника.

Данное руководство охватывает установку и базовое использование Vim.

Установка vim

Благодаря широкому использованию vim в командной строке Linux он доступен в репозитории по умолчанию почти каждого дистрибутива.

Для установки редактора на Ubuntu и Debian используйте команду apt-get:

sudo apt-get install vim

Чтобы установить vim на Fedora и CentOS, используйте yum:

sudo yum install vim

На Arch Linux vim можно установить с помощью pacman:

sudo pacman -S vim

Итак, теперь Vim установлен.

Начало работы c Vim

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

Тем не менее, сейчас запускать vim с чистого документа не нужно. Чтобы продемонстрировать возможности vim, можно создать новый документ под названием «newfile»

echo "This is a new file.
Here is the second line
And here is the third line.
Some more text is on this line.  We will edit this file in vim.
It will be great fun." >> newfile

Теперь откройте только что созданный файл.

vim newfile

Модальное редактирование

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

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

Используется для редактирования операций. Копирование, вставка, перемещение, удаление и изменение текста осуществляются в этом режиме.

Vim выполняет редактирование в «обычном» режиме. В данном режиме редактор находится при запуске. Этот режим используется для быстрого перемещения и редактирования текстового документа. Он не используется для ввода текста.

  • [esc] – чтобы перейти в обычный режим, нажмите клавишу «escape».

Режим вставки

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

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

  • i – устанавливает режим вставки в текущей позиции курсора;
  • а – устанавливает режим вставки после текущей позиции курсора;
  • I – устанавливает режим вставки в начале текущей строки;
  • А – устанавливает режим вставки в конце текущей строки.

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

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

Третий режим, который использует Vim, называется визуальным. Участки текста выделяются как цель для команд редактирования или форматирования.

  • v – устанавливает обычный визуальный режим. Выбор осуществляется путем перемещения курсора вверх, вниз, влево и вправо.
  • V – устанавливает режим визуальной строки. Выбираются целые строки, от первого до последнего символа, путем перемещения вверх и вниз.
  • [ctrl]-v – Переход в режим визуального блока. Блок для выбора можно расширить и сузить. С помощью этого метода можно выбрать отдельные части нескольких строк.

Командный режим

Используется для выполнения команд. Для активации этого режима используется двоеточие.

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

  • : – переход в командный режим.

Перемещение по тексту в редакторе vim

Основы перемещения

Перемещаться по тексту всегда можно при помощи клавиш со стрелками, но Vim предоставляет и более быстрые способы перемещения по документу. В обычном режиме можно использовать клавиши h, j, k и l для передвижения влево, вниз, вверх и вправо соответственно.

  • h – влево;
  • j – вниз;
  • k – вверх;
  • l – вправо.

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

Расширенное перемещение

Существуют также другие горячие клавиши перемещения. Ниже приведены самые полезные их них.

  • gg – перемещение в начало документа;
  • G – перемещение в конец документа. Указав перед данной опцией номер строки, можно перейти к этой строке.
  • w – переход к следующему слову. Указав перед опцией число, можно перейти к такому количеству слов.
  • b – вернуться к предыдущему слову. Указав перед опцией число, можно вернуться на такое количество слов назад.
  • e – переход в конец слова. Указав перед опцией число, можно пропустить такое количество слов.
  • 0 – перемещение в начало строки.
  • $ – передвижении в конец строки.

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

Редактирование текста в Vim осуществляется путем запуска команд в обычном режиме.

Важно понимать, что команды редактирования в Vim очень мощны в сочетании с операторами движения. Все опции, описанные в главе о перемещении, могут быть использованы в качестве направления. К примеру, команду редактирования слова можно выполнить при помощи внесения флага «w».

Ниже приведены несколько действий, которые можно использовать:

Удаление текста

  • x – удаляет символ под курсором.
  • d – удаляет символ в направлении, указанном после ввода команды. Например, «dl» удаляет символ справа.
  • dd – удаляет строку.
  • D – удаляет текст от текущей позиции курсора до конца строки.

Изменение текста

  •  r – заменяет символ под курсором. Укажите символ, который нужно заменить, в конце команды.
  • c – изменяет текст в указанном направлении. К примеру, «cw» изменяет текущее слово. После выполнения этой команды vim переходит в режим вставки, так что можно ввести текст для замены.
  • C – изменяет текст до конца строки. Данная команда также переводит vim в режим вставки.

Копирование и вставка

  • y – копирует в указанном направлении.
  • yy – копирует целую строку.
  • Y – копирует текст до конца строки.
  • p – вставляет последнюю скопированную (или удаленную) строку под текущей строкой.
  • P – вставляет последнюю скопированную (или удаленную) строку над текущей строкой.

Прочее редактирование

  • u – отменить последнее действие.
  • <ctrl>-r – повторить последнее действие.
  • J – соединить текущую строку со следующей.

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

Vim управляет документами преимущественно в командном режиме. Для ввода команд перед каждой нужно использовать двоеточие.

  • :q – выйти из vim. Если изменения не были сохранены, это не удастся.
  • :q! – выйти из vim, не учитывая все несохраненные изменения.
  • :w – сохранить изменения. Нажмите пробел и введите имя файла, чтобы сохранить документ в другое место; если это первое сохранение, укажите место для сохранения.
  • :e – отредактировать следующий файл.
  • :bn – отредактировать следующий открытый в vim файл.
  • :bp – отредактировать предыдущий открытый в vim файл.

Итоги

Как уже упоминалось ранее, мощность Vim состоит в возможности объединять различные команды в цепи. Самый простой способ понять эту концепцию – рассматривать команды vim как английский язык. То есть, клавиши в обычном режиме могут представлять прилагательные, глаголы и существительные.

К примеру, чтобы скопировать (yank) 4 слова (words), просто переведите эту фразу на понятный vim язык. В данном случае получится:

y4w

Чтобы удалить (delete) текст с текущей строки и до конца файла, введите:

dG

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

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

C

Чтобы выполнить эту же команду на несколько строк, просто добавьте к команде числовой префикс. Это изменит текст от текущей позиции курсора до конца следующей строки:

2C

Существует целое множество мощных техник использования vim, не вошедших в данное руководство. Чтобы получить больше информации, используйте встроенный в vim мануал. Он не охватывает сложных тем, но дает представление о том, как работать и  выполнять базовое редактирование с Vim. Для запуска учебника используйте:

vimtutor

Tags: , , , , , , , ,

Добавить комментарий