Читаем Командная строка Linux. Полное руководство полностью

Теперь мы можем переключаться между файлами, но vi проводит политику, запрещающую переключаться между файлами, если в текущем файле имеются несохраненные изменения. Чтобы заставить vi переключиться между файлами с потерей всех несохраненных изменений, добавьте в команду восклицательный знак (!).

В дополнение к методам переключения между файлами, описанным выше, vim (и некоторые версии vi) предоставляет дополнительные ex-команды, упрощающие управление множеством файлов. Например, командой :buffers можно вывести список редактируемых файлов. В этом случае список появляется в нижней части экрана:

:buffers

1 %a "foo.txt" line 1

2 "ls-output.txt" line 0

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

Чтобы перейти к другому буферу (файлу), введите :buffer и номер искомого буфера. Например, переключиться с буфера 1, содержащего файл foo.txt, на буфер 2, содержащий файл ls-output.txt, можно командой:

:buffer 2

после выполнения этой команды на экране появится второй файл.

<p>Открытие дополнительных файлов для редактирования</p>

Также существует возможность добавлять файлы в текущий сеанс редактирования. Команда :e (сокращенно от edit — редактировать) с именем файла откроет дополнительный файл. Завершите текущий сеанс редактирования и вернитесь в командную строку.

Запустите vi снова, но на этот раз с единственным файлом:

[me@linuxbox ~]$ vi foo.txt

Чтобы добавить второй файл, введите:

:e ls-output.txt

и на экране должен появиться второй файл. Первый файл останется открытым в редакторе, в чем легко убедиться:

:buffers

1 # "foo.txt" line 1

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

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

ПРИМЕЧАНИЕ

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

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

Часто в процессе редактирования множества файлов бывает необходимо скопировать фрагмент текста из одного файла в другой. Это легко сделать с помощью обычных команд копирования и вставки, представленных выше. Посмотрим, как можно это осуществить. Сначала, в случае с использованием двух наших файлов, переключитесь на буфер 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

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

Кроме того, мы можем вставить файл целиком в другой файл. Для выполнения этого приема завершите сеанс 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

<p>Сохранение результатов работы</p>
Перейти на страницу:

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

Компьютерные сети. 6-е изд.
Компьютерные сети. 6-е изд.

Перед вами шестое издание самой авторитетной книги по современным сетевым технологиям, написанное признанным экспертом Эндрю Таненбаумом в соавторстве со специалистом компании Google Дэвидом Уэзероллом и профессором Чикагского университета Ником Фимстером. Первая версия этого классического труда появилась на свет в далеком 1980 году, и с тех пор каждое издание книги неизменно становилось бестселлером. В книге последовательно изложены основные концепции, определяющие современное состояние компьютерных сетей и тенденции их развития. Авторы подробно объясняют устройство и принципы работы аппаратного и программного обеспечения, рассматривают все аспекты и уровни организации сетей — от физического до прикладного. Изложение теоретических принципов дополняется яркими, показательными примерами функционирования интернета и компьютерных сетей различного типа. Большое внимание уделяется сетевой безопасности. Шестое издание полностью переработано с учетом изменений, произошедших в сфере сетевых технологий за последние годы, и, в частности, освещает такие технологии, как DOCSIS, 4G и 5G, беспроводные сети стандарта 802.11ax, 100-гигабитные сети Ethernet, интернет вещей, современные транспортные протоколы CUBIC TCP, QUIC и BBR, программно-конфигурируемые сети и многое другое.

Дэвид Уэзеролл , Ник Фимстер , Эндрю Таненбаум

Учебные пособия, самоучители