Приемы профессиональной работы в UNIX


Ctags - создание файла признаков исходного кода проекта - часть 3


set tags=/usr/russ/mytags

Впоследствии, когда вы обращаетесь к некоторому признаку, используется данный файл признаков. Другой способ - установить файл признаков после того, как вы вошли в редактор. Чтобы посмотреть, каким является ваш файл признаков по умолчанию, введите, находясь в vi, следующее:

:set tags

Эта команда печатает файл признаков, о котором она знает. Для изменения определенного в настоящий момент файла признаков, используйте синтаксис, который был в примере файла .exrc:

:set tags=/usr/russ/mytags

Теперь, когда редактор знает, в каком файле искать признаки, к которым вы обращаетесь, давайте рассмотрим, как обращаться к признаку (т.е. к имени функции). Первый способ - объявить его в командной строке при вызове редактора. Например:

$ vi -t tag

Если вы уже находитесь в редакторе vi, можете применить такую команду для поиска признака:

:ta tag

Двоеточие означает, что мы направляемся в ex, чтобы выполнить этот поиск. Мы просим ex найти указанную строку как признак, который размещается в текущем файле признаков. Когда этот признак найден в файле признаков, редактор vi редактирует файл с соответствующим именем, которое он берет из поля 2. Это аналогично команде ":e имя_файла". Когда новый файл внесен в буфер редактора, последнее поле файла признаков используется в качестве строки шаблона поиска. Синтаксис точно такой же, как если бы вы набирали его вручную. Курсор перемещается в позицию в файле, которая соответствует строке поиска, при этом вы попадаете на интересующую вас функцию.

ВЗАИМОСВЯЗЬ МЕЖДУ ex И vi

Несколько отклоняясь от темы, рассмотрим два файла: /bin/ ex и /bin/vi. Небольшое исследование обнаруживает, что на самом деле это один и тот же файл. Мы можем проверить это, посмотрев на их индексные описатели файлов. Введите такую команду:

$ ls -li `path ex vi`

Выход показывает, что два числа в первой колонке одинаковы.

510 -rwx--x--t 5 bin bin 121412 Sep 19 1985 /bin/ex 510 -rwx--x--t 5 bin bin 121412 Sep 19 1985 /bin/vi

Это число и есть индексный описатель файла (inode). Поскольку оба файла являются одним и тем же, вызов любого из них запускает один и тот же исполняемый модуль. Каким образом он знает, как вы его вызвали? Программа смотрит на строку argv[0] и видит, какое имя вы использовали для вызова файла. Затем редактор устанавливает свой интерфейс в соответствии с тем, как вы его вызвали.

Обратите внимание, что эта программа имеет пять связей. Как нам найти все другие имена, которыми можно вызвать vi и ex? Мы можем использовать команду системы UNIX ncheck. Эта команда воспринимает индексный описатель файла и печатает все файлы, имеющие такой описатель файла . Примеры таких команд:




Начало  Назад  Вперед



Книжный магазин