16.2.2. Режим вставки

Вставка и замена текста выполняется в режиме вставки. Как уже упоминалось выше, чтобы перейти в этот режим, надо в командном режиме нажать клавишу i. После этого весь набираемый вами текст будет вставляться в текущий буфер. Нажатие на клавишуESCAPEвернёт вас назад в командный режим.

Замена текста осуществляется несколькими способами. В командном режиме нажатие на rпозволит вам заменить один символ под курсором. Просто введите новый символ и он заменит тот, что находится под курсором. Затем вы снова будет возвращены в назад в командный режим. Нажатие на клавишуRпозволит вам заменить любое количество символов. Чтобы выйти из этого режима и вернуться в командный режим, просто нажмитеESCAPE.

Существует ещё один способ для переключения между режимами вставки и замены. Нажатие на клавишу INSERTв командном режиме переведёт вас в режим вставки. При работе в этом режиме клавишаINSERTслужит переключателем между режимами вставки и замены. Нажатие на неё один раз позволит вам заменять текст. Ещё одно нажатие вернёт вас назад в режим вставки.

16.3. Открытие файлов

vi позволяет вам открывать файлы в командном режиме, а также сразу указывать открываемый файл при запуске из командной строки. Пример открытия файла /etc/lilo.conf:

:e /etc/lilo.conf

Если вы сделали изменения в текущем буфере и не сохранили их, vi предупредит вас об этом. Вы всё ещё можете открыть файл, не сохраняя текущий буфер, набрав команду :e!, а через пробел добавив имя файла. В общем случае предупреждения vi можно проигнорировать, добавив после команды восклицательный знак.

Если вам нужно повторно открыть текущий файл, вы можете набрать для этого команду e!. Это особенно полезно, если вы каким-то образом напортачили в файле и хотите повторно открыть его.

Некоторые клоны vi (например, vim) позволяют открывать несколько буферов одновременно. К примеру, чтобы открыть файл 09-vi.sgml из своего домашнего каталога одновременно с другим уже открытым файлом, надо выполнить следующую команду:

:split ~/09-vi.sgml

Новый файл будет показан в верхней половине экрана, а старый - в нижней половине. Существует много команд для управления разделением экрана и многие из них в чём-то похожи на команды Emacs. Лучшим источником поиска информации об этих командах является страница руководства для вашего клона vi. Обратите внимание, что многие клоны не поддерживают разделение экрана, поэтому вы можете вообще не увидеть поддержки этой функции.

16.4. Сохранение файлов

В vi существует несколько способов сохранения файлов. Если вам нужно сохранить содержимое текущего буфера в файл randomness, наберите следующую команду:

:w randomness

После того, как вы сохранили файл в первый раз, для повторного его сохранения наберите просто :w. Все изменения будут записаны в файл. После сохранения файла вы будете возвращены назад в командный режим. Если вам нужно сохранить файл и выйти из vi (очень распространённая ситуация), вам нужно набрать :wq. Эта команда говорит vi сохранить текущий файл и вернуться назад в командный процессор.

Может случиться так, что вам нужно сохранить файл, помеченный атрибутом “только для чтения”. Тогда вы можете сохранить его, добавив восклицательный знак после команды записи:

:w!

Однако вы всё-таки можете столкнуться с ситуацией, когда вы не сможете выполнить запись в файл (например, если вы пытаетесь отредактировать файл, владельцем которого является другой пользователь). В этом случае vi сообщит вам, что он не может сохранить файл. Если вам действительно нужно отредактировать файл, вам понадобится вернуться назад и отредактировать его под root'ом или (что есть более предпочтительным) под владельцем этого файла.

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