about 3 years ago

使用Vim trace code會使用到ctags和cscope,以下用一段簡略的code來說明這兩項功能

1: public void updateInfo(Info info){
2:     updateSomething(info.getSomething());
3: }
4: 
5: private void updateSomething(String str) {
6:     .....
7: }
  • ctags 快速跳到該function/method及返回 在updateSomething(info.getSomething)按下Ctrl+]就會跳到private void updateSomething這邊;按下Ctrl+t跳回到updateSomething(info.getSomething)。ctags無法直接從updateSomething(String str)跳到第2行,也就是沒有辦法找出這function/method被使用到地方。
  • cscope cscope的:cs find g updateSomehting功能就如同ctags中的Ctrl+],更重要的事它能做到ctags做不到的事,也就是找出這function/method被使用到地方。下達:cs find c updateSomething來跳到第二行。

ctags和cscope的安裝及如何使用,網路上已有不少文章,以下為我有參考到的:

另外在Vim中如果想觀看正在編輯程式的所有field,method,可以透過taglist的plugin。

同場加映一些在trace code的技巧:
VIM 小技巧 (3): Trace code 的一些小技巧: * 與 %

=== 2014/10/28 更新===
Mac OS X上ctags出現ctags: illegal option -- R解決辦法:ctags setup on mac

=== 2015/01/18 更新===
ctags demo影片:

PS:該deom影片是使用Ctrl+o返回,其不同請看What is the difference between CTRL-T and CTRL-O in Vim?

← Vundle安裝 MacVim安裝和設定 →
 
comments powered by Disqus