Руководство системного администратора
3.2 Работа с vi-редактором
Для работы в терминале с файлами используется текстовый vi-редактор, предназначенный для редактирования (составления и изменения). В любой момент при работе в редакторе vi вы находитесь в одном из трёх режимов редактора: командный режим (command mode), режим ввода (insert mode) и режим последней строки (last line mode).
- При запуске редактора vi вы оказываетесь в командном режиме. В этом режиме можно давать команды для редактирования файлов или перейти в другой режим. Например, вводя "x" в командном режиме мы удаляем символ, на который указывает курсор. Клавиши-стрелки перемещают курсор по редактируемому файлу. Команды, используемые в командном режиме, состоят из одного или двух символов.
- Основной ввод и редактирование текста осуществляется в режиме ввода. Переход в режим ввода из командного режима осуществляется командой "i" (от слова insert). Находясь в режиме ввода, можно вводить текст в то место, куда указывает курсор. Выход из режима ввода в командный режим осуществляется клавишей Esc.
- Режим последней строки -- это специальный режим, в котором редактору даются сложные команды. При вводе этих команд они отображаются в последней строке экрана (отсюда пошло название режима). Например, если ввести в командном режиме команду ":", то осуществится переход в режим последней строки, и можно будет вводить такие команды, как wq (записать файл и покинуть редактор vi) или q! (выйти из редактора vi без сохранения изменений). В режиме последней строки обычно вводятся команды, название которых состоит из нескольких символов. В этом режиме в последнюю строку вводится команда, после чего нажимается клавиша Enter, и команда исполняется.
3.2.1 Основные команды
- `vi filename - вызов редактора vi для редактирования файла filename;
- `a - добавить текст после курсора;
- `h - перемещает курсор на один символ влево;
- `j - перемещает курсор вниз на одну строку;
- `k - перемещает курсор вверх на одну строку;
- `l - перемещает курсор на один символ вправо;
- `x - удалить символ;