Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Редактор vi


Автор: rni 1.10.2004, 11:13
В описаниях нигде не нашёл

Автор: dargaard 1.10.2004, 11:20
жми Esc
/техт - сверху вниз поиск
или ?техт -снизу вверх

:A,Bs/text1/text2/g замена техта со строки номер А до строки номер Б, техт1 заменяется на техт2


Автор: rni 1.10.2004, 12:02
Спасибо! smile.gif

Автор: Chuck 1.10.2004, 18:59
Кстати,
если найти тескт
Код
/text

то, найти далее
Код
n

Автор: rni 1.10.2004, 21:24
Цитата
то, найти далее

Код 
n

Cпасибо, упредил вопрос!

Автор: Chuck 1.10.2004, 21:47
А чтоб вообще вопросов не было ....
Редактор vi

vi (vedit) - экранно-ориентированный текстовый редактор. Он позволяет видеть одновременно целую страницу текста, перемещаться по нему курсором и непосредственно видеть вносимые изменения.

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

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

Код
vi [+строка] [ файл ]


В результате, указанный файл открывается в окне редактора. Если файл не указан, редактируется первоначально пустой буфер (т.е. новый файл, имя которого первоначально не задано).

Строку, на которой открывается файл, можно задавать следующим образом:
Код
+номер Строка с указанным номером
+ Последняя строка файла
+/re Строка, соответствующая указанному регулярному выражению re

Указанная строка будет находиться в центре экрана (если только файл не меньше, чем размер экрана) и в ее начале будет установлен курсор.
Режимы работы

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

Основные команды редактора vi представлены в табл. 22.

Таблица 22. Сводка основных команд редактора vi
Перемещение курсора
Код
H (Ctrl-h) курсор влево
J (Ctrl-n) курсор вниз
K (Ctrl-p) курсор вверх
L (Space) курсор право
Ctrl-u Переход вверх на половину экрана
Ctrl-d Переход вниз на половину экрана
Ctrl-f На страницу вперед (PageDn)
Ctrl-b На страницу назад (PageUp)
0 Переход в начало текущей строки
$ Переход в конец текущей строки
nG Переход на строку с номером n

Добавление текста
Код
a Добавить текст после курсора
A Добавить текст в конце текущей строки
i Вставить текст перед курсором
I Вставить текст в начале текущей строки
o Образовать новую строку под текущей
O Образовать новую строку над текущей

Изменение текста
Код
~ Изменить регистр символа над курсором
r Замена одного символа
R Замена символов

Удаление текста
Код
x Удаление символа
dd Удаление строки
Ndd Удаление N строк

Поиск и замена
Код
/str Поиск строки str вперед. str может быть регулярным выражением
?/str Поиск строки str назад
n Повторить поиск в том же направлении
N Повторить поиск в обратном направлении
:[range]s/old/new/[g] Заменить old на new в указанном диапазоне строк range. new и old могут быть регулярными выражениями, а range задается аналогично диапазону строк в редакторе ed. Суффикс g означает заменить во всем файле.

Копирование текста
Код
yy Копирование строки в целом
Nyy Копирование N строк
p Вставить из буфера после (курсора, текущей строки)
P Вставить из буфера перед (курсором, текущей строкой)

Выход из редактора
Код
:wq ENTER Запись и выход. Записать текст из буфера в файл и выйти из редактора.
:x ENTER Условная запись и выход. Записать текст из буфера только при наличии изменений и выйти из редактора.
:q! ENTER Закончить редактирование без записи изменений.

Другие команды
Код
! Выполнить одну команду интерпретатора
. Повторить последнюю команду
u Отменить действие последней команды
J Соединить строки
Ctrl-G Показать номер текущей строки

Курсор можно перемещать и клавишами перемещения курсора или клавишами PageUp, PageDn, но эти возможности, в отличие от описанных в таблице, поддерживаются не на всех терминалах.

Автор: dargaard 1.10.2004, 21:49
есть такая программа - vimtutor , довольно подробно расказывает о vi/vim-e

Автор: simanyay 1.10.2004, 21:49
Давай-ка Chuck запости это в ФАК.

P.S. Обязуюсь +нуть smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)