Командная строка Linux
Шрифт:
Режимы редактирования
Давайте снова запустим vi, но на этот раз укажем имя несуществующего файла. Именно так можно с помощью vi создать новый файл:
[me@linuxbox ~]$ rm -f foo.txt
[me@linuxbox ~]$ vi foo.txt
В случае успеха на экране должно появиться следующее:
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"foo.txt" [New File]
Начальные
Вторая важная вещь, которую нужно усвоить (после того, как вы научились выходить), — 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);
•
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
Вверх на одну страницу
число– SHIFT+G
К строке с указанным номером (например, команда 1G выполнит переход к первой строке в файле)
SHIFT+G (G)
К последней строке в файле
Почему для перемещения курсора были выбраны клавиши H, J, K и L? Потому что, когда был написан редактор vi, не все видеотерминалы имели кнопки со стрелками на клавиатуре. Таким образом, опытные пользователи, хорошо владеющие клавиатурой, могли управлять курсором, не отрывая пальцев от клавиш.
Многие команды в vi могут начинаться с числа, как команда G в табл. 12.1. Добавляя число в команду, можно указать, сколько раз она должна быть выполнена. Например, команда 5j переместит курсор на пять строк вниз.
Основы редактирования
Редактирование в основном заключается в нескольких простых операциях, таких как вставка текста, удаление текста и перемещение фрагментов текста с применением операций вырезания и вставки. Конечно же, vi поддерживает все эти операции своим неповторимым способом. vi поддерживает ограниченную форму отмены. Если нажать клавишу U в командном режиме, vi отменит последнее выполненное изменение. Это пригодится нам, когда мы будем пробовать некоторые простые команды редактирования.