При первом вызове редактора vi можно сразу указать несколько редактируемых файлов, а затем перемещаться между ними, применяя команды редактора ex.
% vi файл1 файл2
По этой команде сначала редактируется первый файл, файл1. После окончания редактирования по команде :w редактора ex этот файл записывается (сохраняется), а по команде :n начинает редактироваться следующий файл, файл2. С помощью команды vi * вы можете задать редактирование всех файлов в каталоге.
При необходимости получить имя текущего файла задайте команду :f.
Команда :args выведет имена всех файлов, которые заданы в командной строке, и поместит в квадратные скобки имя текущего файла.
С помощью команды :e редактора ex можно также в любое время переключиться на другой файл, который в командной строке не указан. Если вам необходимо в редакторе viотредактировать еще один файл, сохраните сначала текущий файл, (:w), а затем наберите команду
:e имя_файла.
Редактор vi «помнит» имена двух файлов, текущего и альтернативного. На эти имена можно сослаться, воспользовавшись символами % (имя текущего файла) и # (имя альтернативного файла).
Символ # особенно полезен при использовании команды :e, поскольку позволяет легко переключаться между двумя файлами. Команда :e# – это всегда команда “переключиться на другой файл”. В некоторых системах команда [CTRL–^] редактора viявляется синонимом команды :e#, набирать эту клавиатурную комбинацию необходимо в командном режиме.
Если вы вначале не сохраните текущий файл, то редактор vi не позволит переключиться на другой файл с помощью команды :e или :n (если только вы не прикажите ему сделать это безоговорочно, добавив после команды восклицательный знак).
Команда :e! также достаточно полезна. Она отвергает результаты редактирования и возвращает пользователя к последней сохраненной версии текущего файла.
Символ %, в противоположность символу #, полезен главным образом при записи содержимого результатов редактирования в новый файл. Например, вторую версию файла letter можно сохранить посредством команды
:w %.new, не набирая команды
:w letter.new