Командная строка Linux. Полное руководство - [47]

Шрифт
Интервал

Переход в режим вставки


Чтобы добавить какой-то текст в файл, необходимо сначала перейти в режим вставки. Для этого нажмите клавишу I (i). Вслед за этим, если vim работает в обычном расширенном режиме, в нижней части экрана появится надпись (она не появится, если редактор работает в режиме совместимости с vi):

-- INSERT --

Теперь можно ввести какой-нибудь текст. Попробуйте, например:

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

Чтобы выйти из режима вставки и вернуться в командный режим, нажмите ESC.

Сохранение изменений


Чтобы сохранить изменения в файл, введите ex-команду, находясь в командном режиме. Для этого нажмите клавишу :. После этого в нижней части должен появиться символ двоеточия:

:

Чтобы выполнить запись изменений в файл, вслед за двоеточием введите w и нажмите ENTER:

:w

Файл будет записан на жесткий диск, и в нижней части появится подтверждение:

"foo.txt" [New] 1L, 46C written

ПРИМЕЧАНИЕ

Если заглянуть в документацию к vim, можно заметить, что (по непонятной причине) командный режим в ней называется нормальным режимом, а ex-команды называются командным режимом. Имейте эту неточность в виду.

режим совместимости

В начале этого раздела, где показан экран, который выводится сразу после запуска vim (взят из Ubuntu 8.04), можно заметить текст: «Running in Vi compatible mode» (запущен в режиме совместимости с vi). Это означает, что vim был запущен в режиме, близко повторяющем обычное поведение vi, а не в расширенном режиме vim. Чтобы беспрепятственно следовать за дальнейшим обсуждением в этой главе, запустите vim в расширенном режиме. Для этого в вашем распоряжении имеется пара возможностей:

• запустить редактор командой vim вместо vi (если этот прием сработает, подумайте о том, чтобы добавить псевдоним vi='vim' в свой файл .bashrc file);

• выполнить следующую команду, чтобы добавить строку в конфигурационный файл vim:

echo "set nocp" >> ~/.vimrc

В разных дистрибутивах Linux vim упакован по-разному. В некоторых дистрибутивах по умолчанию устанавливается минимальная версия vim, поддерживающая лишь ограниченный набор возможностей vim. Поэтому, выполняя примеры из этой главы, вы можете столкнуться с отсутствием некоторых возможностей, — в этом случае просто установите полную версию vim командой: sudo apt-get install vim.

Перемещение курсора


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

Таблица 12.1. Клавиши управления курсором

Клавиша

Перемещает курсор

L или стрелка вправо

Вправо на один символ

H или стрелка влево

Влево на один символ

J или стрелка вниз

Вниз на одну строку

K или стрелка вверх

Вверх на одну строку

0 (ноль)

В начало текущей строки

SHIFT+6 (^)

К первому непробельному символу в текущей строке

SHIFT+4 ($)

В конец текущей строки

W (w)

В начало следующего слова или к знаку препинания

SHIFT+W (W)

В начало следующего слова, минуя знаки препинания

B (b)

В начало предыдущего слова или к знаку препинания

SHIFT+B (B)

В начало предыдущего слова, минуя знаки препинания

CTRL+F или Page Down

Вниз на одну страницу

CTRL+B или Page Up

Вверх на одну страницу

число-SHIFT+G

К строке с указанным номером (например, команда 1G выполнит переход к первой строке в файле)

SHIFT+G (G)

К последней строке в файле


Почему для перемещения курсора были выбраны клавиши H, J, K и L? Потому что, когда был написан редактор vi, не все видеотерминалы имели кнопки со стрелками на клавиатуре. Таким образом, опытные пользователи, хорошо владеющие клавиатурой, могли управлять курсором, не отрывая пальцев от клавиш.

Многие команды в vi могут начинаться с числа, как команда G в табл. 12.1. Добавляя число в команду, можно указать, сколько раз она должна быть выполнена. Например, команда 5j переместит курсор на пять строк вниз.

Основы редактирования


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

Добавление текста в конец


vi поддерживает несколько способов входа в режим вставки. Мы уже использовали команду i для вставки текста.

Давайте вернемся к нашему файлу foo.txt:

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

Если попытаться добавить текст в конец приложения, можно обнаружить, что ­команда i не позволяет сделать это, не давая переместить курсор за конец строки. vi поддерживает команду добавления текста в конец, разумно названную a. Если переместить курсор в конец строки и ввести a, курсор переместится за конец строки и vi перейдет в режим вставки. Это позволит нам добавить следующий текст:

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

Не забудьте нажать ESC, чтобы выйти из режима вставки.