Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где взять краткую справку по vi (vim)? 
:(
    Опции темы
Chuck
Дата 14.11.2004, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: 3
Всего: 9



Система: Практически все *NIX
Вопрос: Где взять краткую справку по vi (vim)?

Ответ: Здесь smile

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, но эти возможности, в отличие от описанных в таблице, поддерживаются не на всех терминалах.
PM MAIL WWW GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1017 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.