Согласно блогу, «Эта ошибка появляется, когда VIM уже скомпилирован с модулем« CSCOPE », и вы также установили« cscopemenu.vim »». Я предполагаю, что у вас есть исполняемый файл vim с configure
d с опцией --enable-cscope
.
Вот что я делаю:
- Скачать источник Cscope и построить его, установить исполняемый файл в директории, которая доступна в вашем
PATH
- Скачать исходный ВИМ код и
configure
его с --enable-cscope
, построить источник и установите исполняемый файл
- Скачайте cscope_maps.vim и разместите его под каталогом
$HOME/.vim/plugin
. Это содержит настройки cscope для vim.
- Создайте базу данных cscope из исходных и заголовочных файлов. Вы можете сделать что-то вроде следующего
find $PROJECT_HOME -name *.c -o -name "*.cpp" -o -name "*.cc" -o -name "*.h" -o -name "*.hpp" > cscope.files
cscope -qbR -i cscope.files
Вы можете добавить эти команды в качестве псевдонима и преобразования приложений Псевдонима каждый раз, когда вы хотите, чтобы обновить базу данных Cscope. Эти две команды создают, наконец, файл базы данных cscope.out
.
Update .vimrc файл, чтобы иметь следующие
if has("cscope") set csprg=<location to cscope executable> set csto=0 cs add <location to cscope.out> endif
Я надеюсь, что после выполнения этих шагов, которые вы должны быть в состоянии использовать Cscope с Vim легко.
Обратите внимание, что если вы работаете над несколькими проектами, вы должны иметь возможность добавлять соответствующие переменные среды, чтобы vim мог выбрать правильную базу данных cscope.
Чтобы ответить на ваш второй вопрос, могу ли я предложить использовать tagbar. Это приведет к отображению имен ваших функций в текущем исходном или заголовочном файле. Вы можете установить его с помощью Vundle
. Добавьте следующую строку в .vimrc
Plugin 'majutsushi/tagbar'
Добавьте это к вашему.vimrc для переключения Просмотреть tagbar
nmap <F4> :TagbarToggle<CR>
Обратите внимание, что F4
это всего лишь пример, и вы можете использовать любую привязку сделать то же самое.
Ваш лучший выбор на StackOverflow должен придерживаться одного вопроса * на вопрос, а не добавлять второй вопрос в одном сообщении. Как бы то ни было, ваш второй вопрос не является хорошим форматом для StackOverflow; StackOverflow лучше всего работает с вопросами, где может быть «правильный» ответ, а запросы на рекомендации по инструментам не соответствуют этому формату. См. [Какие темы я могу спросить о] (https://stackoverflow.com/help/on-topic) для получения дополнительной информации, в частности «Вопросы, предлагающие нам рекомендовать или найти ...». –