vim cannot connect to cscope database
Solution 1
This is mentioned in the comments above, but I want to make sure it's preserved in an answer.
The issue that came up for me was that vim didn't know where to look for the cscope database. When I added
cs add $CSCOPE_DB
to my .vimrc
. Everything came out fine.
Solution 2
I figure since I've made the visit, I would try responding.
I was getting this error when searching using ctrl-space s (or any search for that matter):
E567: no cscope connections
I finally found the full solution at http://cscope.sourceforge.net/cscope_vim_tutorial.html, Step 11.
The idea is that you create a list of source files to be included in the view of cscope, generate the cscope.out in the same location, and update the export path accordingly:
find /my/project/dir -name '*.c' -o -name '*.h' > /foo/cscope.files
-
cscope -R -b
(this may take a while depending on the size of your source) -
export CSCOPE_DB=/foo/cscope.out
(put this in your .bashrc/.zshrc/other-starting-script if you don't want to repeat this every time you log into the terminal)
Solution 3
You need to add a "cscope connection", like this in vim:
:cscope add $PATH_TO_CSCOPE.out
See :help cs
for more examples.
Solution 4
Here's how I explore linux kernel source using cscope:
I use vim as my editor.
- While standing inside the kernel source root directory, run
cscope
in interactive mode while recursively going through subdirectories during search for source files:
cscope -R
When run for the first time, it will generate the database file with the name: cscope.out
inside the current directory. Any subsequent runs will use the already generated database.
- Search for anything or any file and open it.
- Set cscope tags in vim to make the
:tag
andCTRL-]
commands search through cscope first and then ctags' tags:
:set cscopetag
- Set cscope database inside current VIM session:
:cs add cscope.out
Now you can use CTRL-]
and CTRL-t
as you would do in ctags to navigate around! :)
Related videos on Youtube
Aijaz Baig
Updated on July 09, 2022Comments
-
Aijaz Baig almost 2 years
I have opensuse 11.4 installed. Vim is version 7. Now I normally use it to browse the linux kernel source. So I generated the cscope database inside a directory within my home folder i.e. /home/aijazbaig1/cscope_DB/ and I got 3 files viz. cscope.out, cscope.po.out and cscope.in.out besides the cscope.files file which contains a list of all the relevant files which I want to search.
Additionally I have added the following to my .bashrc:
CSCOPE_DB=/home/aijazbaig1/cscope_DB/cscope.out export CSCOPE_DB
But when I do a
:cscope show
from within vim it says there are no connections. Can anyone please let me know what is going wrong.Keen to hear from you,
-
Caffeinated almost 13 yearsA number of issues could cause this - see this site for help: vim.wikia.com/wiki/Cscope
-
Aijaz Baig almost 13 yearsYes I did try what was mentioned here: stackoverflow.com/questions/563616/… so I did add the line 'cs add $CSCOPE_DB' from within an 'if has ('cscope') block. Now it seems to be working but I cannot still use the ctrl+'\'+s and such commands to directly look for a work where my cursor is. I think may be I will have to download the cscope_maps.vim file and put it in my .vim/plugin/ directory isn't it?? But damn its a virtual machine and file sharing isnt working:(. Anyways thats a topic for another section
-
Aijaz Baig almost 13 yearsYes I was able to get those key strokes working by sticking the data of the cscope_maps.vim file into my .vimrc.
-
PonyEars almost 12 yearsGood you figured it out. You might want to answer your own question and mark it as answered so it doesn't show up as an unanswered question.
-
-
Ashish Vyas over 8 yearsThis helped me to on my ubuntu too