next up previous contents index
Next: Завершение работы с редактором Up: Экранный редактор vi Previous: Специальные команды   Contents   Index

Использование команд построчного редактора

Редактор vi имеет доступ ко многим командам построчного редактора ex. В этом подразделе обсуждаются некоторые наиболее часто используемые команды.

Команды редактора ex очень похожи на команды редактора ed.

Команды построчного редактора начинаются с символа : (двоеточие). После того, как вы введете двоеточие, курсор опускается в низ экрана и отображает двоеточие. Оставшаяся часть команды тоже появляется внизу экрана.

Когда вы входите в vi, то содержимое буфера заполняет ваш экран, делая невозможным выдачу команд для shell. Однако вам может это понадобиться. Например, вам необходимо будет получить информацию из другого файла для присоединения ее к текущему тексту. Вы можете получить эту информацию, запустив одну из команд shell, которая отображает текст файла на экране. Например, cat или pg. Однако процедура завершения работы с редактором и повторный вход в редактор потребуют времени и сил. Редактор vi предлагает вам два способа временного выхода из редактора для того, чтобы вы могли ввести команды shell (и даже редактировать другие файлы) не покидая сам редактор. Это команды :sh и :!.

Команда :! позволяет вам выйти из редактора и запустить команду shell одной командной строкой. Находясь в командном режиме редактора vi, введите :!. Эти символы будут напечатаны в низу экрана. Сразу же после символа ! введите команду shell. Shell запустит вашу команду, даст вам ответ и напечатает сообщение: Hit return to continue После того, как вы нажмете клавишу RETURN, vi обновит экран и курсор примет свое прежнее положение.

Команда редактора :sh позволяет вам делать то же самое, но ведет по другому себя на экране. Из командного режима редактора vi введите :sh и нажмите клавишу RETURN. Подсказка команды shell появится на следующей строке. Ведите ваши команды после подсказки так, будто бы вы работаете в нормальном режиме с shell. Когда вы будете готовы вернуться к редактору vi, введите ^d или exit. Экран обновит информация из вашего буфера и курсор вновь переместится на прежнее место.

При временном переходе к shell даже изменение каталогов не мешает возврату к буферу редактора vi при вводе ^d или exit.

Команда w позволяет вам создавать файл, копируя строки текста из файла, который вы в данный момент редактируете, в файл, который вы указали. Чтобы создать новый файл нужно указать строку или строки (номера строк) и имя нового файла в командной строке. Общий формат этой команды: :line_number[,line_number]w filename Например, чтобы записать третью строку буфера в файл three, введите: :3w three

При успешном создании нового файла, редактор vi напечатает следующую информацию: "three" [New file] 1 line, 20 characters Чтобы записать текущую строку в файл, укажите . (точку) как адрес строки: :.w junk

Создастся новый файл с именем junk. Он будет содержать только текущую строку буфера vi.

Вы можете записать часть буфера в новый файл, обозначив границы строк. Например, чтобы строки с 23-й по 37-ю записать в файл, введите следующую команду: :23,37w newfile

Вы можете переместить курсор к любой строке в буфере, если введете команду: :n где n - номер строки в буфере.

Одним из самых простых способов удаления всех строк от текущей строки и до конца буфера является использование команды d построчного редактора со специальнымим символами для текущей и последней строк: :.,$d где .(точка) - обозначает текущую строку; $ - обозначает последнюю строку.

Чтобы добавить текст из файла ниже указанной строки в буфер редактора, воспользуйтесь командой r. Например, чтобы перенести содержимое файла data в ваш текущий файл, поместите курсор на то место, где должен стоять текст и введите команду: :r data Вместо перемещения курсора вы можете указать номер строки. Например, чтобы вставить файл data после 56-й строки в буфере, введите: :56r data

:g/pattern/command
- для каждой строки, содержащей pattern выполнить команду command редактора ex. Построчный редактор напечатает све строки, содержащие pattern;
:s/pattern/new_words
- это команда замены. Построчный редактор отыскивает первое появление символов pattern в текущей строке и заменяет его на new_words;
:s/pattern/new_words/g
- редактор ex заменяет каждое появление pattern в текущей строке;
:g/helix/s//double helix/g
- эта команда осуществляет поиск слова helix. Каждое найденное слово helix заменяется на double helix. Ограничители после команды s позволяют не вводить слово helix каждый раз. Команда запоминает слово между ограничителями после команды g.



Alex Otwagin 2002-12-16