vim-打造自己的利器

1.vim结构定义跳转

1.1安装的软件

        sudo apt-get install vim exuberant-ctags

1.2vim基本配置~/

set ruler
set nocompatible
syn on
set tabstop=4
set cindent shiftwidth=4
set smartindent
set fileencodings=utf8,gbk
set backspace=indent,eol,start
autocmd Filetype c set omnifunc=ccomplete#Complete
autocmd Filetype cpp set omnifunc=cppcomplete#Complete
第 1 行用来打开标尺(显示当前光标所在位置)。
第 2 行把 vim 设置成与旧的 unix 版本 native vi 不兼容。
第 3 行打开语法高亮显示。
第 4 行设置 tab 的宽度。
第 5、6 行设置缩进。
第 7 行把 vim 设置为能够自动识别 utf8 和 gbk 两种 encoding 的文件。
第 8 行设置退格键。
最后两行仅对 vim 7.0 以上版本有效,是用来设置自动补全的。

1.3.和 ctags 配合使用

(1) 生成 ctags:
在操统作业代码树的根部,执行
ctags -h=.h.c.S -R
这表示,递归为整个目录树中的 .h,.c,.S 文件建立tag。执行完这段代码以后
,我们可以发现,当前目录下多了一个 tags。例如对于proj4,目录树下的文件将是:
boot/ conf/ inc/ lib/ proj4-handin.tar.gz user/
CODING GNUmakefile kern/ mergedep.pl tags
~~~~

(2) 与 vim 配合使用:
vim 会自动识别当前目录(注意,只是当前目录)下的 tags文件,然后加以利用。怎
样使用呢?举个例子来说,例如我们在代码树根部执行
vim kern/trap.c
然后找到这一段:
void
print_regs(struct PushRegs *regs)
{
cprintf(" edi 0x%08x\n", regs->reg_edi);
cprintf(" esi 0x%08x\n", regs->reg_esi);
cprintf(" ebp 0x%08x\n", regs->reg_ebp);
...
}
把光标移动到 cprintf 上,然后按下 ctrl +],可以看看发生了什么?
注:
1. 对函数、struct 和变量按下 ctrl +],会令光标定位到它们的定义(而非声
明)处。
2. 对 #DEFINE 出来的宏定义,按下 ctrl + ],会令光标定位到它们的#DEFINE
处。
3. 这个功能可以跨文件使用,例如 cprintf 的定义在 printf.c里,光标会移到
printf.c中去。但是这要求你当前所在的文件自从上次保存以来,就没有被修改过。所以
,按下 ctrl + ] 之前,最好要保存文件,否则 vim会给出提示,告诉你操作失败。
4. 定位了一个函数以后,再想回到原来的光标所在处,怎么办?按 ctrl +t(来
自 fishy)。
5. 以上所有的快捷键都只能在普通模式下(非插入、非改写)使用。
6. vim 只会在当前目录下查找 tags 文件,因此如果你在先 cd kern,再vim tr
ap.c就不能使用 tags 了。

5. 自动补全
在 vim中,如果你只记得一个函数、变量、常量、宏定义的前半部分,可以按ct
rl + p(就在插入模式下按),vim 会自动根据你 include的头文件里寻找匹配的项,做
成下拉菜单让你选择。
例如,我们建立这样一个文件 test.c:
#include <stdio.h>

int main() {
prin
这时按下 ctrl + p,vim 会给出一个列表,告诉你备选项:
prin
--------------------------------------
| printf /usr/include/bits/types.h |
| printing /usr/include/wctype.h |
| prints /usr/include/getopt.h |
--------------------------------------
虽然这个在类型判断上面比 VC 等等的 IDE弱智了许多,但是有时仍然很有用 :)

2.taglist

2.1安装:

  (1)首先下载taglist安装包(taglist_45.zip):

  http://www.vim.org/scripts/script.php?script_id=273  

  然后拷贝到 /root/.vim 目录下解压:

  mailto:root@ubuntu:~/.vim# unzip taglist_45.zip

 会在.vim 目录下生成两个目录:docplugin

 (2)修改/etc/vim/vimrc文件:

  在vimrc 文件最后添加以下两句话:

  let Tlist_Ctags_Cmd="/usr/bin/ctags"
  let Tlist_Inc_Winwidth=0

  要注意上次我们ctags的目录为:/usr/local/bin/ctags

(3)使用方法

  然后去你的源码目录如果你的源码是多层的目录就去最上层的目录在该目录下运行命令:  

  [root@localhost mde-1.3.0]#ctags -R

  此时在当前目录下会生成一个tags 文件

  [root@localhost mde-1.3.0]#cd same/

  [root@localhost same]#vim same.c

  再在vim中运行命令:

 :TlistToggle

  会出现如下窗口:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值