Команды, выполняемые в командном режиме VI
Изучим группу команд режима vi: перемещения курсора, добавления текста, поиска (частично), изменения и смещения текста, удаления, замены букв. Команды vi не отображаются на экране, кроме команд поиска, начинающихся со знаков / ? перемещение курсора, управление экраном дисплея, добавление текста.
Многие команды редактора выполняются только при определенном положении курсора, и нужно уметь пользоваться клавишами управления курсором (клавиши со стрелками <- , -> и т.д.). Кроме клавиши со стрелками для перемещения курсора можно использовать клавиши: СТRL-Н - влево; СТRL-N - вниз; СТRL-Р - вверх; SРАСЕ - вправо.
Команды перемещения курсора:
h - на одну позицию влево;
l - на одну позицию вправо;
j - на одну позицию вниз;
k - на одну позицию вверх;
b - к первому символу предыдущего слова;
В - то же самое, что b, но игнорируются знаки пунктуации;
w - к первому символу следующего слова;
W - то же самое, что w, но игнорируются знаки пунктуации;
е - к последнему символу следующего слова;
Е - то же самое, что е, но игнорируются знаки пунктуации;
( - к началу текущего предложения (предложение считается законченным, если после него есть два пробела или пустая строка);
) - к концу текущего предложения;
{ - к началу текущего раздела (разделителем раздела является пустая строка);
} - к концу текущего раздела;
[ - к началу текущей секции;
] - к концу текущей секции;
^ - к первому отображаемому символу на текущей строке;
О - к началу текущей строки;
$ - к концу текущей строки;
Н - к началу экрана;
М - на середину экрана;
L - к концу экрана;
nG - к строке с номером n (на последнюю строку, если номера n нет); % - к символу парной скобки, если курсор находится под одной из них.
Команды управления экраном:
^U - смещение текста на одну строку вверх (СТRL-U);
^D - смещение текста на одну строку вниз (СТRL-D);
^В - смещение текста на один кадр назад (СТRL-В);
^F - смещение текста на один кадр вперед (СТRL-F).
Чтобы переместить текущую строку:
· в верхнюю часть экрана нужно ввести команду z и нажать клавишу Enter;
· в середину экрана z;
· в нижнюю часть экрана z- .
Для очистки экрана от сообщений нужно использовать команды СТRL-R и СТRL-L; тексты в рабочей области при этом сохраняются.
Команды изменения текста:
сw - изменение слова;
сW - то же самое, что и сw, но игнорируются знаки пунктуации;
сО - от начала текущей строки;
с$ - до конца текущей строки;
сс - изменение всей строки;
с( - от начала текущего предложения;
с) - до конца текущего предложения;
с{ - от начала текущего раздела;
с} - до конца текущего раздела.
Для внесения изменений в текст необходимо: переместить курсор в нужную позицию; ввести команду изменения; без пробела набрать новый текст; нажать клавишу ЕSС.
Во всех командах можно использовать множители n, например, для изменения пяти слов используется команда с5w.
Команды поиска начинаются косой чертой / (поиск вперед по тексту) или знаком ? (поиск назад); далее следует номер строки или ключевое слово. Команда заканчивается нажатием клавиши Enter.
Команды смещения текста:
<(или>( - к началу текущего предложения;
<)или>) - к концу текущего предложения;
<{или>{ - к началу текущего раздела;
<}или>} - к концу текущего раздела.
В командах смещения текста можно использовать множители, например, может использоваться команда 2>> (сдвиг вправо). Смещение устанавливается командой: set sw=m. По умолчанию m=8. После того как курсор подведен к требуемой строке, нужно набрать символы << или >>.
Удаление, замена строчных букв на прописные, и наоборот. Для удаления текста/фрагмента нужно переместить курсор в требуемую позицию и ввести команду удаления.
dw - до конца текущего слова;
dW - то же, что и dw, но игнорируются знаки пунктуации;
d^ - до 1-го видимого символа текущей строки;
dО - удаление начала строки;
d$ - удаление конца строки;
d( - до начала текущего предложения;
d) - до конца текущего предложения;
d{ - до начала текущего раздела;
d} - до конца текущего раздела;
dd - удаление всей строки;
dkw - удаление k слов;
dk)/dk} - удаление k предложений, k разделов;
kdd - удаление k строк.
Для удаления одиночного символа нужно подвести к нему курсор и набрать х (не d), а для удаления нескольких символов подряд набрать команду nх.
Для удаления текста от начала строки до определенного места и от определенного места до конца строки используются команды d^ и d$ соответственно.
Символ ~ используется для замены строчных букв на прописные, и наоборот. Замена 1-й буквы в последней строке текста:
· Введите символ ( (к началу текущего предложения).
· Наберите команду .~
· Восстановите текст командой u.
Определение текущей рабочей позиции в файле. После ввода пользователем в командном режиме СТRL-G в нижней части экрана появится статусная информация в соответствии с положением курсора в тексте, включающая: имя файла; сведения о проведенной ранее модификации; номер текущей строки; общее число строк; расстояние курсора от начала файла (в процентах).
Для окончания работы с редактором введите в командном режиме :wq (запись текста из рабочей области в файл и окончание редактирования) и нажмите клавишу Enter. На экране появится сообщение о том, что Вы вышли из редактора и находитесь в Shell:
:wq <Enter>
/home/student >