+7 (495) 668-0-866
Четверг, апреля 25, 2024

Полноэкранный редактор vi FREEBSD

Редактор vi- универсальный полноэкранный текстовый редактор в среде UNIX. Универсальность означает, что, во-первых, этот редактор есть во всех UNIX-подобных ОС и, во-вторых, этот редактор работает с практически любым видом терминала (ANSI, VT100, VT220, VT320, DEC, и т. д.).(База данных, содержащая описание известных системе терминалов находится в файле /etc/termcap.) Эта универсальность обернулась несколько непривычным (для пользователей DOS) пользовательским интерфейсом: для управления редактором используются лишь ``обычные'' кнопки клавиатуры (алфавитно-цифровые символы и знаки препинания).

Имеющиеся на многих типах терминалов функциональные клавиши практически не используются. Если клавиатура терминала имеет стрелочные клавиши, то они используются, но, как будет видно ниже, в ограниченном контексте.

1 Режимы работы редактора

Ввод текста

В этом режиме все, что набирается на клавиатуре отображается на экране терминала и запоминается в буфере редактора.

Нет возможности осуществлять операции редактирования текста, за исключением стирания последнего набранного символа (с помощью комбинации клавиш < Control-H> ).

Командный режим

В этом режиме символы клавиатуры выполняют специальные функции (перемещение курсора, стирание частей текста, и т. д.), то есть функции редактирования.

Набираемые команды НЕ ОТОБРАЖАЮТСЯ НА ЭКРАНЕ!

Режим командной строки

Режим командной строки позволяет производить более глобальные операции с текстом: записывать отредактированный текст в файл, считывать новый файл, выходить из vi, производить настройку редактора, поиск по шаблону, а также осуществлять некоторые функции редактирования.

Команды отображаются в нижней части экрана (в ``командной'' строке редактора).

2 Ввод текста

< Return> - создает пустую строку и переводит курсор в ее начало.

< Control-H> - уничтожает последний введенный символ (это действие не отображается на экране до выхода в командный режим).

< Control-[> или клавиша < Esc> - переводят редактор в командный режим.

В режиме ввода текста стрелочная клавиатура НЕ РАБОТАЕТ!

3 Команды

i- переход в режим набора методом вставки перед текущим символом

a- переход в режим набора методом вставки за текущим символом

R- переход в режим набора текста методом набивки.

Перемещение курсора


< Drawing or tabular insertion skipped...>


h,j,k,l- на один символ (одну строку), как показано стрелками

^или 0- в начало текущей строки

$- в конец текущей строки

w- на слово вправо

b- на слово влево

}- на параграф вперед (параграф - это блок текста, отделенный пустой строкой)

{- на параграф назад

[[- в начало текста

]]- в конец текста

Кнопки стрелочной клавиатуры также позволяют перемещаться по тексту.

Редактирование

dd- стирание текущей строки

dдвижение курсора- стирание от текущего положения курсора до нового, задаваемого символом перемещения курсора(Нажатие кнопок стрелочной клавиатуры НЕ ЯВЛЯЕТСЯ движением курсора и не может использоваться в комбинированных командах.)

J- слияние текущей строки со следующей

u- отмена последней команды

.- повтор последней команды

:- переход в режим командной строки

4 Командная строка

:qили :q!- выход из редактора без сохранения изменений

:x- выход из редактора с записью, если файл был модифицирован

:wили w filenameили w! filename- запись файла и возвращение в командный режим

:e filenameили:e! filename- загрузкафайлаfilename

:r filename- добавить содержимое указанного файла к редактируемому сразу за текущей строкой

:set nu- включить нумерацию строк

:set nonu- отключить нумерацию строк

:!command- выполнить команду UNIX не покидая редактора

:/word- выполнить поиск слова word в тексте

:/- повторить поиск слова word далее по тексту

5 Блоки, буферы, окна редактирования. Повторители

Повторители

Командам и движениям курсора можно давать повторители (числа), например

2w- передвинуть курсор на два слова вперед

10l- передвинуть курсор на десять символов вправо

d10l- стереть десять символов справа от курсора

2d10l- стереть двадцать символов справа от курсора

5J- слить пять последующих строк в одну

4.- повторить последнюю введенную команду четыре раза

Буферы vi

Редактор имеет три типа буферов: буфер стирания (0-9), неименованный буфер и именованные буферы (a-z).

В буферы стирания автоматически заносятся стираемые элементы. В буфере 0 хранится последний стертый элемент, в буфере 1 - предпоследний и т. д.

Занести в буфер:

yy- занести текущую строку в неименованный буфер

yдвижение курсора- занести указанный движением курсора блок текста в неименованный буфер.

"ayy- занести текущую строку в именованный буфер a

"Ayy- добавить текущую строку к содержимому именованного буфера a

"by10j- занести последующие 10 строк в именованный буфер b

Вставить из буфера:

p- вставить в текущую позицию содержимое неименованного буфера

"ap- вставить в текущую позицию содержимое именованного буфера a

"1p- вставить в текущую позицию содержимое буфера стирания 1

Многооконное редактирование

Редактировать сразу несколько файлов можно либо пользуясь командной редактора :e filename, либо указав все необходимые файлы в командной строке при вызове редактора (например: vi file1file2 file3). В последнем случае вы двигаетесь по списку файлов с помощью команд:

:n- переходим к следующему файлу в списке

:rew- возвращаемся к редактированию первого файла в списке

Именованные буферы сохраняют свое содержимое при переходе к редактированию другого файла.

  • Понедельник, 12 марта 2012

Оставить комментарий

Вы комментируете как Гость.

Эта форма защищена Aimy Captcha-Less Form Guard