1 #   "foo.txt"                         line 1

2 %a  "ls-output.txt"                   line 0

Нажмите ENTER или введите команду для продолжения

ПРИМЕЧАНИЕ

Файлы, открытые командой :e, недоступны для команд :n и :N. Чтобы переключиться на такие файлы, используйте команду :buffer с номером буфера.

Копирование содержимого из одного файла в другой

Часто в процессе редактирования множества файлов бывает необходимо скопировать фрагмент текста из одного файла в другой. Это легко сделать с помощью обычных команд копирования и вставки, представленных выше. Посмотрим, как можно это осуществить. Сначала, в случае с использованием двух наших файлов, переключитесь на буфер 1 (foo.txt), выполнив команду:

:buffer 1

В результате на экране должно появиться следующее:

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

Строка 2

Строка 3

Строка 4

Строка 5

Далее переместите курсор на первую строку и введите yy, чтобы скопировать строку.

Переключитесь на второй буфер командой:

:buffer 2

Теперь на экране должен появиться некий список файлов (здесь показана только часть):

343700

-rwxr-xr-x 1 root root      31316 2011-12-05 08:58 [

-rwxr-xr-x 1 root root       8240 2011-12-09 13:39 411toppm

-rwxr-xr-x 1 root root     111276 2012-01-31 13:36 a2p

-rwxr-xr-x 1 root root      25368 2010-10-06 20:16 a52dec

-rwxr-xr-x 1 root root      11532 2011-05-04 17:43 aafire

-rwxr-xr-x 1 root root       7292 2011-05-04 17:43 aainfo

Переместите курсор на первую строку и вставьте строку, скопированную в предыдущем файле, введя команду p:

343700

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

-rwxr-xr-x 1 root root      31316 2011-12-05 08:58 [

-rwxr-xr-x 1 root root       8240 2011-12-09 13:39 411toppm

-rwxr-xr-x 1 root root     111276 2012-01-31 13:36 a2p

-rwxr-xr-x 1 root root      25368 2010-10-06 20:16 a52dec

-rwxr-xr-x 1 root root      11532 2011-05-04 17:43 aafire

-rwxr-xr-x 1 root root       7292 2011-05-04 17:43 aainfo

Вставка целого файла в другой файл

Кроме того, мы можем вставить файл целиком в другой файл. Для выполнения этого приема завершите сеанс vi и запустите новый, с одним файлом:

[me@linuxbox ~]$ vi ls-output.txt

На экране снова появится список файлов:

343700

-rwxr-xr-x 1 root root      31316 2011-12-05 08:58 [

-rwxr-xr-x 1 root root       8240 2011-12-09 13:39 411toppm

-rwxr-xr-x 1 root root     111276 2012-01-31 13:36 a2p

-rwxr-xr-x 1 root root      25368 2010-10-06 20:16 a52dec

-rwxr-xr-x 1 root root      11532 2011-05-04 17:43 aafire

-rwxr-xr-x 1 root root       7292 2011-05-04 17:43 aainfo

Переместите курсор в третью строку и введите следующую ex-команду:

:r foo.txt

Команда :r (сокращенно от read — читать) вставит указанный файл перед позицией курсора. Теперь экран должен выглядеть так:

343700

-rwxr-xr-x 1 root root      31316 2011-12-05 08:58 [

-rwxr-xr-x 1 root root       8240 2011-12-09 13:39 411toppm

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

Строка 2

Строка 3

Строка 4

Строка 5

-rwxr-xr-x 1 root root     111276 2012-01-31 13:36 a2p

-rwxr-xr-x 1 root root      25368 2010-10-06 20:16 a52dec

-rwxr-xr-x 1 root root      11532 2011-05-04 17:43 aafire

-rwxr-xr-x 1 root root       7292 2011-05-04 17:43 aainfo

Сохранение результатов работы

И здесь vi предлагает нам несколько способов сохранения отредактированных файлов. Мы уже знакомы с ex-командой :w, но существуют и другие команды, которые могут оказаться полезными.

В командном режиме можно ввести ZZ, чтобы сохранить текущий файл и выйти из vi. Аналогично, ex-команда :wq сочетает в себе команды :w и :q, первая из которых сохраняет файл, а вторая закрывает редактор.

В команде :w можно также указать имя файла. В этом случае она будет действовать как команда Save As (Сохранить как). Например, если вы редактируете foo.txt и хотите сохранить альтернативную версию с именем foo1.txt, введите следующую команду:

:w foo1.txt

ПРИМЕЧАНИЕ

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

13. Настройка приглашения к вводу

В этой главе мы рассмотрим, казалось бы, такую незначительную деталь, как приглашение к вводу командной оболочки (prompt). Кроме того, мы познакомимся с некоторыми внутренними особенностями работы командной оболочки и самой программы эмулятора терминала.

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

Устройство строки приглашения к вводу

По умолчанию строка приглашения к вводу имеет следующий вид:

[me@linuxbox ~]$

Перейти на страницу:

Похожие книги