Příklad minimálního cscope
Ingo se o tom zmínil, zde je příklad.
Nejprve byste měli nastavit .vimrc
:
set cscopequickfix=s-,c-,d-,i-,t-,e-
Poté přejděte do základního adresáře vašeho projektu a spusťte:
cscope -Rb
Tím se vygeneruje cscope.out
soubor, který obsahuje analyzované informace. Generování je přiměřeně rychlé, dokonce i pro velké projekty, jako je linuxové jádro.
Otevřete vim a spusťte:
:cs add cscope.out
:cs find c my_func
c
je mnemotechnická pomůcka pro callers
. Druhý cscope
pokud jsou také možné dotazy, mnemotechnické pomůcky jsou uvedeny pod:
help cscope
Tím přidáte seznam volajících do seznamu rychlých oprav, který můžete otevřít pomocí:
:copen
Přejděte na řádek, který vás zajímá, a stisknutím klávesy Enter tam skočte.
Chcete-li najít volající s názvem funkce aktuálně pod kurzorem, přidejte do .vimrc
:
function! Csc()
cscope find c <cword>
copen
endfunction
command! Csc call Csc()
a zadejte :Csc<enter>
když je kurzor nad funkcí.
TODO:
- pro aktuální funkci pod kurzorem to uděláte jediným příkazem. Související:Zobrazit název funkce ve stavovém řádku
- automaticky přidat nejbližší databázi (nadřazené adresáře), když zadáte soubor:jak automaticky načíst cscope.out do vim
- interaktivně otevřete graf hovorů jako Eclipse. Související:Generování Call-Tree z databáze cscope
Malá rada:Miluji vim, ale je pro mě příliš komplikované nastavit takovou věc. A nebere v úvahu třídy např. v C++. Pokud vám na projektu dost záleží, pokuste se, aby projekt fungoval na nějakém „IDE“. Může to vyžadovat určitou režii, pokud projekt nesleduje konfigurační soubory IDE (což jsou automaticky se měnící bloby, které znečišťují repo...), ale stojí mi to za to. Pro C / C++ byl můj oblíbený zatím KDevelop 4.
Za tímto účelem se Vim integruje s cscope nástroj; viz :help cscope
pro více informací.