Chinaunix首页 | 论坛 | 博客
  • 博客访问: 649949
  • 博文数量: 121
  • 博客积分: 4034
  • 博客等级: 上校
  • 技术积分: 1439
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-28 12:42
文章分类

全部博文(121)

文章存档

2017年(8)

2016年(10)

2013年(2)

2012年(3)

2011年(18)

2010年(80)

分类: LINUX

2010-09-25 19:18:49

vim 使用配置

1. vim配置文件:
一般情况下放在~/.vimrc
这个是我使用很久的配置文件

文件:vimrc.tar.gz
大小:1KB
下载:下载

为了使vim功能更强大,需要安装软件和插件支持,这个仅仅是我常用的软件和插件,其他并不是不好用,只是个人习惯而已:
2. ctags:

文件:ctags-5.8.tar.gz
大小:468KB
下载:下载
使用方法:生成tags文件
正常使用:ctags -R
如果要是使用下面的插件
code_complete.vim和omnicppcomplete,让你的vim含有自动补全功能,还需要添加一些额外的参数:
ctags -R --c-kinds=+p --fields=+S  --extra=+q
如果是c++:
ctags -R --c++-kinds=+p --fields=+S  --extra=+q


3. cscope:
文件:cscope-15.7a.tar.bz2
大小:352KB
下载:下载
这两个软件的安装方法:
   ./configure;make;make install
使用命令cscope -Rbkq,生成索引文件。
在vim中使用命令:(如:cscope find s pid_t)查找相应的符号。
下面列出更详细的使用方法。


下面列出cscope的常用生成数据库选项:
-R: 在生成索引文件时,搜索子目录树中的代码,因为我们已经在cscope.files中把所有的文件都打印入了列表中,所以
-b: 只生成索引文件,不进入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件时,不搜索/usr/include目录
-i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用“-”,表示由标准输入获得文件列表。
-I dir: 在-I选项指出的目录中查找头文件
-u: 扫描所有文件,重新生成交叉索引文件
-C: 在搜索时忽略大小写
-P path: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。

好了,到了这里,cscope的原理大家应该都清楚了,那么在vim中怎么使用呢?
"cscope find"的用法:
cs find c|d|e|f|g|i|s|t name
0 或 s    查找本 C 符号(可以跳过注释)
1 或 g    查找本定义
2 或 d    查找本函数调用的函数
3 或 c    查找调用本函数的函数
4 或 t    查找本字符串
6 或 e    查找本 egrep 模式
7 或 f    查找本文件
8 或 i    查找包含本文件的文件

但是谁也不想敲这么多命令吧,所以我在vimrc中建了这样一个映射:
nmap s :cs find s =expand(""):copen
nmap g :cs find g =expand("")
nmap c :cs find c =expand(""):copen
nmap t :cs find t =expand(""):copen
nmap e :cs find e =expand(""):copen
nmap f :cs find f =expand(""):copen
nmap i :cs find i ^=expand("")$:copen
nmap d :cs find d =expand(""):copen

实际上就是参考 cscope_maps.vim 这个文件,大家可以去下载他,然后直接放到plugin目录就行。

最后,我们来说一下cscope和ctags的兼容问题。我在vimrc中配置了一段代码:
if has("cscope")
    set cscopequickfix=s-,c-,d-,i-,t-,e-
    set csto=0
    set cst
    set csverb
endif


4. code_complete.vim
这个插件之间复制到/usr/share/vim/vim72/plugin中就可以了。

文件:code_complete.tar.gz
大小:2KB
下载:下载

5. taglist.vim
这个插件之间复制到/usr/share/vim/vim72/plugin中就可以了。
文件:taglist.tar.gz
大小:30KB
下载:下载
这个插件是用于显示函数列表:
在vim中执行:Tlist



6. omnicppcomplete
这个插件装起来有点复杂:
将omni文件夹拷贝到/usr/share/vim/vim72/autoload中,
将ftplugin文件夹里的两个文件拷贝到/usr/share/vim/vim72/ftplugin中。
以上复制注意权限文件,我在设置的时候,就遇到插件功能用不了。


文件:omnicppcomplete-0.41.zip
大小:37KB
下载:下载

code_complete.vimomnicppcomplete使用于自动补全:
方法:
1. CTRL + n,列出变量函数等列表。
2. 当输入"."或"->"时,可以自动列出结构提成员。
3. 当一个函数写完时,写完"(",后,按TAB键,会列出函数的参数类型。
注意:
1. 在/usr/include下创建一个tags文件,需要在.vimrc配置文件中,添加这个tags路径,方便库函数,系统调用,各种变量等的自动补全。
set tags+=/usr/include/tags


7. autocomplpop.vim

文件:autocomplpop.tar.gz
大小:3KB
下载:下载

这个插件之间复制到/usr/share/vim/vim72/plugin中就可以了。
这个之前使用CTRL+n,显示补全列表,使用这个插件后,会自动显示补全列表。


8. vim多窗口

vim 从 vim7 开始加入了多标签切换的功能, 相当于多窗口.之前的版本虽然也有多文件编辑功能, 但是总之不如这个方便啦。
用法
:tabnew [++opt选项] [+cmd] 文件建立对指定文件新的tab
:tabc       关闭当前的tab
:tabo       关闭所有其他的tab
:tabs       查看所有打开的tab
:tabp      前一个
:tabn      后一个
标准模式下:
gt , gT 可以直接在tab之间切换。

阅读(1317) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

xuxiyao88882011-01-27 10:40:32

filetype plugin indent on

xuxiyao88882011-01-22 15:47:05

python plugin: pydiction.py

chinaunix网友2010-11-30 00:23:16

相应键映射 nmap :tabprevious nmap :tabnext nmap :tabnext