Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

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,zw 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