1 # "foo.txt" line 1
2 %a "ls-output.txt" line 0
Нажмите ENTER или введите команду для продолжения
ПРИМЕЧАНИЕ
Файлы, открытые командой :e, недоступны для команд :n и :N. Чтобы переключиться на такие файлы, используйте команду :buffer с номером буфера.
Копирование содержимого из одного файла в другой
Часто в процессе редактирования множества файлов бывает необходимо скопировать фрагмент текста из одного файла в другой. Это легко сделать с помощью обычных команд копирования и вставки, представленных выше. Посмотрим, как можно это осуществить. Сначала, в случае с использованием двух наших файлов, переключитесь на буфер 1 (
: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 (сокращенно от
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 (Сохранить как). Например, если вы редактируете
:w foo1.txt
ПРИМЕЧАНИЕ
Эта команда сохранит файл с новым именем, но она не изменит имя текущего редактируемого файла. Если после этого продолжить редактирование, вы будете редактировать
13. Настройка приглашения к вводу
В этой главе мы рассмотрим, казалось бы, такую незначительную деталь, как приглашение к вводу командной оболочки (prompt). Кроме того, мы познакомимся с некоторыми внутренними особенностями работы командной оболочки и самой программы эмулятора терминала.
Как и многое в Linux, приглашение к вводу командной оболочки можно настраивать в очень широких пределах, и хотя мы принимаем это приглашение как данность, оно в действительности оказывается очень полезным средством для тех, кто умеет управлять им.
Устройство строки приглашения к вводу
По умолчанию строка приглашения к вводу имеет следующий вид:
[me@linuxbox ~]$