Введение в UNIX

Дегтярев Е.К.

Оглавление

6. Редакторы EX и VI

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

6.1. Вызов vi

В начало страницы

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

6.2. Выход из vi

В начало страницы


   а) Если вы хотите запомнить изменения:

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

    Esc : q ! Enter

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

   а) клавиши <-, , ,->;
   б) H - home,  M - middle, L - last: начало, середина, ко-
нец экрана;
   в) 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 текущую строку.


<<< Оглавление Страницы: 6  7 >>>