Чтение онлайн

ЖАНРЫ

Командная строка Linux
Шрифт:

[me@linuxbox ~]$ ls -l /usr/bin > ls-output.txt

Теперь откройте в vi старый и новый файлы:

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

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

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

Строка 2

Строка 3

Строка 4

Строка 5

Переключение между файлами

Чтобы переключиться с одного файла на следующий, выполните ex-команду:

:n

Чтобы

вернуться обратно, в предыдущий файл, выполните:

:N

Теперь мы можем переключаться между файлами, но 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

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

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

Также существует возможность добавлять файлы в текущий сеанс редактирования. Команда :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 с номером буфера.

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

Часто в процессе редактирования множества файлов бывает необходимо скопировать фрагмент текста из одного файла в другой. Это легко сделать с помощью

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

Поделиться с друзьями: