· Запустите vi так, чтобы он читал данные из потока стандартного ввода, и введите несколько строк так, чтобы в начале строк были символы табуля- ции или пробелы.
· В введенном тексте проверьте отличия команд позиционирования ^ и 0.
· Перейдите в конец файла с помощью одной команды. Находится ли курсор в начале строки?
· Выполните команду: <Esc> :r! ps aux. Вы должны увидеть список процессов, сгенерированный командой ps aux. Вы можете редактировать этот текст?
· Перейдите на тридцатую строку текста. Проверьте ее номер, нажав
<Ctrl>+<G>.
· Позиционируйте текущую строку в центр экрана.
· Проверьте, работают ли команды H и L.
· Отличается ли действие команд z+ и z- от команд H и L?
· Выключите режим нумерации строк командой: <Esc> :set nonumber.
· Работают ли клавиши управления курсором и клавиши <PgUp> и <PgDn>?
Команды vi редактирования текста
Несмотря на то, что при правильных настройках терминала редактор vim по- зволяет перемещаться по тексту с помощью обычных клавиш управления курсором даже в режиме вставки текста, а клавиши <Del> и <Backspace> ве- дут себя ожидаемым образом, полагаться на привычные приемы редактиро- вания текста нельзя.
Во-первых, оригинальный vi (не vim) не поддерживает многие привычные средства редактирования, а во-вторых, даже современный редактор vim мо- жет не распознать тип терминала (например, из-за того, что переменная ок- ружения TERM установлена неверно). Такие эффекты довольно часто наблю- даются при работе в удаленном сеансе с помощью сетевых эмуляторов терминала. В таких случаях обычные клавиши редактирования работать не будут.
Команды для редактирования текста приведены в табл. 7.2.
Таблица 7.2. Команды редактирования текста
Команда
Действие
i
Переход в режим вставки в позиции курсора
I
Переход в режим вставки в начале строки
a
Добавление после текущего символа
A
Добавление в конец строки
o
Вставка строки после текущей строки с переходом в режим вставки
O
Вставка строки до текущей строки с переходом в режим вставки
r
Замена символа в текущей позиции
R
Переход в режим замещения
x
Удаление символа в позиции курсора
X
Удаление предыдущего символа
s
Замена текущего символа и переход в режим вставки
S сс
Обе эти команды заменяют текущую строку с переходом в режим вставки
cw cW
Замена слова до пробела, табуляции (обе команды) или знака препина- ния (cw)
dw dW
Удаление слова до пробела, табуляции (обе) или знака препинания (dw)
dd D
Удаление строки полностью (dd) или вправо от курсора (D)
Таблица 7.2 (окончание)
Команда
Действие
yy Y
Копирование сроки в буфер обмена
yw yW
Копирование слова до пробела, табуляции (обе) или знака препинания (dw)
p
Вставка из буфера после текущей позиции
P
Вставка из буфера до текущей позиции
~
Смена регистра текущего символа
J
Объединение строк
u
Отмена действия (от англ. undo)
Многие команды, перечисленные в таблице, допускают использование перед ними числовых квантификаторов. Они указывают, сколько раз должно быть выполнено требуемое действие.
Например, команда 10x удалит десять символов, начиная с текущей позиции. Команда 2Y запомнит в буфере обмена две строки, а команда 10p десять раз произведет их вставку (только в vim).