Редактирование нескольких файлов
Иногда бывает необходимо редактировать сразу несколько файлов. Например, может понадобиться внести изменения в файлы или скопировать содержимое из одного файла в другой. Редактор vi позволяет открыть несколько файлов, перечислив их в командной строке:
vi файл1 файл2 файл3...
Давайте закроем текущий сеанс работы vi и создадим новый файл для редактирования. Введите :wq, чтобы выйти из vi с сохранением изменений в тексте. Далее, создайте новый файл в домашнем каталоге, который мы будем использовать в наших экспериментах. Создайте файл, захватив в него вывод команды ls:
[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 — редактировать) с именем файла откроет дополнительный файл. Завершите текущий сеанс редактирования и вернитесь в командную строку.