代码查看小妙招--vim ctags cscope的简单用法

时间:2009-06-29

  作者:曹忠明,华清远见嵌入式学院讲师。

  是不是刚安装上ubuntu发现vim没有语法高亮显示、而别人的是头文件、变量……都有特定的颜色表示而郁闷。是不是常常为编译器提示某某某头文件找不到和忘记了某个函数的原型而去翻砖头那么厚的书而烦恼,呵呵,这些都是小问题。这里介绍一些小方法解决这些问题。

  首先解决不能显示语法高亮的问题:

  可能你也知道去掉/etc/vim/vimrc文件中的“"syntax on “前面的双引号就能开启语法高亮,可是开了这个选项后,打开vim会有一些莫名的提示,这些都不要经我们升级一下vim就OK了升级方法可以是:

  1、在终端下输入 sudo apt-get install vim

  2、下列软件包安装即可:

  vim、vim-common、vim-runtime、vim-tiny

  我现在用的版本7.1的

  升级后在看看,发现vim不一样了吧。是不是感觉眼前一亮!vim的使用很简单,但是要用好了很不简单,这个需要自己慢慢的摸索。

  下面我们介绍集中查看头文件,库函数的方法:

  1、简单的方法是安装对应库的man手册,直接在终端man xxx(函数)如 man printf 就会看到pringf相关的信息,这种方法简单而且显示的信息很多,前提是你的英文必须过关!这种方法不是这里的重点。

  安装一个基本的文档sudo apt-get install manpages-dev

  2、这种方法可以让你更了解头文件或内核源码的结构

  (1)首先安装一个工具Ctags:sudo apt-get install Ctags

  让后我们进入/usr/include或你的内核目录进行如下操作:ctags -R *,这会在当前目录下递归的为各个子目录生成一个名为tags标签文件,这个操作在次执行后即可。

  现在在我们执行vim -t printf我们会看到我们进入了vim的编辑界面同时也到了printf声明的地方。或直接进入vim编辑界面输入:tag <函数名或宏等> 按TAB键可以进行模式匹配,继续安TAB匹配下一个。

  可是这样查到的东西可能不是你想要的那一个,怎么解决这个问题呢?

  (2)解决上面问题需要安装一个工具cscope:sudo apt-get install cscope

  上面几个工具单独用功能不是很大,可是结合起来功能就非常强大了。我这里有一个自己用的vim脚本,是拷的别人的功能不是很多但是已经够用了。

  在用户目录下新建一个.vimrc文件将下面内容添加到文件中:

  set mouse=a

  let Tlist_Use_Right_Window=1

  let Tlist_File_Fold_Auto_Close=1

  map <F4> :TlistToggle<CR>

  noremap <F6> :make<CR>

  noremap <S-F6> :make clean;make<CR>

  noremap <F7> :Tlist<CR>

  noremap <S-F7> :TlistSync<CR>

  noremap <F3> :!./vitags.sh<CR>:cs reset<CR>

  noremap <S-F3> :!cvs up<CR>

  nnoremap <space> @=((foldclosed(line('.')) < 0)       'zc' : 'zo')<CR>

  if has("multi_byte")

  set encoding=utf-8

  set fileencoding=chinese

  set fileencodings=ucs-bom,utf-8,chinese

  endif

  set wrap

  set hlsearch

  filetype plugin on

  colorscheme elflord

  syntax on

  set nocp

  filetype plugin on

  filetype indent on

  if has("cscope")

  set csprg=/usr/bin/cscope

  set csto=0

  set cst

  set nocsverb

  " add any database in current directory

  if filereadable("cscope.out")

  cs add cscope.out

  " else add database pointed to by environment

  elseif $CSCOPE_DB != ""

  cs add $CSCOPE_DB

  endif

  set csverb

  set cscopetag

  endif

  set nu

  set ts=4

  set sw=4

  set ru

  set hls

  set is

  set sm

  set cin

  set cino=:0g0t0(sus

  set autoread                              " read open files again when changed outside Vim

  set incsearch                              " use incremental search

  set nowrap                               " do not wrap lines

  set nobackup

  set nowritebackup

  map <C-F12> :!ctags -R --c-kinds=+p --fields=+iaS --extra=+q .<CR>

  map <C-F11> :!ctags -R .<CR>

  现在再试试vim -t <函数名或宏等>,这时如果有多个选项的话就会出现一个列表让你选择你需要的那个。

  一个好用的工具可以让你的工作效率大大提高,这里只是介绍了一点点,希望大家补充,纠正错误。

  “本文由华清远见
https://www.embedu.org/index.htm提供”



  
上一篇:用DNW通过USB烧uboot到nand
下一篇:元对象编译器(moc)

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料