Чтобы запустить vi, введите следующую команду:
[me@linuxbox ~]$ vi
На экране должно появиться:
~
~
~ VIM - Vi IMproved
~
~ version 7.1.138
~ by Bram Moolenaar et al.
~ Vim is open source and freely distributable
~
~
~ Sponsor Vim development!
~ type :help sponsor for information
~
~ type :q to exit
~ type :help or for on-line help
~ type :help version7 for version info
~
~ Running in Vi compatible mode
~ type :set nocp for Vim defaults
~ type :help cp-default for info on this
~
~
~
Так же как при знакомстве с nano, которое произошло в предыдущей главе, сначала научимся выходить из редактора. Для этого введите следующую команду (обратите внимание: двоеточие — это часть команды):
:q
В окне терминала должно появиться приглашение к вводу командной оболочки. Если по какой-то причине выход из vi не получился (скорее всего, потому что вы внесли какие-то изменения и еще не сохранили их), сообщите vi, что вы действительно хотите выйти, добавив в команду восклицательный знак:
:q!
ПРИМЕЧАНИЕ
Если вы «заблудились» в vi, попробуйте дважды нажать ESC, чтобы вернуться на верный путь.
Давайте снова запустим vi, но на этот раз укажем имя несуществующего файла. Именно так можно с помощью vi создать новый файл:
[me@linuxbox ~]$ rm -f foo.txt
[me@linuxbox ~]$ vi foo.txt
В случае успеха на экране должно появиться следующее:
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"foo.txt" [New File]
Начальные символы тильды (~) сообщают об отсутствии текста в соответствующих строках. Таким способом vi сообщает нам, что файл пуст. Не вводите пока ничего!
Вторая важная вещь, которую нужно усвоить (после того, как вы научились выходить), — vi является режимным редактором. Сразу после запуска vi оказывается в командном режиме. В этом режиме практически каждая клавиша является командой, поэтому если вы начнете ввод, vi может запутаться сам и запутать вас.
Чтобы добавить какой-то текст в файл, необходимо сначала перейти в режим вставки. Для этого нажмите клавишу 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. Клавиши управления курсором
Читать дальше