熱搜:win11繞過硬件限制安裝 一鍵重裝Win10系統(tǒng) 最干凈的u盤啟動盤 真正純凈版的win7系統(tǒng)
時間:2015-03-18 17:30:03 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150318/41885.html 手機查看 評論 反饋
經(jīng)過分析cscope.files,我們看到了很多文件,F(xiàn)在更新tags設(shè)置項
:set tags=~/program_dev/trafficserver-3.2.4/tags
至此,我們設(shè)置好了tags選項,接下來開始使用它:
在當(dāng)前命令行輸入
vim -t main
這個命令將打開定義“main”(變量或函數(shù)或其它)的文件,并把光標(biāo)定位到這一行。
在瀏覽源碼時,當(dāng)要查詢某個函數(shù)的定義時,將光標(biāo)放在該函數(shù)上,按《C-]》鍵,就會跳轉(zhuǎn)到該函數(shù)的定義處,按《C-t》鍵是返回。
注意:運行vim的時候,必須在“tags”文件所在的目錄下運行。否則,運行vim的時候還要用“:settags=”命令設(shè)定“tags”文件的路徑,這樣vim才能找到“tags”文件。
在完成編碼時,可以手工刪掉tags文件(帚把不到,灰塵不會自己跑掉^_^)。
現(xiàn)在打開編號為43的文件中的main函數(shù)
按F9打開winmanager,這時按照設(shè)置,將會出現(xiàn)3部分窗口布局。如果打開了多個文件(多緩沖區(qū)),將在最上角出現(xiàn)第四個窗口,MiniBufExplorer窗口,F(xiàn)在按住Ctrl,再連續(xù)按W,將在各個窗口之間按照逆時針順序來回切換。當(dāng)然,按照趙攀的文檔,使用F2也一樣起到該作用。再按一次F9將關(guān)閉winmanager窗口布局。
當(dāng)選中某個窗口時,都可以使用vim通常的移動鼠標(biāo)的方式來選擇不同的標(biāo)簽等,比如gg,G等快捷鍵。
將光標(biāo)定位到main函數(shù)所在的文件中,將光標(biāo)定位到某個函數(shù)上,按住Ctrl+]鍵,將會跳轉(zhuǎn)到該函數(shù)的定義位置。
4.3快速瀏覽和操作Buffer
用vim打開多個文件時,vim最上方會出現(xiàn)一個MiniBufExplorer窗口,其中列出了當(dāng)前所有已經(jīng)打開的buffer,當(dāng)你把光標(biāo)置于這個窗口時(當(dāng)你處于winmanager窗口布局中時,使用Ctrl+W來輪流切換), 有下面幾個快捷鍵可以用:
《Tab》 向前循環(huán)切換到每個buffer名上
《S-Tab》 向后循環(huán)切換到每個buffer名上
《Enter》 在打開光標(biāo)所在的buffer
d 刪除光標(biāo)所在的buffer
當(dāng)你只編輯一個buffer的時候MiniBufExplorer派不上用場, 當(dāng)你打開第二個buffer的時候, MiniBufExplorer窗口就自動彈出來了,
4.4bufexplorer插件用法
打開vim,輸入\be在當(dāng)前窗口瀏覽緩存,\bs水平打開一個窗口瀏覽緩存,\bv垂直打開一個窗口瀏覽緩存。
但是在Filelist和taglist的窗口內(nèi),你可以移動上下移動光標(biāo),使用ghjk這四個鍵
附注:
。篶w change-word 改變到下一個詞的尾部,不含詞后面的空格
4.5Taglist窗口的快捷鍵操作
在taglist窗口中,可以使用下面的快捷鍵:
《CR》 跳到光標(biāo)下tag所定義的位置,用鼠標(biāo)雙擊此tag功能也一樣
o 在一個新打開的窗口中顯示光標(biāo)下tag
《Space》 顯示光標(biāo)下tag的原型定義
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出現(xiàn)順序排序間切換
x taglist窗口放大和縮小,方便查看較長的tag
+ 打開一個折疊,同zo
- 將tag折疊起來,同zc
* 打開所有的折疊,同zR
= 將所有tag折疊起來,同zM
。郏 跳到前一個文件
]] 跳到后一個文件
q 關(guān)閉taglist窗口
《F1》 顯示幫助
可以用”:TlistOpen“打開taglist窗口,用”:TlistClose“關(guān)閉taglist窗口;蛘呤褂”:TlistToggle“在打開和關(guān)閉間切換。在我的vimrc中定義了下面的映射,使用《F9》鍵就可以打開/關(guān)閉taglist窗口:
map 《silent》 《F8》 :TlistToggle《cr》
按照“typedef”, “variable”, “function”等進行了分類。 將光標(biāo)移到VimMain上, 如圖中左邊紅色的方框, 按下回車后, 源程序會自動跳轉(zhuǎn)到VimMain的定義處, 如圖中右邊的紅色方框。 這就是TagList最基本也是最常用的操作。在瀏覽TagList窗口時, 如果還不想讓源碼跳轉(zhuǎn), 但是想看看tag在源碼中完整的表達, 可以將光標(biāo)移到你想要看的tag上, 如圖中上邊黃色的方框, 然后按下空格鍵, 在下面的命令欄中, 如圖下邊黃色的方框, 會顯示該tag在源碼中完整的寫法, 而不會跳轉(zhuǎn)到源碼處。
4.6cscope插件用法
在vim中使用cscope非常簡單,首先調(diào)用”cscope add“命令添加一個cscope數(shù)據(jù)庫,然后就可以調(diào)用”cscope find“命令進行查找了。vim支持8種cscope的查詢功能,如下:
s: 查找C語言符號,即查找函數(shù)名、宏、枚舉值等出現(xiàn)的地方
g: 查找函數(shù)、宏、枚舉等定義的位置,類似ctags所提供的功能
d: 查找本函數(shù)調(diào)用的函數(shù)
c: 查找調(diào)用本函數(shù)的函數(shù)
t: 查找指定的字符串
e: 查找egrep模式,相當(dāng)于egrep功能,但查找速度快多了
f: 查找并打開文件,類似vim的find功能
i: 查找包含本文件的文件
例如,我們想在vim 7.0的源代碼中查找調(diào)用do_cscope()函數(shù)的函數(shù),我們可以輸入:”:cs find c do_cscope“,回車后發(fā)現(xiàn)沒有找到匹配的功能,可能并沒有函數(shù)調(diào)用do_cscope()。我們再輸入”:cs find s do_cscope“,查找這個C符號出現(xiàn)的位置,現(xiàn)在vim列出了這個符號出現(xiàn)的所有位置。
我們還可以進行字符串查找,它會雙引號或單引號括起來的內(nèi)容中查找。還可以輸入一個正則表達式,這類似于egrep程序的功能,但它是在交叉索引數(shù)據(jù)庫中查找,速度要快得多。
cscope的主要功能是通過同的子命令“find”來實現(xiàn)的
“cscope find”的用法:
cs find c|d|e|f|g|i|s|t name
0 或 s查找本 C 符號(可以跳過注釋)
1 或 g查找本定義
2 或 d查找本函數(shù)調(diào)用的函數(shù)
3 或 c查找調(diào)用本函數(shù)的函數(shù)
4 或 t查找本字符串
6 或 e查找本 egrep 模式
7 或 f查找本文件
8 或 i查找包含本文件的文件
vim提供了一些選項可以調(diào)整它的cscope功能:
cscopecscopeprg選項用于設(shè)置cscope程序的位置。
cscopecscopequickfix設(shè)定是否使用quickfix窗口來顯示cscope的結(jié)果,詳情請”:help cscopequickfix“;
如果你想vim同時搜索tag文件以及cscope數(shù)據(jù)庫,設(shè)置cscopecscopetag選項;
cscopecscopetagorder選項決定是先查找tag文件還是先查找cscope數(shù)據(jù)庫。設(shè)置為0則先查找cscope數(shù)據(jù)庫,設(shè)置為1先查找tag文件。我通常設(shè)置為1,因為在tag文件中查找到的結(jié)果,會把最佳匹配列在第一位。
vim的手冊中給出了使用cscope的建議方法,使用命令”:help cscope-suggestions“查看。
發(fā)表評論
共0條
評論就這些咯,讓大家也知道你的獨特見解
立即評論以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場