Операционная система Linux

Работа с файлами


Редактируя текст в Vi, пользователь работает не непосредственно с файлом, а с буфером. Если открывается уже существующий файл, Vi копирует его содержимое в буфер и отображает буфер на экране. Все изменения, которые производит пользователь, происходят именно в содержимом буфера – открытый файл пока остается неизменным. Если же Vi вызван без параметра, то создается пустой буфер, который пока не связан ни с каким файлом1).

Чтобы записать сделанные изменения в файл, используется команда ":wEnter" (чтобы ее отдать, нужно сначала перейти в командный режим). О том, что "w" – это сокращение от англ. "write", "записать", можно узнать, нажав Tab после ":w" – и Vim дополнит эту команду до "write". Подобным образом можно поступить с большинством команд в командной строке Vim – в этом редакторе очень последовательно соблюдается принцип аббревиативности. Мефодий выполнил "write" и получил такое информационное сообщение:

Это файл для примеров. Пример 1. Моя первая строка в vi! ~ ~ ~ ~ "textfile" 3L, 57C записано 3,24 Весь

Пример 9.4. Запись файла (html, txt)

Мефодий не указал, куда именно записать содержимое буфера, и по умолчанию оно было записано в тот файл, который он и открывал для редактирования: "textfile". Однако команде "write" можно указать любое имя файла в качестве параметра – и тогда содержимое буфера будет записано в этот файл, а если такого файла нет, то он будет создан. Параметр "write" обязательно потребуется, если текст в буфере еще не записан ни в каком файле.

Наиболее важна для новичка команда выхода из Vi – ":qEnter" (сокращение от "quit"). Пользователь, запустивший редактор в первый раз, нередко сталкивается с тем, что никак не может его закрыть: не работает ни один из привычных способов завершения программы, даже "^C" Vi обрабатывает по-своему*. И ":w", и ":q" – команды режима командной строки; в этот режим Vi переводится из командного режима с помощью ":", набираемого в начале команды.

Однако если в буфере есть изменения, которые еще не записаны ни в каком файле, то Vi откажется выполнять команду ":q", предложив сначала сохранить эти изменения. Если вы не хотите сохранять изменения, нужно настоять на своем желании выйти из Vi, добавив к команде выхода восклицательный знак: ":q!". В этом случае все несохраненные изменения будут выброшены. Восклицательный знак можно добавить в конце любой файловой команды в командной строке Vi – в этом случае Vi будет без возражений выполнять команды.

В Vi предпринято множество усилий для экономии сил и времени пользователя, командующего редактором. Поэтому можно одним разом записать текст и выйти из редактора: командой ":wq" или аналогичной командой ":x", просто нажав "ZZ" в командном режиме.



Содержание раздела