cscope Minimalbeispiel
Ingo hat es erwähnt, hier ist ein Beispiel.
Zuerst sollten Sie Ihren .vimrc
einschalten :
set cscopequickfix=s-,c-,d-,i-,t-,e-
Gehen Sie dann in das Basisverzeichnis Ihres Projekts und führen Sie Folgendes aus:
cscope -Rb
Dies erzeugt eine cscope.out
Datei, die die geparsten Informationen enthält. Die Generierung ist ziemlich schnell, selbst für große Projekte wie den Linux-Kernel.
Öffnen Sie vim und führen Sie Folgendes aus:
:cs add cscope.out
:cs find c my_func
c
ist eine Abkürzung für callers
. Die andere cscope
sofern auch Abfragen möglich sind, sind Mnemonics aufgeführt unter:
help cscope
Dies fügt der Quickfix-Liste eine Liste der Anrufer hinzu, die Sie öffnen können mit:
:copen
Gehen Sie zu der Zeile, die Sie interessiert, und drücken Sie die Eingabetaste, um dorthin zu springen.
Um Aufrufer des Funktionsnamens zu finden, der sich gerade unter dem Cursor befindet, fügen Sie zu Ihrem .vimrc
hinzu :
function! Csc()
cscope find c <cword>
copen
endfunction
command! Csc call Csc()
und geben Sie :Csc<enter>
ein wenn sich der Cursor über der Funktion befindet.
ZU TUN:
- tun Sie dies für die aktuelle Funktion unter dem Cursor mit einem einzigen Befehl. Verwandt:Funktionsnamen in der Statuszeile anzeigen
- automatisch die nächstgelegene Datenbank (übergeordnete Verzeichnisse) hinzufügen, wenn Sie eine Datei eingeben:wie cscope.out automatisch in vim geladen wird
- Öffnen Sie den Anrufgraphen interaktiv wie Eclipse. Verwandt:Aufrufbaum aus cscope-Datenbank generieren
Ein Tipp:Ich liebe vim, aber es ist zu kompliziert für mich, so etwas einzurichten. Und es berücksichtigt keine Klassen, z. in C++. Wenn Ihnen ein Projekt wichtig genug ist, versuchen Sie, das Projekt auf einer "IDE" zum Laufen zu bringen. Es kann einen gewissen Overhead mit sich bringen, wenn das Projekt die IDE-Konfigurationsdateien nicht verfolgt (die sich automatisch ändernde Blobs sind, die das Repo verschmutzen ...), aber es ist es mir wert. Für C/C++ war mein Favorit bisher KDevelop 4.
Dafür integriert sich Vim mit dem cscope Werkzeug; siehe :help cscope
für weitere Informationen.