Next Previous Contents

## 10. Справочник по командам vi

## 10.1 Режимы Vi

Vi имеет 3 режима:

1. командный режим - Включается при запуске vi; для перехода в командный режим из других режимов (используйте ESC)
2. режим ввода - активируется специальными командами a i A I o O c C s S R и выключается при помощи ESC или в случае ошибки.
3. линейный режим - т.е. ожидание ввода команд после нажатия : , / , ? или ! (выключается с CR, обрывается с помощью CTRL-c). CTRL это клавиша control: CTRL-c означает "control c"

## 10.2 Команды Shell

1. TERM= code Помещает имя вашего терминала в переменную TERM
2. export TERM Передаёт значение переменной TERM (код терминала) любой программе в UNIX системе.
3. tput init Инициализирует терминал таким образом, чтобы он функционировал правильно с различными UNIX программами.
4. vi filename Запускает vi и загружает на редактирование указанный файл.
5. vi file1 file2 file3 Записывает в буфер vi три файла для последующего их редактирования. Эти файлы file1, file2, и file3.
6. view file Загружает файл file в режиме только-для-чтения.
7. vi -R file Аналогично преведущей команде.
8. vi -r file Восстанавливает file и последние изменения после краха системы.

## 10.3 Установка параметров

1. :set опция Активизирует опцию
2. :set опция=значение Назначает значение для опции
3. :set no опция Деактивирует опцию
4. :set Показывает опции установленные пользователем.
5. :set all Показывает все опции, как установленные пользователем, так и опции "по умолчанию".
6. :set опцию? Показывает значение опции

## 10.4 Используемые обозначения

1. CTRL-c CTRL Это клавиша control: CTRL-c означает "control c"
2. CR символ возврата каретки (клавиша ENTER)

## 10.5 Обрывание и отмена

- ESC Обрывает ввод неправильно или неполностью введенной команды
- CTRL-? CTRL это клавиша control : CTRL-? означает "control ?" удаляет или стирает прерывание.
- CTRL-l обновляет экран если CTRL-? замусорила его.

## 10.6 Манипуляции с файлами

- ZZ Сохраняет файл и выходит из vi
- :wq Сохраняет файл и выходит из vi
- :w Записывает файл
- :w! Записывает файл даже если он защищен от записи
- :wимя Записывает файл по именем имя
- :q Выходит из vi
- :q! Выходит из vi (независимо от того были ли внесены изменения)
- :e имя Загружает для редактирования файл под именем имя
- :e! Перезагрузить файл,стирая любые изменения которые были внесены
- :e + name Загружает для редактирования файл под именем имя, начиная с конца.
- :e + n Начинает редактирование со строки номер n
- :e # Редактирует альтернативный файл
- :n Редактирует следующий файл в списке файлов
- :args Показывает файлы в текущем списке файлов
- :rew Обновить текущий список файлов и начать редактировать первый файл.
- :n args Указать новый список файлов
- :f Показывает имя текущего файла и номер строки
- CTRL-G Синоним для :f
- :ta tag to tag file entry tag
- CTRL-] :ta, следующее слово - тэг

## 10.7 Перемещение

- Arrows Перемещают курсор
- CTRL-d Скроллирует полстраницы вниз
- CTRL-u Скроллирует полстраницы вверх
- CTRL-f Скроллирует целую страницу вниз
- CTRL-b Скроллирует целую страницу вверх
- :0 Переходит к началу файла
- :n Переходит к строке номер n
- :$ Переходит к концу файла
- 0 Переходит к началу строки
- ^ Переходит к первому символу, не пробелу
- $ Переходит к концу строки
- CR Переходит к началу следующей строки
- - Переходит к началу преведущей строки
- % Находит соответствующую скобку
- G Переходит к строке (по умолчанию - к последней строке)
- ]] Следующая секция/функция
- [[ Преведущая секция/функция

## 10.8 Позиционирование по строкам

- H Первая строка экрана
- L Последняя строка экрана
- M Средняя строка экрана
- + Следующая строка, первый символ не являющийся пробелом
- - Предшествующая строка, первый символ не являющийся пробелом
- CR возврат, тоже что и +
- j Следующая строка, таже колонка
- k Преведущая строка, таже колонка

## 10.9 Позиционирование по символам

- 0 Начало строки
- $ Конец строки
- h Вперед
- l Назад
- SPACE Тоже что и l
- fx Найти x вперед по тексту
- Fx Найти x назад по тексту
- ; Повторить последнюю операцию f F
- , Инверсно ;
- | К специфицированной колонке
- % Найти соответствующий символ { или }

## 10.10 Слова, предложения параграфы

- w Слово вперед
- b Слово назад
- e Конец слова
- ) К следующему предложению
- ( К преведущему предложению
- } К следующему параграфу
- { К преведущему параграфу
- W К концу большого слова, включая пробел на его конце
- B Назад на большое слово W
- E К концу большого слова W

## 10.11 Установка отметок и возврат к ним

- `` (дважды нажмите клавишу `) К преведущей отметки
- '' (press twice the single-quote ` key) Последняя отметка, первый не пробел в строке
- mx Установка отметки с именем x
- `x (обратная кавычка и x) перейти к отметке x
- 'x Перейти к отметке x, на первый не пробел в строке

## 10.12 Коррекция во время ввода текста

- CTRL-h Удаляет последний символ
- CTRL-w Удаляет последнее слово
- erase Нажмите DELETE, тоже что и CTRL-h
- kill Ваша клавиша kill, стирает ввод сделанный на этой строке
- \ Экранирует CTRL-h, DELETE и kill
- ESC Окончить ввод, назад в командный режим
- CTRL-? Прервать, терминирует ввод
- CTRL-d Обратная табуляции на autoindent пробелов
- CTRL-v Экранирует непечатный символ

## 10.13 Обновления экрана

- CTRL-l Очистить и перерисовать
- CTRL-r перенабор, убирает @строки
- z-CR перерисовать, текущую строку на вершине окна
- z- перерисовать, текущую строку на краю окна
- z. перерисовать, текущую строку в центре экрана
- /pat/z- сгладить край строки
- tn Использовать экран с строкой n
- CTRL-e Скроллировать окно вниз на 1 строку
- CTRL-y Скроллировать окно вверх на 1 строку

## 10.14 Удаление

- x Удаляет символ под курсором
- X Удаляет символ перед курсором
- D Удаляет до конца строки
- d^ Удаляет до начала строки
- dd Удаляет текущую строку
- ndd Удаляет n строк начиная с текущей
- dnw Удаляет n слов начиная с положения курсора

## 10.15 Вставка, замена

- i Входит в режим вставки (с вставкой перед курсором)
- I Входит в режим вставки (перед первым не пробелом)
- a Входит в режим вставки (вставка после курсора)
- A Входит режим вставки (вставка после конца текущей строки)
- o Создать новую строку после текущей и перейти в режим вставки
- O Создает новую строку перед текущей и входит в режим вставки
- r Заменить символ под курсором не переходя в режим вставки
- R Войти в режим замены
- C shift-c. Изменить остаток строки
- D shift-d. Удалить остаток строки
- s Заменить символы
- S Заменить строки
- J Объединить строки

## 10.16 Копирование и вставка

"Буфер копирования" заполняется КАЖДОЙ командой удаления,или с помощью Y и yy.

- Y Копирует текущую строку в буфер
- nyy Копирует n строк начиная с текущей в буфер копирования
- p Вставляет содержимое буфера копирования после курсора (или перед текущей строкой)
- P Вставляет содержимое буфера обмена перед курсором (или перед текущей строкой)
- "xp Вставить из буфера x
- "xy Скопировать в буфер x
- "xd Удалить в буфер x

## 10.17 Операции (для применения к строкам вводятся дважды)

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

## 10.18 Поиск и замена

- /text Искать вперед образец text
- ?text Искать назад образец text
- n Повторить последний поиск в том же направлении
- N Повторить последний поиск в обратном направлении
- / Повторить последний поиск вперед
- ? Повторить последний поиск назад
- [ addr ] s/from/to/ [ g ] Искать from и заменить его на to в текущей строке, или в указанном диапазоне addr (два номера строки разделенные командой; 1,$ весь файл). Заменить одно совпадение на строку либо все совпадения если g указано. Например, :3,20s/someword/anotherword/g. Заменит "someword" на "anotherword" начиная от строки номер 3 до строки 20. 'g' - означает замену всех совпадений.

## 10.19 Общие

- :sh Вызывает shell (выход по CTRL-d)
- :!команда Вызывает shell для исполнения команды
- :set number Включает нумерацию строк
- :set nonumber Выключает нумерацию строк

## 10.20 Команды линейного редактора

- : Говорит vi что следующая введенная команда является командой линейного редактора.
- :sh Временный выход в shell чтобы исполнить какие либо команды не покидая vi.
- CTRL-d Выходит из shell запущенного преведущей командой в vi.
- :n Переходит к строке номер nth текущего буфера.
- :x,z w filename Записывает строки от x до z в новый файл называемый filename.
- :$ Передвигает курсор к началу последней строки буфера.
- :.,$d Удаляет все строки от текущей до последней.
- :r filename Вставляет содержимое файла filename после текущей строки буфера.
- :s/text/new_text/ Заменяет первый встреченный образец text на текущей строке на new_text
- :s/text/new_text/g Заменяет все образцы text на текущей строке на new_text
- :g/text/s//new_text/g Заменяет все встреченный в буфере образцы text на new_text.

## 10.21 Другие команды

- u Отменить последнее изменение
- U Восстановить текущую строку
- ~ Изменить регистр
- J Соединить текущую строку со следующей
- . Повторить последнюю команду изменения текста
- CTRL-g Показать имя файла и номер строки

Next Previous Contents