Редактор vi

Одна из наиболее сложных проблем, которая возникает у пользователей при освоении работы в среде Linux, — это непривычный набор сервисных программ для выполнения рутинных операций.
Одна из наиболее сложных проблем, которая возникает у пользователей при освоении работы в среде Linux, — это непривычный набор сервисных программ для выполнения рутинных операций. Плюс почти все программы для Linux имеют систему команд, которая серьезно отличается от тех, которые кажутся родными в Windows.
Учитывая опыт освоения операционной системы Linux начинающими пользователями, автор в этой главе предлагает обзор наиболее важных программ, которыми следует уметь пользоваться, чтобы не попадать постоянно в стрессовые ситуации, когда непонятно, как закрыть окно программы, почему не работает привычная по Windows комбинация горячих клавиш и т. д.

Редактор vi

Самой нужной программой в любой операционной системе является простой текстовый редактор, с помощью которого можно откорректировать, например, конфигурационные файлы. В Windows — это редактор Блокнот или встроенный редактор файлового менеджера. В Linux, как это ни прискорбно для пользователей Windows, наиболее употребляемыми для таких нужд программами являются текстовый редактор vi и его потомки, у которых, к величайшему сожалению, самая неудобоваримая система команд. Но так сложилось исторически, поэтому в данном разделе приводятся наиболее важные способы работы с этой группой программ. Хотя в Linux стандартной и обязательной программой для редактирования конфигурационных файлов традиционно считается текстовый редактор vi, в последнее время чаще всего используется редактор Vim.
Правда, для вызова установленного в дистрибутиве текстового редактора используется одна и та же команда: vi В отличие от известного всем пользователям Windows Блокнота редактор vi имеет ряд функций, предназначенных для работы с файлами. Такая особенность редактора vi вызывает на первых порах много проблем у начинающих, так как система команд у него сильно отличается от любых текстовых редакторов в MS DOS и Windows. Во времена 286-Х компьютеров было много аналогичных vi программ, которые являлись гибридом файлового менеджера и редактора, но, увы, все они отличались не слишком дружественным интерфейсом. В Linux vi-образный интерфейс пользователя дожил до наших дней, и понимать, как он работает, просто необходимо. В частности, знание команд редактора vi поможет при чтении справочных материалов в Linux (help, info, man). Конечно, полностью изучить все команды программы vi или Vim, которых более 100, достаточно сложно, но основные мы сейчас попробуем разобрать.

Команды редактора vi

Основное отличие программы vi от обычного редактора текста в том, что после запуска программа vi может находиться в трех режимах: ввода текста, командном режиме, режиме командной строки. Для более продвинутого текстового редактора Vim введен еще один режим — визуальный выбор текста. Начинающих пользователей редактор vi раздражает тем, что традиционные комбинации клавиш типа Ctrl+Q, Ctrl+C и Ctrl+X, которые обычно прекращают работу программы, не дают эффекта.
Тут следует знать, что для выхода из программы vi надо сначала перейти в командный режим, а потом ввести определенную команду. Для перехода в командный режим следует ввести с клавиатуры символ :. В этом случае курсор переместится в нижнюю строку, в которой появится приглашение: В этом режиме вводятся команды:
:q — выход из редактора без записи файла;
:q! — выход из редактора без записи файла, когда текст в редакторе изменялся;
: х — выход из редактора с записью файла;
:w — запись файла и возвращение в командный режим;
: е name — чтение файла;
:r name — добавить содержимое указанного файла к редактируемому;
: [command] — выполнить команду операционной системы;
:h — вызов справки.
Обратите внимание, что выше приведены сокращенные варианты команд. Например, q — это quit, a w — write. Можно употреблять любое сокращение полного имени команды.
ВНИМАНИЕ: Попытка завершения работы программы с помощью комбинаций клавиш Ctrl+Q, Ctrl+C и Ctrl+X к успеху не приведет!
В тех случаях, когда в результате случайного нажатия клавиш, программа vi перешла в непонятный режим, попробуйте дважды нажать клавишу Esc или комбинацию клавиш Ctrl+Q. Далее надо снова ввести символ: для перехода в командный режим.

Редактирование файла

Для освоения работы в редакторе vi попробуем создать и отредактировать файл. Для этого перейдем в командный режим, нажав клавишу: (английское двоеточие). Создадим новый файл, например myl, с помощью команды
:edit myl
Так как такого файла еще нет, то в нижней строке редактора появится сообщение «myl» [New File] Вначале файл myl пуст и на экране нет букв или цифр. Для того чтобы начать ввод текста в файл, существуют две команды:
i (от Insert — вставка) — текст добавляется перед текущим символом (курсор указывает на этот символ); а — текст добавляется после текущего символа. Для перемещения по тексту в режиме ввода текста нельзя использовать мышь и клавиши управления курсором, так как вместо сдвига курсора будут вводиться служебные символы. Для передвижения курсора служат специальные комбинации клавиш, о который можно узнать с помощью команды :help
Для более удобного перемещения указателя ввода лучше перейти в режим просмотра текста, что делается с помощью клавиши Esc. В этом режиме работают клавиши управления курсором, поэтому можно выбрать нужную позицию в тексте и нажатием клавиши i или а снова перейти в режим ввода текста. Удаление символа или группы символов еще более запутанно. В режиме просмотра текста допускается удалять текущий символ с помощью команды х. Для удаления всей строки используется команда dd.
В режиме ввода текста работает клавиша Backspace, но только в текущей строке. Причем стираемые символы продолжают оставаться на экране! Для сохранения файла на винчестере следует нажать на клавишу Esc, а потом ввести символ: для перехода в командный режим. Когда внизу экрана появится приглашение командного режима, необходимо ввести символ w, чтобы дать команду для записи файла. В том случае, если процесс записи файла закончится успехом, появится информация о записанном файле, а также статистика, например:
"my 1 " [New File] 4 lines. 57 characters written
ВНИМАНИЕ: Вводите команды только при включенной английской раскладке клавиатуры. Это касается и ввода символа ":".