本文主要介紹cscope ctags(cscope安裝),下面一起看看cscope ctags(cscope安裝)相關(guān)資訊。
1.cscope介紹,cscope是一個類似于ctags的工具,但是可以認(rèn)為是ctags的加強版,因為它可以做的事情比ctags多。在vim中,通過cscope查詢,跳轉(zhuǎn)到指定的地方就像跳轉(zhuǎn)到任意標(biāo)簽一樣;她可以保存標(biāo)簽棧,所以通過適當(dāng)?shù)逆I盤映射綁定,你可以在函數(shù)中向后或向前跳轉(zhuǎn),就像常用的標(biāo)簽一樣。
第一次使用cscope時,他會從源文件生成一個符號庫。那么在將來的使用中,cscope將只在源文件被更改或源文件列表不同時才重建數(shù)據(jù)庫。重建數(shù)據(jù)庫時,未更改文件對應(yīng)的數(shù)據(jù)庫信息將從舊數(shù)據(jù)庫中復(fù)制,因此重建的數(shù)據(jù)庫將比剛開始新建的數(shù)據(jù)庫更快。
當(dāng)您在命令行調(diào)用cscope時,您將得到一個全屏幕選擇窗口,使您能夠查詢特定的內(nèi)容。然而,一旦你找到一個匹配,你將使用你的默認(rèn)編輯器來編輯源文件,但你可以 不要簡單地使用ctrl]或:tag從一個標(biāo)簽跳到另一個標(biāo)簽。
vim中的cscope接口是以命令行的形式調(diào)用,然后解析查詢返回的結(jié)果來完成的。最終的結(jié)果是cscope查詢結(jié)果就像通常的標(biāo)簽一樣,可以自由跳轉(zhuǎn),就像使用通常的標(biāo)簽一樣(使用ctrl或者:tag跳轉(zhuǎn))。
2.cscope相關(guān)命令所有cscope命令都將參數(shù)選項傳遞給主cscope命令 : cscope 。她最簡短的縮寫是 : cs 。 : scope 命令做同樣的事情,同時水平分割窗口(縮寫為 scs ).
可用的縮寫有:
添加:添加新的cscope數(shù)據(jù)庫/鏈接庫。
用法:: csadd { file | dir }[pre-path][flags]其中:[pre-path]是使用-p選項傳遞給cscope的文件路徑,該路徑是添加在由相對路徑表示的文件之前的路徑,因此您可以使用它,而無需切換到您的數(shù)據(jù)庫文件所在的目錄。[flags]您要傳遞給cscope的額外標(biāo)志示例:: cscope add/root/code/vim test/ftp deco 8-@ . com cscope add/proje。ct/vim/cscope . out/usr/local/vime: cscope添加cscope.out/usr/local/vim–cfind:查詢cscope。除了數(shù)字5( 修改這個匹配模式 ).
用法:: csfind {querytype} { name }其中:{ query type }是實際cscop——找到這個c符號1或g ——找到這個定義2或d ——找到這個函數(shù)調(diào)用的函數(shù)3或c ——找到調(diào)用這個函數(shù)的函數(shù)4或t ——查找——查找文件8或i ——查找文件#include。示例:(#符號后面跟注釋)cscope find c ftpd_send_resp #查找所有調(diào)用這個函數(shù)的函數(shù)(人)。:cscopefind 3 ftpd _ send _ resp #與上述結(jié)果相同。:cscopefind 0 ftpd _ check _ log in #搜索符號ftpd _ check _ login的結(jié)果如下:cscop: ftpd _ check _ log in # line filename/context/line 119 ftpd . h global # define ftpd _ check _ log in/2 648 ftpd . cftpd _ do _ pwdftpd _ check _ log in;3 661 ftpd . c ftpd _ do _ cwd ftpd _ check _ log in;4 799 ftpd . c ftpd _ do _ list ftpd _ check _ log in;5 856 ftpd . c ftpd _ do _ nlst ftpd _ check _ log in;6 931 ftpd . c ftpd _ do _ syst ftpd _ check _ log in;7 943 ftpd . c ftpd _ do _ size ftpd _ check _ log in;8 960 ftpd . c ftpd _ do _ dele ftpd _ check _ log in;9 981 ftpd . c ftpd _ do _ pasv ftpd _ check _ log in;輸入選擇的nr(cr到abort):),然后輸入前面的序列號。幫助:顯示簡短摘要。
用法::cs help kill:殺死一個cscope鏈接(或殺死所有cscope鏈接)。
用法:: cskill { num | partial _ name }為了終止cscope鏈接,必須指定鏈接號或部分名稱。部分名稱可以只是cscope數(shù)據(jù)庫文件路徑的一部分。要特別小心使用部分路徑來終止cscope鏈接。如果指定的鏈接號為-1,所有cscope鏈接都將被終止。重置:重新初始化所有cscop:cs reset show:顯示cscope的鏈接。
如何使用::cshow如果您在使用cscope的同時使用ctags,| :stag |允許您指定在跳轉(zhuǎn)之前從其中一個搜索。例如,您可以選擇首先從cscope數(shù)據(jù)庫中查找您的標(biāo)記文件(由ctags生成)。上述執(zhí)行的順序取決于|csto|的值。
| :stag |從cscop:cs找g 。
| :stag |當(dāng)從您的tags文件中查找標(biāo)識符時,它相當(dāng)于|:tjump|。
3.cscop:set|命令設(shè)置cscope的所有選項。理想情況下,您可以在啟動文件(例如。vimrc)。某些與cscope相關(guān)的變量僅在|中合法。vimrc|。在vim啟動后設(shè)置它們是沒有用的!
cscpoeprg 指定執(zhí)行cscope的命令。
默認(rèn)值是 cscope 。
例如:: set csprg =/usr/local/bin/cscope ;cscope快速修復(fù) 指定是否使用快速修復(fù)窗口來顯示cscope的結(jié)果。這是一組以逗號分隔的值。每個項目都包含在|csope-find|命令(s、g、d、c、t、e、f或i)和標(biāo)志(、-或0)中。
指示顯示結(jié)果必須附加到quickfix窗口。
- ;意味著清除以前的顯示結(jié)果。;0 或者不設(shè)置它意味著不使用quickfix窗口。搜索將從頭開始,直到第一個命令出現(xiàn)。默認(rèn)值是 (不使用快速修復(fù)窗口)。以下價值觀似乎很有用: 硫、碳、硫、碘、硫、硫和硫。
如果 cscopetag 被設(shè)置,那么諸如 : tag ;和ctrl]和 vim-t ;將始終使用| :tag |而不是默認(rèn)的: tag行為。通過設(shè)置 cst ,您將總是查找cscope數(shù)據(jù)庫和標(biāo)記文件。默認(rèn)為關(guān)閉,例如:
: set cst : set nocst &; csto &;
的價值。;集體安全條約組織 確定| :stag |執(zhí)行查找的順序。如果 集體安全條約組織 設(shè)置為0,將首先搜索cscope數(shù)據(jù),如果cscope沒有返回匹配項,則將搜索標(biāo)記文件。否則,搜索順序相反。默認(rèn)值為0,例如:
: set csto = 0 e: set csto = 1 if ;cscopeverbose 未設(shè)置(這是默認(rèn)值),則在添加cscope數(shù)據(jù)庫時,不會顯示指示執(zhí)行成功或失敗的信息。理想情況下,您應(yīng)該在|中重置該選項。vimrc|在添加cscope數(shù)據(jù)庫之前,并在添加之后設(shè)置它。之后,當(dāng)您在vim中添加更多數(shù)據(jù)庫時,您將獲得(希望是有用的)顯示數(shù)據(jù)庫添加失敗的信息。例如:
:集csverb:集nocsverb cspc 確定顯示文件路徑的多少部分。默認(rèn)值為0,因此將顯示整個路徑。如果該值為1,則只顯示文件名,不顯示路徑。其他值將顯示不同的部分。例如:
:set cspc=3將顯示文件路徑的后三部分,包括文件名本身。
4.如何在vim中使用cscope您需要做的第一步是為您的源文件構(gòu)建一個cscope數(shù)據(jù)庫。在大多數(shù)情況下,您可以簡單地使用 cscope-b 。
假設(shè)您已經(jīng)有了一個cscope數(shù)據(jù)庫,您需要 添加 這個數(shù)據(jù)庫到維姆。這將建立一個cscope 鏈接 并將其提供給vim。你可以在你的。vimrc文件或在vim啟動后手動執(zhí)行。例如,為了增加數(shù)據(jù)庫 cscop:cs添加cscope.out您可以通過執(zhí)行 : cs show 。這將產(chǎn)生以下輸出:
# pid數(shù)據(jù)庫名稱前置路徑0 11453 cscope。outnone提示:
由于微軟的rtl限制,win32版本將顯示0而不是真正的pid。
一旦建立了cscope鏈接,您就可以查詢cscope,結(jié)果將反饋給您。通過命令搜索 : cs find 。例如:
: csfind gftpd _ check _ log in上述命令的執(zhí)行可能會變得有點繁瑣,因為它需要相當(dāng)多的輸入。如果有多個匹配項,您將會看到一個選擇屏幕來選擇您想要匹配的項。跳轉(zhuǎn)到新位置后,只需按ctrl+t即可返回到上一個位置。
標(biāo)簽:
數(shù)據(jù)庫文件
了解更多cscope ctags(cscope安裝)相關(guān)內(nèi)容請關(guān)注本站點。