16.2. Режимы

viработает в различных режимах, которые используются для выполнения различных задач. При первом запускеviвы попадаете в командный режим. В нём вы можете выполнять различные команды для работы с текстом, перемещения по файлу, сохранения, выхода и изменения режимов. Редактирование текста выполняется в режиме вставки. Вы можете быстро переключаться между режимами с помощью разнообразных комбинаций клавиш, описанных ниже.

16.2.1. Командный режим

Сначала вы попадаете в командный режим. В этом режиме вы не можете вводить текст или редактировать уже существующий. Однако вы можете манипулировать текстом, выполнять поиск, выходить, сохранять, загружать новые файлы и др. Данную информацию следует рассматривать только как знакомство с командным режимом. Описания различных команд смотрите в Разд. 16.7.

Наверное самой часто используемой командой в командном режиме является переключение в режим вставки. Оно осуществляется нажатием на клавишу i. Курсор изменяет свой вид, а в нижней части экрана появляется надпись-- INSERT --(или-- ВСТАВКА --) (учтите, что это не происходит во всех клонахvi). Теперь все ваши нажатия на клавиатуре будут вставляться в текущий буфер и отображаться на экране. Чтобы вернуться назад в командный режим, нажмите клавишуESCAPE.

Командный режим также позволяет вам перемещаться по файлу. В некоторых системах вы можете использовать для этого клавиши со стрелками. В других системах вам может потребоваться использовать более традиционные клавиши: “hjkl”. Вот перечень этих клавиш и их использование для перемещения:

h

перемещение влево на один символ

j

перемещение вниз на один символ

k

перемещение вверх на один символ

l

перемещение вправо на один символ

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

Многие из команд, которые вы увидите в командном режиме, начинаются с двоеточия. Например, выход - это :q, как уже упоминалось выше. Двоеточие означает, что это команда, а “q” говоритviвыйти. Другие команды представляют собой необязательные числа, следующие после буквы. Эти команды не содержат в начале двоеточия и используются в основном для работы с текстом.

Например, удаление в файле одной строки выполняется нажатием dd. При этом будет удалена строка, в которой находится курсор. Выполнение команды4ddсообщитviудалить строку, в которой находится курсор и три строки после неё. В общем случае числа сообщаютvi, сколько раз нужно выполнить команду.

Вы можете комбинировать числа с клавишами перемещения, чтобы переместиться за один раз на нужное количество символов. Например, 10kвыполнит перемещение вверх на десять строк.

Командный режим можно также использовать для вырезания и вставки текста и считывания других файлов в текущий буфер. Копирование текста выполняется с помощью клавиши y(yозначает yank - резкий рывок). Копирование текущей строки выполняется командойyy, а перед ней может следовать число для копирования большего количества строк. Затем переместите курсор в нужное место и нажмитеp. Текст будет вставлен в строку сразу после текущей.

Вырезание текста выполняется командой dd, аpможно использовать для вставки вырезанного текста назад в файл. Прочитать текст из другого файла также является простой процедурой. Просто наберите:r, и через пробел добавьте имя файла, содержащего текст для вставки. Содержимое файла будет вставлено в текущий буфер в строку после курсора. Более сложные клоныviдаже обладают возможностью автозавершения имён файлов как в командном процессоре.

Последняя рассматриваемая здесь функция - поиск. Командный режим позволяет выполнять простой поиск, а также содержит более сложные команды поиска с заменой, использующие мощную версию регулярных выражений. Подробное изучение регулярных выражений выходит за рамки этой главы, а здесь будет рассмотрен только простой поиск.

Простой поиск выполняется нажатием на клавишу /, после чего вводится искомый вами текст.viбудет искать его от текущего положения курсора до конца файла, остановившись на первом найденном совпадении. Учтите, что неполные совпадения также вызовут остановку поиска. Например, поиск слова “the” приведёт к остановке на словах “then”, “therefore” и т.д. Это происходит вследствие того, что все эти слова содержат “the”.

После того, как viнайдёт первое совпадение, вы можете продолжить поиск до следующего совпадения, нажав на клавишу/и Enter. Вы также можете выполнять поиск по файлу в обратном направлении, заменив слэш на?. Например, поиск по файлу в обратном направлении слова “the” выполняется с помощью команды?the.

Соседние файлы в папке материалы к собеседованию