Компания ALT Linux
Опубликован: 14.12.2004 | Доступ: свободный | Студентов: 12603 / 1647 | Оценка: 4.19 / 3.84 | Длительность: 18:18:00
ISBN: 978-5-9556-0019-1
Лекция 16:

Текстовые редакторы Vi и Vim

< Лекция 15 || Лекция 16: 12345 || Лекция 17 >

Настройки

Чтобы созданные макросы не пропадали, их можно вписать в файл настроек ex/vi. Имена многих настроечных файлов UNIX начинаются на "." (чтобы не мозолить пользователю глаза при каждом ls ), а заканчиваются на rc (от Resource Container – хранилище ресурсов). Поэтому настроечные файлы называют еще rc -файлами или профилями. Rc -файл для ex/vi логично называется .exrc. В нем записываются команды ex, которые vi выполняет при каждом запуске. Этот файл можно отредактировать вручную, а можно воспользоваться командой редактора :mkexrc имя_файла, которая создает его. Получившийся файл содержит все настройки и макросы, включая стандартные, поэтому рекомендуется взять оттуда только то, что создано своими руками, и перенести в .exrc.

В этом же файле хранятся и настройки. Настройка vi – это предопределенная переменная, значение которой можно менять. Переменные бывают строковые (задаются при помощи :set переменная=значение ) и логические (задаются при помощи :set переменная и :set noпеременная ). Список всех возможных настроек выводится командой :set all. Их немало. Самые популярные имеют даже второй – сокращенный – вариант написания; да и саму команду set можно сокращать до se. Вдобавок к уже известным autoindent ( ai ), shiftwidth ( sw ) и magic приведем несколько самых, на наш взгляд, примечательных: number ( nu ) – показывать номера строк; wrapmargin=ширина ( wm ) – переносить вставку текста в новую строку, если ширина текущей больше указанной ширины; showmatch ( sm ) – отмечать в процессе ввода парные скобки. Showmatch происходит так: при наборе закрывающей скобки в тексте курсор на долю секунды перескакивает на открывающую и возвращается обратно (позиция ввода, конечно, не меняется).

В nvi и vim добавлено еще несколько полезных настроек. Добавленные в разные версии vi настройки могут делать одно и то же, а называться, к сожалению, по-разному. Например, нестандартный для vi способ отображения длинных строк, при котором они не показываются целиком (как в vi ), а скрываются за правой границей экрана, в nvi называется leftright, а в vimnowrap (т. е. no +wrap ). Как минимум три полезные настройки у них общие. Первая, tildeop, управляет поведением команды "~". В ортодоксальном vi команда ~ меняет регистр буквы под курсором (превращает строчную букву в прописную и обратно), после чего перемещает курсор на одну позицию вперед. Это не очень-то согласуется с идеологией vi: команда действует только на текущий символ. Поэтому :set tildeop превращает "~" в гнездовую команду. В этом случае для изменения регистра всех букв слова достаточно команды ~w, а всей строки – ~~vim вы можете, не включая tildeop, воспользоваться гнездовой командой g~ ). Две другие настройки, showmode и ruler, предписывают редактору выводить в поле командной строки полезную информацию: текущий режим работы и номера строки и колонки под курсором. (В одной из версий vi настройка showmode называлась novice, "новичок"; выключить ее удалось не сразу: редактор упорно не понимал :set nonovice. Зато согласился на :set vice...)

Контекстные ссылки

В ex/vi реализован оригинальный способ превратить несколько текстовых файлов в единый гипертекст, где любое слово в тексте может указывать на любую точку другого (или того же самого) текста. Сами файлы при этом не изменяются, а ссылки хранятся в дополнительном внешнем файле по имени tags. Формат этого файла прост: первое поле в строке – ярлык (tag, слово-ссылка), второе – имя файла, а остаток – команда поиска vi, указывающая на контекст. Перейти по ссылке – закрыть текущий файл, подглядеть в tags, открыть файл, указанный ярлыком, и найти контекст – можно одной командой ex :tag ярлык. Если ярлык встречается в тексте, то можно подогнать курсор к его началу и нажать ^]. Для возврата в предыдущий контекст (туда, откуда была подана команда :tag ) используется сочетание ^T (Tag).

Такой механизм особенно удобен при работе со структурированными текстами: программами, файлами настроек, журналами и т. п. Например, имя функции или глобальной переменной может служить ссылкой на место, где ее описали. Утилита ctags создает файл tags для текстов программ на некоторых языках программирования.

Метки текста

Последнее свойство vi, о котором мы расскажем, – метки. Метка – это именованная закладка в тексте, видимая не глазом, но внутренним взором пользователя и редактором vi. Имя метки, как водится, – строчная латинская буква, а поставить ее можно командой m метка (например, ma ). С этого момента и до окончания редактирования (а в vim – и после) редактор будет помнить, что есть в файле место, помеченное a, на которое можно вернуться с помощью команды 'a. Можно перейти на начало строки, в которой была метка 'a. Наконец, специальная метка существует для того места в файле, где была выполнена последняя операция по изменению текста, перейти на это место можно с помощью двойной кавычки " или двух одинарных ''.

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

К редактору vi это утверждение применимо не просто полностью, а, скажем, процентов на 150. Если знать только минимальный набор команд редактирования – это худший из возможных текстовый редактор. Если не лениться заглядывать в руководство и экспериментировать, мало что может показаться удобнее. Впрочем, это уже дело вкуса и привычки.

< Лекция 15 || Лекция 16: 12345 || Лекция 17 >
Max Akt
Max Akt

Я прохожу курс "Операционная система Unix" и после тестов, вижу в отчете, что этот тест сдало еще 25 человек. Почему так мало, это ведь реально хороший и полезный урок. Здесь естьи теория и практичесские материалы. Сам курс написан хорошо, живым языком. И здесь я получил ответы на вопросы по Linux, которые боялся спросить. Наверное это из-за того, что в названии курса написано не Linux, а Unix и это многих отпугивает.

Andranik Avakian
Andranik Avakian

41. УК РФ и Комментарии (ст. 273)

М. 2000 г. Издательство: ALT Linux, Институт Логики

Уголовный Кодекс РФ и комментарии к нему?

По ссылке открывается сайт документации Linux, раздел Linux Installation and Getting Started