6. РЕДАКТОРЫ EX И VI

Это комбинация двух непересекающихся возможностей: ex - строчный редактор (расширение базового редактора ed); vi - экранный редактор (может выполнять также все команды редак- тора ex).

6.1. Вызов vi

  1. $ vi myfile
    (одно или несколько имен файлов через пробелы для последовательного вызова их на редактирование).
    Если такого файла нет, то появится начало пустого файла; курсор - в начале первой строки.
  2. $ vi + myfile
    На экране - конец файла; курсор - в начале последней строки.
  3. $ vi +10 myfile
    На экране - часть файла и строка 10 - в центре экрана; курсор - в начале этой строки.

6.2. Выход из vi

  1. Если вы хотите запомнить изменения:
    Esc : w q ! Enter
    (нажать на клавишу Esc, ввести двоеточие - оно появится в нижней части экрана, ввести символы w, q и восклицательный знак, нажать на клавишу Enter).
  2. Если нет:
    Esc : q ! Enter

6.3. Позиционирование курсора

  1. клавиши <-,.,.,->;
  2. H - home, M - middle, L - last: начало, середина, конец экрана;
  3. w - вперед на начало следующего слова;
    e - на конец текущего слова;
    b - назад на начало слова.

6.4. Добавление, изменение и уничтожение текста

Подвести курсор к нужной позиции и нажать одну из ниже указанных клавиш.

Уничтожение

x - уничтожить текущую букву (где курсор), текст сдвигается на ее место.

Изменение (замена):

r - замена текущей буквы; rv - замена на v.
s - замена одной или нескольких букв текстом; например,
3stest - замена трех букв строкой 'test'.

Добавление:

i - вставить произвольный текст перед курсором. Конец ввода текста - клавиша Esc;
a - добавить произвольный текст после курсора. Конец ввода текста - клавиша Esc.

6.5. Операции над словами и строками

Уничтожение слова (слов):

подвести курсор к началу слова и нажать:

dw (delete word);
2dw - 2 слова;
ndw - n слов (n - число).

Изменение слова:

подвести курсор к началу слова и печатать:

cw < слово > Esc
2cw <два слова> Esc

и т.д.

Уничтожение части строки

d$ - от текущего символа до конца строки (текущий символ исчезает - то же делает D);
d^ - от начала строки до текущего символа (текущий символ остается).

Замена части строки (аналогична)

c$ (или C) <текст замены (может быть из нескольких строк)> Esc - замена конца строки (от курсора);
c^ <текст замены> Esc - замена начала строки (до курсора, не включая его). ;

Уничтожение целой строки

dd - уничтожение одной строки;
10dd - уничтожение 10 строк.

Замена целой строки

cc < текст > Esc - замена одной строки;
5cc < текст > Esc - замена пяти строк.

Создание новой строки

о - пустая строка после текущей строки;
O - пустая строка перед текущей строкой.

Ввод до и после текущей строки:

^i (или I) - до;
$a (или A) - после.

6.6. Перестановка части текста (cut-paste)

Часть текста сохраняется в буфере редактора, затем вставляется в другое место или в несколько мест (если вставка повторяется). Буфера могут быть именованными и один - анонимный. При выполнении команд ndd (где n - число) удаляемые n строк попадают на некоторое время в неименованный буфер.

Содержание буфера можно вставить:

p (put)после текущей строчки командой;
P (Put)перед текущей строчкой командой.

Следует помнить, что в анонимном буфере хранится последний уничтоженный текст, предыдущие - безвозвратно теряются! (команды с (change) - тоже уничтожают буфер).

6.7. Сохранение части текста для последующего использования (yank)

yw- сохранить слово (курсор - в начале слова);
yy (или Y)- сохранить одну строку ;
5yy (или 5Y)- сохранить 5 строк;
и т.п. (в анонимном буфере).

Именованные буфера имеют имена из одной буквы от a до z;
доступ к буферу - по имени имеет вид "x, где x - имя буфера.

a- Запись в буфер
"a3yy - сохранить 3 строки в буфере a (с начала буфера).

Вставка текста из анонимного буфера (как обычно):

p - после текущей строки;
P - перед ней.

Вставка текста из именованного буфера:

"ap - после текущей строки из буфера a;
"aP - перед ней из буфера a.

Добавление в буфер:

"aAdd - добавить к a уничтоженную по dd текущую строку.
Назад Содержание Вперед