Командная строка 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