Настройка отдельных баз данных ctags для стандартных библиотек C / C ++, boost и сторонних библиотек - PullRequest
4 голосов
/ 13 мая 2010

Я хочу настроить отдельные базы данных ctags для различных библиотек в /usr/include/ для использования с OmniCppComplete .

Идея состоит в том, чтобы иметь возможность использовать только библиотеки, необходимые для конкретного проекта на целевом языке - C или C ++.

Например, я хотел бы иметь одну базу данных для стандартных библиотек C, одну для системных библиотек, которые могут использоваться программами на C или C ++ (на ум приходят сокеты / сети), одну для стандартных C ++ libs / STL / Boost, а затем и другие базы данных для различных сторонних библиотек, таких как QT или glib. Тогда я мог бы что-то сделать, просто набрав set tags+= ~/.vim/somelib.tags в vim.

Я предполагаю, что все, что связано с stdlib C ++ и STL, находится в /usr/include/c++, а Boost - в /usr/include/boost. К сожалению, кажется, что стандартные библиотеки C и системные библиотеки просто выгружаются прямо в /usr/include/ с множеством других вещей.

Как я могу получить список, какие файлы и каталоги принадлежат каким библиотекам? Я на Ubuntu 8.04.

1 Ответ

1 голос
/ 14 мая 2010

apt-file ваш друг в Ubuntu.

Следующая команда выдаст вам список всех включаемых файлов для Boost:

apt-file list -x "^libboost" | grep '/include/' | cut -f2 -d:

Я оставлю остальное как упражнение для читателя!

Обновление : для полноты звоните apt-file update, если вы никогда не использовали apt-file раньше.

...