linux下代码阅读扩展

最近在linux下读代码,简直不能直视;windows下推荐Source Insight;下面写下linux下如何读代码。
工欲善其事,必先利其器。一个强大的开发环境可以大大提高工作效率。  
  C/C++: vim+ctags+taglist+cscope
 安装就不说了,根据下面的自行安装。
 
1,安装使用Ctags

        Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基础。

usr/share/vim/vimrc  中增加以下这行:
 
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR> 
        set tags=tags;  set autochdir
到此,Ctags已安装成功。

    使用Ctags的也很简单。 进入我们的项目代码根目录,执行以下命令:
     
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
 
另外,由于在前面第5条,我们已经在Vim中配置了Ctrl-F12组合快捷键,所以我们也可以进入代码根目录后,打开Vim,按下Ctrl-F12快捷键自动生成tags文件。

        命令执行完后,会在源代码目录生成tags文件。Vim默认会自动读取当前目录下的tags文件,所以不需要修改~/.vimrc文件。此时,我们已经具有定义跳转的功能了。有两组快捷键是最常用的。

               Ctrl-]    跳转到光标所在符号的定义。

               Ctrl-t    回到上次跳转前的位置。

        更多功能通过命令man ctags或在Vim命令行下运行help ctags查询。

 2,安装使用Taglist

        Taglist是vim的一个插件,提供源代码符号的结构化视图。
打开配置文件 usr/share/vim/vimrc  ,加入以下两行:      
         
let Tlist_Show_One_File=1
     
  let Tlist_Exit_OnlyWindow=1 
到此安装已经完成。  
 
 在Vim命令行下运行TlistToggle命令就可以打开Taglist窗口,再次运行TlistToggle则关闭。

 我们可以通过Ctrl-w快捷键或鼠标点击在Taglist窗口和编辑区之间切换焦点,在Taglist窗口用鼠标或键盘选择某个符号,然后点击或回车,就可以跳转到该符号定义的位置。

        更多功能可通过在Vim命令行下运行help taglist.txt查询。


    3,安装使用Cscope

        Cscope提供交互式查询语言符号功能,如查询哪些地方使用某个变量或调用某个函数。
确定Vim已支持Cscope后,将文件 http://cscope.sourceforge.net/cscope_maps.vim 下载到 usr/share/vim/vimrc /plugin目录      
 
到这里,我们就可以开始使用Cscope了。

       1)使用Cscope需要生成cscope数据库文件。进入项目代码根目录运行命令:
 cscope -Rbq -f path(地址)/xxx.out(名字)

命令运行后会生成xxx.out文件,即cscope数据库文件。更多用法参考man cscope文档。

       2)进入项目代码根目录,在Vim下运行命令:
 
  cs add path/xxx.out
 
此命令将cscope数据库载入Vim。

       3)Cscope常用快捷键

           cs    s    名称   查找所有当前光标所在符号出现过位置。
           cs    c   名称    查找所有调用当前光标所在函数的函数。
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文
按下快捷键查找结束后会在编辑区下方出现查找结果的列表,输入结果编号并回车,就能跳转到该查找结果在源代码中的相应位置。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
参考地址:
http://blog.csdn.net/bokee/article/details/6633193

你可能感兴趣的:(linux)