vim cannot connect to cscope database

30,387

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.

  1. 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.

  1. Search for anything or any file and open it.
  2. Set cscope tags in vim to make the :tag and CTRL-] commands search through cscope first and then ctags' tags:

:set cscopetag

  1. 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! :)

Share:
30,387

Related videos on Youtube

Aijaz Baig
Author by

Aijaz Baig

Updated on July 09, 2022

Comments

  • Aijaz Baig
    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
      Caffeinated almost 13 years
      A number of issues could cause this - see this site for help: vim.wikia.com/wiki/Cscope
    • Aijaz Baig
      Aijaz Baig almost 13 years
      Yes 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
      Aijaz Baig almost 13 years
      Yes I was able to get those key strokes working by sticking the data of the cscope_maps.vim file into my .vimrc.
    • PonyEars
      PonyEars almost 12 years
      Good 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
    Ashish Vyas over 8 years
    This helped me to on my ubuntu too