Командная строка Linux. Полное руководство (Шоттс) - страница 96

Действие

y

Выполнить замену

n

Пропустить найденное вхождение

a

Выполнить замену этого и всех последующих вхождений

q или ESC

Завершить операцию

l

Выполнить замену этого вхождения и завершить операцию. Сокращенно от last (последняя)

CTRL+E, CTRL+Y

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


Редактирование нескольких файлов


Иногда бывает необходимо редактировать сразу несколько файлов. Например, может понадобиться внести изменения в файлы или скопировать содержимое из одного файла в другой. Редактор 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 — редактировать) с именем файла откроет дополнительный файл. Завершите текущий сеанс редактирования и вернитесь в командную строку.