У меня проблемы с ctags

Я хочу использовать ctags в своем проекте. И все идет хорошо во время установки.

./configure

make
sudo make install

затем распакуйте Taglist. Получить файл тега в моем исходном пути

ctag -R

добавить путь тегов в .vimrc.

set tags=/home/lee/program/apue;
set autochdir

затем начните мой файл c.

vim main.c

но когда я нажимаю ctrl +], я получаю «файл тега не найден». в чем проблема?


person znlyj    schedule 26.11.2011    source источник


Ответы (2)


Действительно ли файл /home/lee/program/apue содержит ваши теги (то есть это выходной файл ctags)?

Вы должны указать переменную tags в вашем vimrc на файл тегов, который генерирует ctags. По умолчанию это файл с именем tags в каталоге, где вы запускаете команду ctags.

person Martijn    schedule 26.11.2011
comment
Затем вы должны поместить set tags=/home/lee/program/apue/tags в .vimrc - person Martijn; 26.11.2011
comment
Что, если вы наберете ctags -R .? У вас есть код в каталоге? - person romainl; 26.11.2011
comment
В каталоге есть несколько папок. Я снова пытаюсь использовать ctags -R. Может возникнуть конфликт с cscope на моем компьютере? - person znlyj; 26.11.2011
comment
Я не вижу причин, по которым cscope и ctags будут конфликтовать. Какую версию ctags вы используете? Какая версия Вима? На какой ОС? Не могли бы вы опубликовать содержимое main.c? - person romainl; 26.11.2011
comment
vim 7.2.330, Ubunru 10.04, ctags 5.8 - person znlyj; 27.11.2011
comment
Наши настройки почти идентичны, за исключением версии Ubuntu (здесь 10.10). $ ctags -R . (или :!ctags -R . из Vim) прекрасно работает в любом каталоге, содержащем исходные файлы (у меня есть Python, PHP и JavaScript, но он поддерживает десятки языков). Я получаю файл tags в корне каталога, который затем используется Vim для навигации по коду. Я понятия не имею, почему вы не получаете файл tags, эта программа очень надежна. - person romainl; 27.11.2011

Предположим, что текущий каталог заполнен кучей файлов, правильная команда для создания файла tags$ ctags -R .. Я предполагаю, что ctag -R - это опечатка.

Есть ли файл tags в /home/lee/program/apue? Почему в конце ;?

Судя по вашему вопросу, вы начинаете кодировать новый файл ПОСЛЕ создания файла tags в пустом каталоге. Поскольку кода нет, в файле tags ничего нет.

person romainl    schedule 26.11.2011
comment
; означает, что если теги не найдены в текущем каталоге, он будет пытаться в родительском каталоге, и после кодирования я начинаю ctags -R. - person znlyj; 26.11.2011