Wikia

Vim Tips Wiki

Changes: Autoloading Cscope Database

Edit

Back to page

(Change <tt> to <code>, perhaps also minor tweak.)
(Change <tt> to <code>, perhaps also minor tweak.)
Line 13: Line 13:
 
By default, Cscope [http://cscope.sourceforge.net/cscope_maps.vim script] adds <code>cscope.out</code> from Vim's current directory and from <code>$CSCOPE_DB</code>. However, if you start Vim from say <code>~/proj/src/a/b/c/</code>, while <code>cscope.out</code> is at <code>~/proj/src/</code>, that <code>cscope.out</code> won't be loaded automatically.
 
By default, Cscope [http://cscope.sourceforge.net/cscope_maps.vim script] adds <code>cscope.out</code> from Vim's current directory and from <code>$CSCOPE_DB</code>. However, if you start Vim from say <code>~/proj/src/a/b/c/</code>, while <code>cscope.out</code> is at <code>~/proj/src/</code>, that <code>cscope.out</code> won't be loaded automatically.
   
For ctags, there is a nice trick: with the command {{tt|1=:set tags=tags;/}} Vim will look for tags file everywhere starting from the current directory up to the root.
+
For ctags, there is a nice trick: with the command <code>:set tags=tags;/</code> Vim will look for tags file everywhere starting from the current directory up to the root.
   
 
This tip provides the same "autoloading" functionality for Cscope. Just add the following to your [[vimrc]]:
 
This tip provides the same "autoloading" functionality for Cscope. Just add the following to your [[vimrc]]:

Revision as of 12:35, July 15, 2012

Tip 1668 Printable Monobook Previous Next

created February 11, 2011 · complexity basic · author Dorserg · version 7.0


By default, Cscope script adds cscope.out from Vim's current directory and from $CSCOPE_DB. However, if you start Vim from say ~/proj/src/a/b/c/, while cscope.out is at ~/proj/src/, that cscope.out won't be loaded automatically.

For ctags, there is a nice trick: with the command :set tags=tags;/ Vim will look for tags file everywhere starting from the current directory up to the root.

This tip provides the same "autoloading" functionality for Cscope. Just add the following to your vimrc:

function! LoadCscope()
  let db = findfile("cscope.out", ".;")
  if (!empty(db))
    let path = strpart(db, 0, match(db, "/cscope.out$"))
    set nocscopeverbose " suppress 'duplicate connection' error
    exe "cs add " . db . " " . path
    set cscopeverbose
  endif
endfunction
au BufEnter /* call LoadCscope()

See also

Comments

Around Wikia's network

Random Wiki