Приветствуется размещение своих статей на страницах нашего клуба

» » VI - экранный редактор
Информация к новости
  • Просмотров: 2 017
  • Автор: Altyn
  • Дата: 30 июля 2012 20:20
30 июля 2012 20:20

VI - экранный редактор


Автор: Altyn | Категория: Компьютеры | Просмотров: 2 017

Редактор vi является мощным средством для создания и редактирования файлов. Он предназначен для работы на видеотерминале и использует окна, посредством которых вы можете просматривать текст файла. Несколько простых команд позволяют вам сделать изменения в тексте, которые очень быстро отображаются на экране. Редактор может отобразить одну или несколько строк текста. Он позволяет вам передвигать курсор в любую точку на экране или в файле, создавать, изменять или удалять текст. Вы можете также использовать некоторые команды построчного редактора, такие как глобальные команды, которые позволяют вам изменять множество появлений некоторой строки символов, используя одну команду. Чтобы двигаться по файлу, вы можете прокручивать текст вперед или назад.

 

VI - экранный редактор

1. Введение

 VI - популярный экранный редактор UNIX, созданый на базе программы EX. Его оригинальная версия  была  написана Биллом Джоем для системы  UNIX семейства BSD. Название VI - это сокращение от  visual  editor      (визуальный или экранный редактор). Произносится оно как "ви-ай".

 

2. Синтаксис

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

  vi[options][filenames]

Вот несколько  наиболее типичных примеров запуска VI :

vifilename

Эта команда открывает заданый файл  filename, начиная с первой строки. Если файл не указывается, то редактор VI открывает пустой буфер. Чтобы открыть заданный файл, начиная со строки n, введите команду :

vi+n filename

  Команда

vi+ filename

открывает указанный файл и перемещает вас к его последней строке. Для открытия нужного файла с первой строки, содержащей заданный шаблон pattern, наберите:

vi+ /pattern filename

Если вы используете  VI для восстановления файлов после отказа системы, то следующая команда выведет на экран имена тех файлов, которые вы сможете восстановить:

vi-r

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

vi- r filename

 

3. Опции и аргументы

       Опции командной строки, доступные при вызове VI, аналогичны опциям редактора EX и перечисленны в таблице 1.

Таблица 1: Опции, используемые в командеVI

Опция

Описание

-ccommand

Начинает сеанс редактирования, выполняя заданные командыVI.

-C

Эквивалентна -x, но предполагает, что файл  filename зашифрован.

-l

Выполнение в режиме LISP.

-L

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

-rfilename

Восстанавливает файл filename после сбоя редактора или системы.

-R

Для предотвращения случайного редактирования при открытии файла задает режим "только чтение".

-ttag

Редактирует файл, содержащий признак tag.

-wn

Устанавливает размер окна в n.

-x

Запрашивает ключ для шифрования или дешифрации файла filename.

+

Запускает редактор VI, выводя вам последнюю строку файла.

+n

Запускает редактор VI, выводя n-ую строку файла.

+ /pattern

Открывает файл, начиная со строки с шаблоном pattern.

 

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

В отличие от некоторых других редакторов, которые вы можете встретить в UNIX, VI работает в двух разных режимах : командном и режиме ввода. Если VI находится в режиме ввода, то все, что вы набираете, включается в качестве текста в текущий буфер редактирования. В командном режиме VI все набираемые символы интерпретируются как команды. VI начинает сеанс редактирования в командном режиме, и вы можете:

  • Использовать команды редактирования VI.
  • Перемещать курсор в новую позицию буфера редактирования.
  • Вызывать оболочку UNIX, использовать утилиты или команды операционной системы.
  • Переключаться в режим вставки.
  • Сохранять текущую версию буфера редактирования в файле.

    В режим ввода вас переводят некоторые команды  VI, включая Append, Change, Insert и Replace.  Эти команды кратко описаны в Таблице 2.

Таблица 2: Команды переключения редактора VI режим ввода

Команда

Описание

a

Инициирует режим ввода и добавляет новый текст после текущей позиции.

A

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

c

Запускает режим ввода и начинает операцию изменения.

C

Начинает режим ввода и инициирует операцию изменения  в конце строки.

i

Инициирует режим ввода и позволяет вам вставить новую строку перед текущей позицией курсора.

I

Переходит в режим ввода и позволяет вставить текст в начале текущей строки.

o

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

O

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

R

Начинает ввод и затирает существующий текст, пока вы не нажмете клавишу Escape. При этом  VI возвращается в командный режим.

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

 

5. Перемещение в редакторе VI

В редакторе VI имеется много команд, позволяющих переместить курсор в новое место и применяемых для перехода в новую позицию в буфере редактирования. Эти команды перечислены в Таблице 3.

Таблица 3: Команды перемещения курсора VI

Команда

Описание

h
?
backspace

Перемещает курсор на одну позицию влево. Если перед командой указывается счетчик n, то курсор перемещается на n позиций.

j
?

Перемещает курсор на одну позицию вниз.

k
?

Перемещает курсор на одну позицию вверх.

l
?
пробел

Перемещает курсор на одну позицию вправо. Если перед командой указывается счетчик n, то курсор перемещается на n позиций

-

Перемещает курсор к началу предыдущей строки.

+
Return

Перемещает курсор к началу следующей строки.

О

Перемещает курсор к началу текущей строки.

$

Перемещает курсор к концу текущей строки.

^

Перемещает курсор к первому символу  текущей строки, отличному от пробела.

b

Перемещает курсор в обратном направлении к первому символу предыдущей строки. Если перед командой указывается счетчик n, то курсор перемещается на n слов.

e

Перемещает курсор в прямом направлении к последнему символу следующего слова.

w

Перемещает курсор в прямом направлении к первому символу следующего слова.Если перед командой указывается счетчик n, то курсор перемещается на n слов.

B

Эквивалент b, но игнорирует знаки препинания. Если перед командой указывается счетчик n, то курсор перемещается на n слов.

E

Эквивалент e, но игнорирует знаки препинания.

W

Эквивалент w, но игнорирует знаки препинания. Если перед командой указывается счетчик n, то курсор перемещается на n слов.

)

Перемещение курсора в прямом направлении к началу следующего предложения.

(

Перемещение курсора в обратном направлении к началу предыдущего предложения.

}

Перемещение курсора в прямом направлении к началу следующего параграфа.

{

Перемещение курсора в обратном направлении к началу предыдущего параграфа.

]]

Перемещение курсора в прямом направлении к границе  следующего раздела.

[[

Перемещение курсора в обратном направлении к границе предыдущего раздела.

H

Перемещение курсора к первой строке буфера редактирования.

L

Перемещение курсора к последней строке буфера редактирования.

M

Перемещение курсора к средней строке буфера редактирования.

Перемещение в буфере редактирования

Ctrl-B

Перемещает вас на один экран вверх.

Ctrl-D

Перемещает  на пол экрана вниз.

Ctrl-F

Перемещает  на экран вниз.

Ctrl-U

Перемещает  на пол экрана вверх.

Переход к строке с заданным номером

nG

Переход к строке с  номером n.

lG

Переход к первой строке буфера.

G

Переход к последней строке буфера.

 

6. Команды редактирования

В VI команды редактирования выглядят следующим образом :

[n] operator [m] item

где в качестве операции  operator могут задаваться : c (начать изменение), d (начать удаление), y (начать операцию копирования), а m и n   это коэффициенты, показывающие, сколько раз должна выполняться операция. Элемент item - это слово, предложение, параграф или раздел текста. В VI применяется много команд редактирования. Наиболее полезные из них перечислены в Таблице 4. Описанные в Таблице 4, команды редактирования, начинающиеся с двоеточия, фактически представляют собой команды EX, вызываемые из среды VI.

Таблица 4: Команды редактирования VI.

Команда

Описание

Внесение изменений

~

Изменяет регистр буквы.

cmove

Удаляет текст от текущей позиции курсора доmove, вставляя новый текст.

cc

Заменяет все содержимое строки, вставляя новый текст.

C

С помощью вставки заменяет текст от позиции курсора до конца строк.

ddp

Меняет местами две строки.

deep

Меняет местами два слова.

r

Заменяет один символ без перехода в режим ввода.

R

Выполняет замену, затирая прежнее содержимое.

s

Заменяет текущую строку путем вставки.

xp

Меняет местами два символа.

Отмена и повтор изменений

.

Повторяет последнюю команду, модифицируя буфер редактирования.

u

Отменяет последнюю команду, модифицируя буфер редактирования. Чтобы отменить отмену, используйте команду uu, которая возвращает строку в исходное состояние.

U

Восстанавливает текущую строку.

Ctrl-l

Обновляет экран.

Удаление текста

dmove

Удаляет текст от курсора до move.

dd

Удаляет текущую строку.

dG

Удаляет текст от текущей строки до конца буфера.

:line

Переходит к началу заданной строки line.

:lined

Удаляет заданную строку.

:line,lined

Удаляет заданный диапазон строк.

D

Удаляет текст от курсора до конца строки.

x

Удаляет символ в позиции курсора.

X

Удаляет символ слева от курсора.

Вставка текста

:liner filename

Вставляет содержимое файла filename после заданной строки line.

:rfilename

Вставляет содержимое файла filename после текущей строки.

:liner !command

Вставляет информацию, выводимую командой command после заданной строки.

:r !command

Вставляет информацию, выводимую командой command после текущей строки.

:r !lookpattern

Вставляет слова, которые начинаются с заданного шаблона pattern.

Копирование и перемещение строк

:linecotarget

Копирует содержимое заданной строки и вставляет его после строки target.

:line,linecotarget

Копирует  заданный диапазон строк, вставляя его после строки target.

:linemtarget

Перемещает  заданную строку, вставляя ее после target.

:line,linemtarget

Перемещает  заданный диапазон строк, вставляя его после строки target.

Выполнение команд оболочки

:!command

Приостанавливает VI и выполняет заданную команду command.

:!!

Приостанавливает VI и выполняет предыдущую команду оболочки(command).

:sh

Приостанавливает VI и   запускает командный процессор.

:!csh

Приостанавливает VI и   запускает командный процессор C.

Сохранение результатов работы

:w

Записывает данные в файл-оригинал, не выходя из VI.

:w filename

Записывает данные в файл filename.

:w> filename

Добавляет данные  к концу заданного файла  filename.

Выход из  VI

:q

Выход из  VI, не  сохраняя данные.

ZZ

Сохраняет данные и выходит из VI.

 

7. Поиск текстовых шаблонов

   Поиск заданных образцов символов - превосходный способ перемещения в буфере редактирования. Если вы наберете /, то VI выводит / в командной строке в нижней части экрана. Введите шаблон, нажмите Return, и VI выполнит поиск следующего вхождения шаблона. Нажав / и Return, вы повторите поиск. В Таблице 5 перечисленны команды, которые вы можете использовать при поиске и замене шаблона, а также тех символов, которые применяются в регулярных выражениях.


  Таблица 5: Команды поиска и замены редактора VI

Команда

Описание

Поиск шаблона

/expression

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

/

Повторяет поиск в прямом направлении того же регулярного выражения.

?expression

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

?

Повторяет поиск в обратном направлении того же регулярного выражения.

n

Повторяет последнюю команду / или ? (в том же направлении).

N

Повторяет последнюю команду / или ? (в обратном направлении).

Замена шаблона

:s/pattern/replace

В текущей строке заменяет символы pattern на replace.

:lines/pattern/replace

Заменяет символы pattern на replace в заданых строках lines.

:lines,lines/pattern/replace

Заменяет символы pattern на replace в указанном диапазоне строк.

:%s/pattern/replace

Выполняет замену pattern на replace во всех строках.

Специальные символы, используемые в регулярных выражениях

.

Совпадает с любым одинарным символом, кроме новой строки.

*

Совпадает с нулем или несколькими предшествующими символами.

^

Совпадает с началом строки.

$

Совпадает с концом строки.

\<

Совпадает с началом слова.

\>

Совпадает с концом слова.

[]

Совпадает с любым из символов, заключенных в скобки.

[^]

Совпадает с любым из символов, не заключенных в скобки.

\

Интерпретирует последующие символы литерально, отменяя специальный смысл слова.


 8. Локальные переменные VI

        Редактор VI   имеет приблизительно 40 локальных переменных, с помощью которых можно настраивать сеансы редактирования VI. Для просмотра их значений используется команда VI :set. Некоторые из этих переменных могут быть разрешены или запрещены, другие содержат строковые значения. Команды для установки этих переменных часто включают в файл .EXRC, находящийся в базовом каталоге. После запуска VI ищет в базовом каталоге файл  .EXRC и выполняет все содержащиеся в нем команды EX.




Метки к статье: vi редактор howto linux


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.

Архив новостей

Июль 2024 (1)
Март 2022 (1)
Декабрь 2021 (1)
Март 2021 (2)
Февраль 2021 (1)
Январь 2021 (2)
^