Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

man vi(1) и анонс на неделю


Служба Рассылок Subscribe.Ru

Выпуск 21

man vi(1)

Уважаемые подписчики! Я вас немного обманул. Страница по редактору vi выходит уже сегодня, 4 марта. А к 6 марта постараюсь успеть сделать man sed(1). Далее по плану - grep, причем это будет новый перевод, по Solaris 8. Среди старых страниц этой почему-то не оказалось... Но это уже где-то после 8 марта.

Что почитать

Почитать можно совет дня на сайте SunGuru. Вдруг совет окажется для вас полезным. Да и сам сайт тоже содержит много полезного, хотя по внешнему виду мне очень не нравится.


vi(1)

НАЗВАНИЕ

vi - экранно-ориентированный (визуальный) дисплейный редактор, основанный на ex

СИНТАКСИС

vi [-t тэг] [-r файл] [-l] [-L] [-wn] [-R] [-x] [-C]
    [-c команда] файл ...
view [-t тэг] [-r файл] [-l] [-L] [-wn] [-R] [-x] [-C]
[-c команда] файл ...
vedit [-t тэг] [-r файл] [-l] [-L] [-wn] [-R] [-x] [-C]
[-c команда] файл ...

ОПИСАНИЕ

vi (visual) - экранно-ориентированный текстовый редактор, основанный на базовом редакторе ex. Можно использовать командный режим ex из vi и наоборот. Команды экранного режима описаны на этой странице справочного руководства; установка опций (типа автоматической нумерации строк или автоматического перехода на следующую строку при нажатии Enter), а также все команды строкового редактора ex описаны на странице справочного руководства ex(1).

При работе в vi, изменения, которые вы делаете в файле, отображаются на экране терминала. Курсор на экране показывает текущую позицию в файле.

Эти утилиты обрабатывают и показывают символы дополнительного набора в соответствии с локалью, заданной в переменной среды LC_CTYPE (см. LANG в environ(5)), за исключением того, что символ x, задаваемый в командах r, f, F, m, t и T (см. раздел "СВОДКА КОМАНД" ниже) должен быть однобайтовым. Вся обработка, включая поиск шаблонов с использованием регулярных выражений, выполняется над символами, а не над столбцами или байтами. В командном режиме утилиты распознают аргументы, указывающие количество символов. Многостолбцовые символы при использовании всей ширины экрана. Для показа ширины отображаемых многостолбцовых символов, выдается такое же количество ASCII-символов >.

    Опции командной строки

Редактор vi воспринимает следующие опции командной строки (ранее описывавшиеся в документации опции рассмотрены в разделе "ПРИМЕЧАНИЯ" на этой странице справочного руководства):

-t тэг Редактирует файл, содержащий тэг, и устанавливает редактор в позицию, соответствующую определению тэга. Примечание: тэги в файле тэгов должны идти в порядке возрастания номеров строк.
-r файл Редактирует файл после сбоя редактора или системы. (Восстанавливает версию файла, которая была в буфере в момент возникновения сбоя.)
-l Устанавливает настройки для редактирования программ на языке LISP.
-L Выдает имена всех файлов, сохраненных в результате сбоя редактора или системы.
-wn Устанавливает стандартный размер окна в n строк. Эта опция полезна при использовании редактора по низкоскоростной линии.
-R Режим только для чтения; устанавливается флаг только для чтения, предотвращающий случайную перезапись файла.
-x Опция шифрования; при ее задании vi имитирует команду X редактора ex и предлагает пользователю ввести ключ. Этот ключ используется для шифрования и дешифрования текста с помощью алгоритма команды crypt. Команда X сама определяет, является ли прочитанный текст зашифрованным или нет. Временный файл буфера также шифруется с использованием преобразованной версии введенного пользователем ключа. См. crypt(1). См. также раздел "ПРИМЕЧАНИЯ" в конце данной страницы справочного руководства.
-C Опция шифрования; аналогичная опции -x, но vi имитирует команду C редактора ex. Команда C аналогична команде X, но любой прочитанный текст считается зашифрованным.
-c команда Начинает редактирование с выполнения указанной команды редактора (обычно, команды поиска или позиционирования).

Аргумент файл задает один или несколько файлов для редактирования.

Вызов view совпадает с vi, но при этом устанавливается флаг только для чтения.

Вызов vedit предназначен для начинающих. Он совпадает с vi, но при этом флаг report устанавливается равным 1, устанавливаются флаги showmode и novice, а флаг magic сбрасывается. Такие стандартные установки упрощают изучение vi.

    Режимы vi

Командный режим Обычный и первоначальный режим. После завершения других режимов происходит возврат в командный режим. Для отмены частично введенной команды используется клавиша ESC.
Режим ввода Устанавливается при вводе одной из следующих команд: a, A, i, I, o, O, c, C, s, S, R. Затем можно вводить произвольный текст. Режим ввода можно прекратить нормально, нажав клавишу ESC, или аварийно, с помощью прерывания.
Последняя строка Чтение ввода для :, /, ? или !; заканчивается нажатием клавиши Enter; символ прерывание отменяет выход из режима.

СВОДКА КОМАНД

В последующих описаниях CR означает нажатие клавиши Enter, а ESC - нажатие клавиши Esc.

    Примеры команд

стрелки клавиши со стрелками перемещают курсор
h, j, k, l то же, что и клавиши со стрелками
iтекстESC вставка текста
cwновоеESC замена слова на новое
easESC преобразование слово в множественное число (перейти в конец слова; добавить s; выйти из режима ввода)
x удаление символа
dw удаление слова
dd удаление строки
3dd удаление трех строк
u отмена предыдущего изменения
ZZ выход из vi с сохранением изменений
:q!CR выход, изменения игнорируются
/textCR поиск текста
^U, ^D прокрутка вверх или вниз
:cmdCR любая команда ex или ed

    Счетчики перед командами vi

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

номер строки/столбца z, G, |
сколько экранов прокрутить ^D, ^U
количество повторений большинство других команд

    Прерывание, отмена

ESC прекратить вставку или отменить неполную команду
DEL прерывание, выход из режима

    Манипулирование файлами

ZZ если файл изменен, записать и выйти; в противном случае, выйти
:wCR записать изменения
:w!CR форсированная запись, если права доступа изначально ее не допускают
:qCR выход
:q!CR выход, игнорируя изменения
:e имяCR редактировать файл имя
:e!CR повторить редактирование, игнорируя изменения
:e + имяCR редактировать, начиная с конца
:e +n имяCR редактировать, начиная со строки n
:e #CR редактировать другой файл
:e! #CR редактировать другой файл, игнорируя изменения
:w имяCR записать файл имя
:w! имяCR перезаписать файл имя
:shCR запустить командный интерпретатор, а затем вернуться
:!командаCR выполнить команду, а затем вернуться
:nCR редактировать следующий файл в списке аргументов
:n argsCR задать новый список аргументов
^G показать текущий файл и строку
:ta тэгCR поместить курсор на указанный тэг

Вообще, можно ввести любую команду ex или ed (такую как подстановка или глобальная команда), если перед ней указать двоеточие и завеpшить ввод нажатием Enter.

    Перемещение по файлу

^F на экран вперед
^B на экран назад
^D прокрутить вниз пол-экрана
^U прокрутить вверх пол-экрана
nG перейти в начало указанной строки (по умолчанию - последней), где n - номер строки
/шаблон следующая строка, соответствующая шаблону
?шаблон предыдущая строка, соответствующая шаблону
n повторить последнюю команду / или ? в прямом направлении
N повторить последнюю команду / или ? в обратном направлении
/шаблон/+n n-ная строка после шаблона
?шаблон?-n n-ная строка перед шаблоном
]] следующий раздел/функция
[[ предыдущий раздел/функция
( в начало предложения
) в конец предложения
{ в начало параграфа
} в конец параграфа
% на соответствующую скобку (, ), { или }

    Перерисовка экрана

^L очистить и перерисовать окно
^R очистить и перерисовать окно, если ^L соответствует клавише стрелка право
zCR перерисовать экран так, чтобы текущая строка была вверху окна
z- перерисовать экран так, чтобы текущая строка была внизу окна
z. перерисовать экран так, чтобы текущая строка была посредине окна
/шаблон/z-CR переместить строку, соответствующую шаблону, вниз окна
zn. использовать окно размером n строк
^E прокрутить окно вниз на 1 строку
^Y прокрутить окно вверх на 1 строку

    Пометка и возврат

`` переместить курсор на предыдущий контекст
'' переместить курсор на первый непробельный символ в строке
mx пометить текущую позицию однобайтовой буквой нижнего регистра x
`x переместить курсор на метку x
'x переместить курсор на первый непробельный символ в строке, помеченной буквой x

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

H на верхнюю строку экрана
L на последнюю строку экрана
M на среднюю строку экрана
+ на следующую строку, на первый непробельный символ
- на предыдущую строку, на первый непробельный символ
CR то же, что и +
v или j на следующую строку, в тот же столбец
^ или k на предыдущую строку, в тот же столбец

    Посимвольное перемещение

^ на первый непробельный символ
0 в начало строки
$ в конец строки
l или -> на символ вперед
h или <- на символ назад
^H то же, что и стрелка влево (клавиша Backspace)
пробел то же, что и стрелка вправо (пробел)
fx найти следующий однобайтовый символ x
Fx найти предыдущий однобайтовый символ x
tx перейти на символ перед следующим однобайтовым символом x
Tx перейти на символ после предыдущего однобайтового символа x
; повторить последнюю команду f, F, t или T
, выполнить команду, противоположную последней из команд f, F, t или T
n| перейти в столбец n
% перейти на соответствующую скобку

    Слова, предложения, абзацы

w на слово вперед
b на слово назад
e в конец слова
) на следующее предложение
} на следующий абзац
( на предыдущее предложение
{ на предыдущий абзац
W вперед на слово, отделенное пробелом
B назад на слово, отделенное пробелом
E в конец слова, отделенного пробелом

    Исправления в ходе вставки

^H стереть последний символ (забой - клавиша Backspace)
^W стереть последнее слово
erase символ стирания терминала, то же, что и ^H (забой)
kill символ удаления строки терминала, стирает введенную строку
\ маскирует символы стирания и удаления строки
ESC завершает ввод, возвращает в командный режим
DEL прерывание, прекращает режим ввода
^D обратно на один символ табуляции; переустановить левую границу автоматического выравнивания
^^D сиркумфлекс (^) после которого идет Ctrl-d (^D); обратно в начало строки; не переустанавливать левую границу автоматического выравнивания
0^D обратно в начало строки; переустановить левую границу выравнивания
^V замаскировать непечатный символ

vi использует ввод через Ctrl управляющих символов ASCII, а также восьмеричную запись для непечатных 8-битовых символов.

    Вставка и замена

a добавление после курсора
A добавление в конце строки
i вставка перед курсором
I вставка перед первым непробельным символом
o новая строка под текущей
O новая строка над текущей
rx заменяет один символ на однобайтовый символ x
RтекстESC заменяет символы на введенный текст
~ изменяет верхний регистр на нижний и наоборот

    Операторы

После операторов выполняется перемещение курсора, и они влияют на весь перемещаемый текст. Например, поскольку w перемещает курсор на слово вперед, dw удаляет слово, через которое перескакивает курсор. Удвоение оператора, например, dd, оказывает воздействие на целые строки.

d удаление
c изменение
y копирование строк в буфер
< сдвиг влево
> сдвиг вправо
! фильтрация строк через команду

    Другие операции

C изменить оставшуюся часть строки (c$)
D удалить оставшуюся часть строки (d$)
s подставить символы (cl)
S подставить строки (cc)
J соединить строки в одну
x удалить символы (dl)
X удалить символы перед курсором (dh)
Y скопировать строки в буфер (yy)

    Вырезание и вставка

Вставка вставляет последний удаленный или скопированный текст; однако, если используется именованный буфер (с использованием символа нижнего регистра ASCII a-z), вставляется текст из соответствующего буфера.
3yy скопировать 3 строки
3yl скопировать 3 символа
p вставить текст после курсора
P вставить текст перед курсором
"xp вставка из буфера x
"xy копирование в буфер x
"xd вырезание в буфер x

    Отмена, повторное выполнение, извлечение

u отменить последнее изменение
U восстановить текущую строку
. повторить последнее изменение
"dp восстановить d-тое последнее удаление

АВТОРЫ

vi и ex базируются на программном обеспечении, разработанном в Калифорнийском университете в Бэркли, отделение компьютерных наук, Department of Electrical Engineering and Computer Science.

ФАЙЛЫ

/var/preserve
стандартный каталог, в котором размещаются временные рабочие файлы; его можно изменить с помощью опции directory (см. описание команды set в ex(1))
/usr/share/lib/terminfo/?/*
скомпилированная база данных описаний терминалов
/usr/share/lib/.COREterm/?/*
подмножество скомпилированной базы данных описаний терминалов
/usr/lib/locale/локаль/LC_MESSAGES/uxed.abi
файл сообщений для текущего языка (См. LANG в environ(5).)

ССЫЛКИ

ctags(1), ed(1), edit(1), ex(1)

ПРИМЕЧАНИЯ

Две опции, хотя они по-прежнему поддерживаются, были заменены в документации на опции, соответствующие стандарту синтаксиса команд (Command Syntax Standard - см. intro(1)). Опция -r без аргументов заменена опцией -L, а опция +команда - на -c команда.

Опции шифрования и соответствующие команды поставляются в составе пакета утилит шифрования (Encryption Utilities), который доступен только в Соединенных Штатах.

Изменение записей в файле /usr/share/lib/terminfo/?/* или /usr/share/lib/.COREterm/?/* (например, изменение или удаление некоторых записей) может повлиять на программы типа vi, предполагающие наличие корректной записи. В частности, удаление "тупого" ("dumb") терминала может вызвать неожиданные проблемы.

Программные табуляции, задаваемые с помощью ^T, срабатывают только после автоматического выравнивания (autoindent).

Сдвиги влево и вправо на интеллектуальных терминалах не используют операций, задаваемых символами вставки или удаления терминала.

Copyright 1994 Novell, Inc.
Copyright 2000 В. Кравчук, OpenXS Initiative, перевод на русский язык


В следующем выпуске

man sed(1). Выпуск ожидается в среду, 6 марта.

С наилучшими пожеланиями,

  В.К.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное