В окне терминала должно появиться приглашение к вводу командной оболочки. Если по какой-то причине выход из vi не получился (скорее всего, потому что вы внесли какие-то изменения и еще не сохранили их), сообщите vi, что вы действительно хотите выйти, добавив в команду восклицательный знак:
:q!
ПРИМЕЧАНИЕ
Если вы «заблудились» в vi, попробуйте дважды нажать ESC, чтобы вернуться на верный путь.
Режимы редактирования
Давайте снова запустим vi, но на этот раз укажем имя несуществующего файла. Именно так можно с помощью vi создать новый файл:
[me@linuxbox ~]$ rm -f foo.txt
[me@linuxbox ~]$ vi foo.txt
В случае успеха на экране должно появиться следующее:
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"foo.txt" [New File]
Начальные символы тильды (~) сообщают об отсутствии текста в соответствующих строках. Таким способом vi сообщает нам, что файл пуст.
Вторая важная вещь, которую нужно усвоить (после того, как вы научились выходить), — vi является
Переход в режим вставки
Чтобы добавить какой-то текст в файл, необходимо сначала перейти в
-- INSERT --
Теперь можно ввести какой-нибудь текст. Попробуйте, например:
Съешь же ещё этих мягких французских булок, да выпей чаю.
Чтобы выйти из режима вставки и вернуться в командный режим, нажмите ESC.
Сохранение изменений
Чтобы сохранить изменения в файл, введите
:
Чтобы выполнить запись изменений в файл, вслед за двоеточием введите 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' в свой файл
• выполнить следующую команду, чтобы добавить строку в конфигурационный файл 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
Вверх на одну страницу
К строке с указанным номером (например, команда 1G выполнит переход к первой строке в файле)
SHIFT+G (G)
К последней строке в файле