ctags in vim
Keyboard | Command Action |
Ctrl-] 或是 Ctrl-Left_MouseClick | 跳到tag所定義的地方 |
Ctrl-t 或是 Ctrl-Right_MouseClick | 返回 |
:ts <tag> <RET> |
Search for a particular tag |
:tn | Go to the next definition for the last tag |
:tp | Go to the previous definition for the last tag |
:ts | List all of the definitions of the last tag |
cscope_maps.vim plugin
這邊的用法是Ctrl+\按完後, 全放開, 再去按後面的字母
ctrl+\ s "s表Symbol,列出所有參考到游標所在字串的地方,包含定義和呼叫。
ctrl+\ g "g表Global,與ctags的Ctrl+]相同。
ctrl+\ c "c表Caller,列出所有會呼叫到以游標所在字串當函數名的地方。
ctrl+\ t "t表Text,列出專案中所有出現游標所在字串的地方。
ctrl+\ f "f表File,以游標所在字串當檔名,開啟之。
ctrl+\ i "i表Include,以游標所在字串當檔名,列出所有include此檔的檔案。
ctrl+\ d "d表calleD,以游標所在字串當函式名,列出所有此函式內呼叫的函式。
在使用cscope時,需注意,cscope.out這個資料庫是否有被connect起來,如果沒有connect那搜尋功能當然就會失效。
發現一件事情,ctags的關聯都是用絕對路徑的,所以就算我任意切目錄,只要database有認到就沒問題。
但是cscope看起來是不行的,它用相對路徑的,一切目錄,就算database認到了,看起來也開不了檔案。
Vim 快速指令
在command mode底下(不用打:)
gf (goto file)
比如:當你的游標停在#include, 此時直接打gf, 就會自動幫你開啟該header file
先決條件是,你必需先指定好path, 參考方法是":set path=include;/usr/include"
當你要返回時,使用ctrl+o返回
* 搜尋字串
游標停在你要尋找的字串上,直接按shift+8(相當於按*),
然後就可以用n往下搜尋,按N往上搜尋了
gd 查區域變數, gD查全域變數
追蹤某個變數宣告時,可以用gd或gD去跳轉
% 括號跳轉
有時function非常的長, 每次都要用page up/down一直換頁, 還要擔心跳過頭
%可以幫你直接跳到左括號或右括號上, 也適用於C的#def喔.
當然, 同樣的你要先把游標移到括號上喔.
mx及'x 標記及返回
你可以在任意地方標記該行, 然後亂跑後, 再打'x來返回剛剛標記的地方
Linux Trace Tool Introduction
在使用cscope時,需注意,cscope.out這個資料庫是否有被connect起來,如果沒有connect那搜尋功能當然就會失效。
發現一件事情,ctags的關聯都是用絕對路徑的,所以就算我任意切目錄,只要database有認到就沒問題。
但是cscope看起來是不行的,它用相對路徑的,一切目錄,就算database認到了,看起來也開不了檔案。
Vim 快速指令
在command mode底下(不用打:)
gf (goto file)
比如:當你的游標停在#include
先決條件是,你必需先指定好path, 參考方法是":set path=include;/usr/include"
當你要返回時,使用ctrl+o返回
* 搜尋字串
游標停在你要尋找的字串上,直接按shift+8(相當於按*),
然後就可以用n往下搜尋,按N往上搜尋了
gd 查區域變數, gD查全域變數
追蹤某個變數宣告時,可以用gd或gD去跳轉
% 括號跳轉
有時function非常的長, 每次都要用page up/down一直換頁, 還要擔心跳過頭
%可以幫你直接跳到左括號或右括號上, 也適用於C的#def喔.
當然, 同樣的你要先把游標移到括號上喔.
mx及'x 標記及返回
你可以在任意地方標記該行, 然後亂跑後, 再打'x來返回剛剛標記的地方
Linux Trace Tool Introduction
沒有留言:
張貼留言