лекции, учебные пособия / материалы к собеседованию / Описние vi(vim)
.doc
Краткое описание vi (vim).
Vi может находиться в режиме команд, в котором редактор находится сразу после запуска, или в режиме ввода текста.
Режим ввода текста:
a - добавить текст после курсора.
i - вставить текст перед курсором.
A - добавить текст в конец текущей строки.
o - начать новую строку под курсором.
O - начать новую строку над курсором.
Для переключения в режим команд достаточно нажать клавишу <escape>.
Вы можете выполнить команду ":set verbose showmode", тогда в строке статуса будет отображаться режим, в котором находится редактор vi.
Команды перемещения курсора:
Ctrl-H
[число]h - влево на число символов.
H - в начало экрана
M - в середину экрана
L - в конец экрана
[число]пробел или [число]l - направо на число символов.
[число]Ctrl-J или [число]Ctrl-N или [число]j - вниз на число строк.
[число]Ctrl-P или [число]k - наверх на число строк с сохранением позиции в строке
[число]Ctrl-U - "прокрутить" экран наверх на число строк
w - вперёд на начало следующего слова
e - вперёд на конец следующего слова
E - вперёд на конец ближайшей непробельной последовательности символов
b - назад на начало предыдущего слова
B - назад на начало ближайшей непробельной последовательности символов
$ - в конец строки
0 - в начало строки
^ - на первый непробельный символ строки
) - вперёд на одну фразу
( - назад на одну фразу
} - вперёд на один параграф
{ - назад на один параграф
[число]Ctrl-F - вперёд на число экранов.
[число]Ctrl-B - назад на число экранов.
[число]Ctrl-D - прокрутить вперёд на число строк.
[число]Ctrl-E - прокрутить вперёд на число строк сохранив, если возможно, положение курсора.
[число] + - переместить вперёд на заданное число строк на первый непробельный символ.
:[число] - переместить курсор в начало заданной строки
Команды удаления текста.
При удаление текста, он помещается во временный буфер, из которого потом текст можно извлечь.
D - удаление с текущей позиции до конца строки.
d$ - удаление до конца строки
d0 - удаление от начала строки
d} - удаление до конца параграфа
dw - удалить до конца слова
d% - удалить до парной скобки
dG - удалить до конца файла
dgg - удалить от начала файла до текущей позиции (Vim)
dd - удаление целой строки
x - удаление символа под курсором
X - удаление символа слева от курсора
Команды поиска.
/sometext - поиск "sometext".
?sometext - обратный поиск "sometext".
n - найти следующее совпадение.
Ctrl-A - найти далее в тексте слово, на котором стоит курсор.
Т.к. для поиска в качестве шаблона задаётся регулярное выражение, то необходимо экранировать следующие символы: [ ] . * ^ % \ / ? ~ $
Можно использовать команды ":set ignorecase" для включения регистронезависимого поиска и ":set noignorecase" для его выключения.
Команды замены. (Поиск с заменой.)
r - замена одного символа, на котором стоит курсор
C - замена текста с позиции курсора до конца строки
[число] c <символ перемещеня> - замена заданного региона
[range] s[ubstitute] [/pattern/replace/] [options] [count] [flags]
range - диапазон строк, в котором необходимо произвести замену. Можно использовать следующие обозначения: % - весь текст, . - текущая строка, число - номер строки, $ - последняя строка. Можно указать через запятую два параметра. Например "., $" - произвести замену начиная с текущей строки до конца текста. Если range на задан, замена производится в текущей строке.
count - количество замен, которые надо сделать. Если не задано, производится одна замена.
flags:
c - подтверждать каждую замену
g - заменить все найденные слова
i - игнорировать регистр
& - повторить последнюю команду замены для текущей строки
[range]! - заменить заданную строку результатом работы shell-команды
Команды сохранения файла.
:w - сохранить открытый файл с тем же именем, с которым он был открыт.
:w file_name- сохранить файл с именем "file_name".
Команды выхода из редактора.
:q - выйти их редактора. Если изменённый текст не был сохранён, vi откажется завершать работу.
:q! - выйти без сохранения изменений.
Команды редактора.
ZZ - выход из редактора с сохранением
y - копирование во временный буфер. второй символ перемещения курсора определяет сколько копировать. Например: y) - копировать до конца фразы.
Y - копировать всю строку
p - вставить содержимое временного буфера после курсора.
P - вставить содержимое временного буфера перед курсором.
u - отменить действие последней команды.
Ctrl-G - показать информацию о файле.
Ctrl-L или Ctrl-R - перерисовать экран.
[число]Ctrl-Y - "прокрутить" вниз экран на число строк, сохранив, по возможности, положение курсора в тексте.
Ctrl-Z - приостановить (suspend) выполнение редактора.
ESC - выполнить ex команду или отменить недонабранную команду или выйти из режима ввода текста.
Команды работы с буферами.
При удалении (команды d, x) или замене (команды r, c и т.п.) текста, удалённый текст помещается во временный буфер. Также поместить текст во временный буфер можно командой y. Команда p или P вставляет содержимое буфера в редактируемый документ.
Окна.
Ctrl-W - переключиться в следующее окно или на первое, если текущее окно последнее.
Ctrl-^ - переключиться в предыдущий файл.
Примеры:
Открываем командный интерпретатор и вводим “vi”.
По умолчанию редактор находится в режиме команд, поэтому чтобы приступить к вводу текста нам нужно перейти в режим ввода текста.
Нажмем клавишу “a” и введем текст, скажем “I try to learn how to use vi”?
Получаем:
I try to learn how to use vi
Нажмем “Esc” для выхода из режима ввода и “o” для ввода новой строки и введем “ This is second string”.
Аналогично введем 3 строку “This is third string”.
Получаем:
I try to learn how to use vi
This is second string
This is third string
Надеюсь, принцип работы с режимом ввода текста ясен.
Для перехода из режима ввода нажмем “Esc”, курсор находится в конце 3 строки. Нажмем “0” для перемещения курсора в начало строки. Далее удалим эту строку нажав “d$”. С этого момента 3 строка находится во временном буфере.
Получаем:
I try to learn how to use vi
This is second string
Командой “:2” переместим курсор в начало 2 строки и вставим текст из буфера нажатием “P”.
Получаем:
I try to learn how to use vi
This is third string This is second string
Заменим пробел между словом “string” и “This” на символ “X” для этого наведем на пробел курсор(любым способом) и нажмем “r” и затем “X”.
Получаем:
I try to learn how to use vi
This is third stringXThis is second string
Пришло время сохранить наш файл для этого введем: “:w first_use”.
Закроем редактор командой “:q”.
В примерах был рассмотрен минимум, который, надеюсь, позволит вам начать работу в редакторе vi.