On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru


Какие формы электронной отчетности.





 

Краткая справка по редактору VI

В процессе работы в системе вам необходимо будет создавать и редактировать текстовые файлы. Все эти действия можно выполнить с помощью экранного текстового редактора 'vi', котоpый pасположен в каталоге '/usr/bin/vi'

Для начала попробуем создать новый файл, например 'testvi':

$ vi testvi

Появится пустой экран с курсором в первой строке. Остальные строки (также пустые) будут начинаться с символа ~ (тильда). В самой последней строке будет сообщение примерно такого содержания:

testvi: new file: line 1.

В дальнейшем эта строка будет также использоваться и для ввода команд.

Немного отвлечемся от нашего файла и рассмотрим систему команд 'vi'. Большинство команд - это одиночные клавиши или комбинации клавиш, которые выполняют простые функции редактирования. 'vi' работает в двух основных режимах - в режиме "ввода текста" и в режиме "команд".

После запуска 'vi' оказыается в режиме "команд". Для перехода в режим "ввода текста" необходимо нажать на клавишу 'a' или 'i' (обращаем ваше внимание на регистр клавиш). После этого можно набирать текст. Каждую введенную строку следует, как это принято, завершать нажатием клавиши [Enter].

Выполните следующие действия. Нажмите клавишу 'a', перейдите в режим ввода текста и наберите 3 строки:

Line 1
Line 2
Line 3

Для перехода в командный режим нажмите на клавишу 'Esc'. Эта же клавиша используется для отмены не до конца набранной команды. Если вы неправильно ввели команду, редактор соощит вам об этом одиночным звуковым сигналом.

Допустим вам необходимо вставить в начало второй строки еще одно слово. Для этого в режиме команд перейдите куpсоpом на нужную строку, установить курсор в первую позицию и нажмите клавишу 'i'. После этого вставьте нужный текст, например слово 'Insert':

Line 1
Insert Line 2
Line 3

Для перехода в командный режим снова нажмите клавишу 'Esc', назначение которой надеемся вы уже поняли. Если вы по каким-то причинам запутались в каком режиме вы находитесь, нажмите два раза подряд 'Esc'. Редактор выдаст звуковой сигнал, сообщая таким образом, что вы находитесь в командном режиме.

Чтобы сделать редактор немного по разговорчивей, в командом режиме введите следующую команду в нижней строке:

:set verbose showmmode [Enter]

(В данном примере символ ':' означает признак ввода команды.)

После выполнения данной команды редактор будет вам сообщать о достижении конца строки и файла, переходе в командный режим и т.д.

Для перемещения курсора по тексту в командном режиме можно использовать клавиши управления курсором, а также следующие клавиши:

h или ПРОБЕЛКурсор на один символ слево.
l или BACKSPASEКурсор на один символ вправо.
jКурсор вниз на одну строку.
kКурсор вверх на одну строку.
^Переместить курсор на начало первого слова текущей строки.
$Переместить курсор в конец текущей строки.
|Переместить курсор в первую позицию текущей строки.
wПереместить курсор вперед на начало следующего cлова.
bПереместить курсор назад на начало текущего слова.
eПереместить курсор в конец слова.
(Переместить курсор в начало предложения (назад).
)Переместить курсор в конец предложения (вперед).
{Переместить курсор на начало параграфа (назад).
})Переместить курсор в конец параграфа (вперед). (Параграфы могут быть разделены пустыми строками).

Если перед нажатием на клавишу набрать какое-либо число, то курсор будет перемещен на соответствующее число позиций или строк.

'число'ПРОБЕЛПереместить курсор на указанное 'число' позиций вправо.
'число'BACKSPASEПереместить курсор на указанное 'число' позиций влево.

Также для пеpемещения по тексту можно использовать следующие команды:

'число'GПереместить курсор в указанную строку.
'число'|Переместить курсор в указанную позицию текущей строки.

В данном случае 'число' обначает количество повторов команд, которое необходимо выполнить.

Для поиска текста можно использовать команду /. После нее необходимо ввести строку для поиска и нажать . Например:

:/Line 5[Enter]

После завершения поиска курсор будет находится на первом символе строки.

Знак вопроса '?' работает также, только поиск в файле ведется назад (т.е. в обратном направлении)

Для перехода в режим ввода текста можно использовать следующие команды:

aВставить текст после курсора.
iВставьте текст перед курсором.
oВставить новую строку после текущей.
OВставить новую строку перед текущей.

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

В режиме команд можно выполнять редактирование набранного текста с помощью следующих команд.:

xУдалить текущий символ.
ddУдалить текущую строку.
'число'ddУдалить указанное 'число' строк начиная с текущей.
dwУдалить текущее слово.
'число'dwУдалить указанное 'число' слов начиная с текущего.
rЗаменить текущий символ на символ, набранный вслед за 'r'.
'число'sЗаменить указанное 'число' символов на такое же 'число' набранных вслед символов.

Вообще-то последний удаленный фрагмент текста не теряется, а сохраняется в специальном буфере и может быть оперативно (сразу после удаления) восстановлен и вставлен в любое место файла. Такую возможность можно использовать для переноса строк из одного места в другое. Например, вам необходимо поменять местами строки 3 и 2 нашего файла:

Для этого перейдите в командный режим ('Esc'), установите курсор во вторую строку, нажмите комбинацию 'dd'. Строка 'Line 2' будет удалена (помещена в буфер) и весь текст сдвинется к верху. В текущей строке появится строка 'Line 3':

Line 1
Line 3

Далее нажмите клавишу 'p'. После текущей строки ('Line 3') из буфера будет восстановлена и станет текущей строка 'Line 2':

Line 1
Line 3
Line 2

Соответственно для вставки удаленной строки перед текущей можно использовать команду 'P'.

Если вам необходимо сохранить в буфере строку без ее удаления используйте команду 'yy'. В дальнейшем эту строку можно скопировать в другое место файла. Для работы с буфером и для перемещения (копирования) строк можно использовать следующие команды:

ywСохранить слово в буфере.
'число'ywСохранить указанное 'число' слов в буфере.
yyСохранить текущую строку в буфере.
'число'yyСохранить указанное 'число' строк в буфере.
pСкопировать и поместить информацию из буфера после текущей строки.
PСкопировать и поместить информацию из буфера перед текущей строкой.

(После копирования информация из буфера не удаляется и ее можно использовать еще).

Существует еще одна интересная команда -. (точка). Она выполняет последнюю введенную команду. Например, если с помощью команды 'dd' была удалена строка, то нажатие на клавишу. приведет к удалению следующей строки. Если строка была помещена в окно редактирования из буфера по команде 'p', то нажатие на. приведет к помещению в окно редактирования еще одной копии строки.

При запуске 'vi' можно указать следующие параметры:

viРедактирует временный файл, которому при сохранении текста необходимо дать имя.
vi +45 fileПереходит на строку с номером 45.
vi +/word fileИщет первое вхождение слова "word"
$vi -c командаВыполнить команду [cmd] немедленно после начала сеанса редактирования.
$vi -rВосстановить указанные файлы, если пpоизошел аваpийный выход из pедактоpа или внезапное завеpшение системы. Если файлы не опpеделены, вывести список файлов, котоpые могут быть восстанволены.

Для выхода из редактора и сохранения текста используете следующие команды:

:wсохранить текст без выхода из редактора
:w имя_файлаСохранить текст в указанном файле.
:wq или :xСохранить текст и выйти из редактора.
:qВыйти из редактора. Если файл был модифицирован, вам будет предложено для выхода без сохранения использовать команду :q!
:q!Выйти из редактора без сохранения текста.

На самом деле 'vi' работает с копией вашего файла, поэтому в случае сбоя ваш исходный файл вряд ли пострадает.



Литература по Unix.