Один из способов модификации текста представляют команды удаления и команды ввода текста. Другой способ, с помощью которого вы можете изменить текст, это задать команду, позволяющую одновременно удалять и создавать текст. В редакторе vi существуют 3 основные команды изменения текста: r, s и c.
7.15.1. Замена текста
rx - Заменить текущий символ (символ, на который показывает курсор) на x. Эта команда не устанавливает режим ввода текста и, следовательно, нет необходимости нажимать после нее клавишу ESCAPE. nrx - Заменить n символов на x. После этой команды также не надо нажимать клавишу ESCAPE. R - Заменяет только те символы, которые введены в режиме ESCAPE. Если будет достигнут конец строки, то эта команда добавит ввод как новый текст.
Например, вы хотите заменить слово acts на ants в следующем предложении:
The circus has many acts.
Поместите курсор под буквой c в слове acts и введите команду:
rn
Предложение будет иметь вид:
The circus has many ants.
Чтобы заменить слово many на 7777, поместите курсор под буквой m в слове many и введите команду:
4r7
Команда r заменит слово many на четыре цифры 7:
The circus has 7777 ants.
7.15.2. Подстановка текста
Команда подстановки текста заменяет символы, но затем позволяет вам продолжать ввод текста с того места, где вы нажали клавишу ESCAPE.
s - удалить символ, на который указывает курсор и добавить текст. После окончания ввода текста нажмите клавишу ESCAPE; ns - удалить n символов и добавить текст. После окончания ввода текста нажмите клавишу ESCAPE; S - заменить все символы в строке.
Когда вы вводите команду s, последний символ в строке символов, который будет заменен, переписывается со знаком $. Символ не стирается с экрана, пока вы не введете на его место новый символ, или не нажмете клавишу ESCAPE.
7.15.3. Изменение текста
Команда подстановки заменяет символы. Команда изменения заменяет объект текста и затем продолжает добавлять текст с этого места до тех пор, пока вы не нажмете клавишу ESCAPE.
Команда изменения может содержать аргумент text_object. Вы можете заменить символ, слово и так далее на новый текст:
ncx - заменить n-ый объект текста типа x (предложение, параграф); cw - заменить слово или оставшиеся символы в слове на новый текст. Редактор vi печатает знак $, чтобы показать последний символ, который будет заменен; ncw - заменить n слов; cc - заменить все символы в строке; ncc - заменить все символы в текущей строке и n верхних строк; C - заменить оставшиеся символы в строке от курсора до конца строки; dfn nC заменить оставшиеся символы, начиная от курсора в текущей строке и во всех n верхних строках.
Команда "c" использует знак $, чтобы отметить последний символ, который должен быть замещен. После того как выполнилась команда изменения, вы находитесь в режиме ввода текста и можете вводить любой текст. Тескт будет храниться в буфере, пока вы не нажмете клавишу ESCAPE.
В табл. 13 приведены команды изменения текста.
Таблица 13 Команды изменения текста
Команда
Функция
r
Заменить текущий символ
R
Заменить те символы, которые введены в режиме ESCAPE
s
Удалить символ, под которым расположен курсор и добавить текст. Для окончания режима ввода нажмите клавишу ESCAPE
S
Заменить все символы в строке
cc
Заменить все символы в строке
ncx
Заменить n объектов текста типа x (предложение, параграф)
cw
Заменить слово или оставшиеся символы в слове на новый текст
C
Заменить оставшиеся символы в строке от курсора до конца строки