Текстовый редактор Vi содержится практически во всех дистрибутивах с Linux и является практически де-факто главным текстовым редактором, работающим в терминале.
Давайте немного разберемся, как он работает.
Для отображения текста и работы с ним Vi использует весь экран терминала и только последняя его строка используется для диалога с пользователем: вывода информационных сообщений и ввода команд. При редактировании текста с помощью Vi в начале каждой строки в терминале можно видеть значок «тильды»(~) – это значит, что строка пуста и не содержит никаких специальных символов.
Vi после своего запуска может работать в 3 режимах: командном, когда нажатие на любую клавишу – это команда редактору, вставки – нажатие на клавишу приводит к вставке соответствующего символа в текст и режим командной строки для ввода команд, отображающихся в последней строке терминала.
Начинает свою работу Vi в командном режиме. Для перехода в режим командной строки нужно нажать двоеточие (:) на клавиатуре. В результате в начале последней строки терминала появится двоеточие – это приглашение программы для возможности ввода команд. Ввод заканчивается нажатием «Enter». Например, чтобы посмотреть возможности клавиши «L» в командном режиме нужно набрать «help L». Vi настраивается командой «:set <имя настройки>». Например, команда «:set wrap» включает настройку, которая позволяет переносить слишком длинные строки, не умещающиеся в ширину терминала. Выключить эту настройку можно командой «:set nowrap».
Чтобы перейти в режим вставки текста, нужно нажать клавишу «i». В последней строке терминала будет показано, что Vi стал работать в таком режиме, каком мы захотели. В режиме вставки можно вводить текст, завершая строку клавишей ввода. Чтобы вернуться в командный режим, нужно нажать клавишу Esc. Редактируя текст в Vi, пользователь работает не непосредственно с файлом, а с буфером. Если открывается уже существующий файл, Vi копирует его содержимое в буфер и отображает буфер на экране. Открытый же файл остается без изменений. Чтобы записать изменения в файл, используется команда «:w» в командном режиме. Если после не указывать имен файлов, то содержимое буфера скопируется в тот же файл, который и был открыт на редактирование.
Для новичка важна команда выхода из Vi – «:q». Если в буфере Vi есть изменения, которые ещё не записаны ни в каком файле, то Vi откажется выполнять команду «:q», предложив сначала сохранить эти изменения. Если вы не хотите сохранять эти изменения, то для выхода из Vi нужно написать команду «:q!» Восклицательный знак можно добавлять в конце любой файловой команды – тогда Vi не будет задавать лишних вопросов J . Для одновременного сохранения буфера и выхода из Vi можно написать команду «:wq» или «:x»