" cscope keymaping plugin " (a tool to browse through C source files) " " if compiled with --enable-cscope if has("cscope") if exists("g:loaded_cscope") || &cp finish endif let g:loaded_cscope = 1.0 function! GoToDefinition() try execute "cscope find g " . expand("") catch /:E259:/ try execute "tag " . expand("") catch /:E257:/ execute "normal! gd" execute "nohlsearch" endtry endtry endfunction " use both cscope and ctag for 'ctrl-]', ':ta', and 'vim -t' set cscopetag " use ctags before cscope set csto=0 " add any cscope database in current directory if filereadable("cscope.out") cscope add cscope.out endif " add the database pointed by environment variable. " Cscope file added from db should contains full path to file. Otherwise they " should be added with cscope add PATH_TO_CSCOPE_FILE PATH_TO_SRC_ROOT if $CSCOPE_DB != "" if filereadable($CSCOPE_DB) cscope add $CSCOPE_DB endif endif " show message when any other cscope db added set cscopeverbose " open include file with F4 and split with shift+F4 nmap :cscope find f =expand("") nmap :scscope find f =expand("") " find this C symbol with F5 and split with shift+F5 nmap :cscope find s =expand("") nmap :scscope find s =expand("") " go to definition with F6 and split with shift+F6 and use ctags with alt+shift+F6 "nmap :cscope find g =expand("") nmap :call GoToDefinition() nmap :scscope find g =expand("") nmap :tag =expand("") " go to calls with F7 and split with shift+F7 nmap :cscope find c =expand("") nmap :scscope find c =expand("") " go to ... with 'ctrl+s letter' and go back with ctrl+t nmap s :cscope find s =expand("") nmap g :cscope find g =expand("") nmap c :cscope find c =expand("") nmap t :cscope find t =expand("") nmap e :cscope find e =expand("") nmap f :cscope find f =expand("") nmap i :cscope find i ^=expand("")$ nmap d :cscope find d =expand("") " split to ... with 'ctrl+space letter' nmap s :scscope find s =expand("") nmap g :scscope find g =expand("") nmap c :scscope find c =expand("") nmap t :scscope find t =expand("") nmap e :scscope find e =expand("") nmap f :scscope find f =expand("") nmap i :scscope find i ^=expand("")$ nmap d :scscope find d =expand("") " vertical split to ... with 'ctrl+space ctrl+space letter' nmap s :vertical scscope find s =expand("") nmap g :vertical scscope find g =expand("") nmap c :vertical scscope find c =expand("") nmap t :vertical scscope find t =expand("") nmap e :vertical scscope find e =expand("") nmap f :vertical scscope find f =expand("") nmap i :vertical scscope find i ^=expand("")$ nmap d :vertical scscope find d =expand("") " s symbol find all references to the token under cursor " //find this C symbol " g global find global definition of the token under cursor " //find this definition " c calls find all calls to the function name under cursor " //find function calling this function " d called find functions that function under cursor calls " //find function called by this function " t text find all instances of the text under cursor " //find this text string " e egrep egrep search for the word under cursor " //find this egrep pattern " f file open the filename under cursor " //find this file " i includes find files that include the filename under cursor " //find files #including this file endif