vim 配置&插件分享

2019-04-13 21:56发布

  转载自 http://a.vifix.us/blog/vim-%E9%85%8D%E7%BD%AE%E6%8F%92%E4%BB%B6%E5%88%86%E4%BA%AB 此文在vim中完成,全文较长,请耐心阅读。自从去年开始尝试使用神器vim,经过数月使用,我对编辑器有了新的认识。观念可以说是发生了翻天覆地的变化。
即以此文献给在vim学习中的人们。
编译及配置好的windowsvim包,linux版的配置包,vim hacking等资料(见此链接):
http://cid-5f8d83c1437ef717.office.live.com/browse.aspx/vim
vim 配置&插件分享 Date: 2010/07/23
version: 0.7
0. 引言
俗话说,工欲善其事,必先利其器。
一个好的顺手的工具,可以大大的提供工作的效率。可以让生活变得更美好~
目前在linux下做开发,最常用最强大的两种编辑器为vimemacs vim称得上是编辑器之神,几乎所有的平台都有提供,简单快捷。
emacs是神用的编辑器,emacs更像是一个操作系统
(据说emacs还提供了煮咖啡的接口
。关于emacs有一个笑话,使用emacs的人只需要longin -> run emacs -> logout即可。
vi还是emacs更好的争论,已经持续了几十年,而且也将继续进行下去。我们无意争论这
些,适合自己的才是最好的。
有很多朋友都在用vim,也经常听到有人抱怨"vim怎么那么难用",不可否认vim确实
有一个比较陡峭的学习曲线,但是一旦掌握,将会受益终身。不过有很多人都是在用默
认的配置,或者在使用vi,这样不能说是错,但是效率会低很多~要高效率的使用工具,
必须对它进行很好的调整。今天跟大家分享一下我的vim的配置及常用插件。
1. 安装vim
1.1 下载vim
vim
的最新版可以从官方网站
http://www.vim.org 下载到,目前最新版为7.2。不过
如果你有兴趣,推荐下载源码编译,目前svn上的源码已经patch到了7.2.4467.3已经
进入beta阶段。
1.2 windows下安装vim
windows
下安装vim只需要执行安装程序,选择安装路径,然后一路next即可完成。
windows
下安装vim完成后通常会有如下目录结构:
E:Vimvim72 vim
主程序,及其默认插件的安装目录
E:Vimvimfiles
自行安装插件的目录
E:Vim\_vimrc vim
配置文件
1.3 Linux下安装vim
通常linux的发行版都会自带编译好的vim在内,不过这个通常版本会比较老,或者是一个
small
版的,所以我们需要从源码编译最新的huge
hugevim编译时的一个参数,
huge版会包含最多的程序特性,tiny版为最少)
1.3.1 下载
通过svn下载vim源码:
cd ~/
svn co
https://vim.svn.sourceforge.net/svnroot/vim/vim7
1.3.2 编译 & 安装
windows
下编译
可以使用vc2008也可以使用MinGW或者gcc等都可以。
VC2008
,打开cmd,进入源码所在的目录,执行src目录下的msvc2008.bat
然后,分别执行
编译gvim
nmake -f Make_msvc.mak FEATRUES=HUGE GUI=YES OLE=YES
编译vim
nmake -f Make_msvc.mak FEATURES=HUGE GUI=NO
其他编译器基本一致,只需要替换对应的指令及makefile即可。
linux下编译
cd ~/vim7
./configure –with-features=huge
make
make install
1.3.3 创建配置文件
将现有的vim配置文件复制到 ~/ 下,或者新建配置文件。
cp dest_path/.vimrc ~/.vimrc
or
touch ~/.vimrc
1.3.4 创建插件目录
mkdir ~/.vim
1.3.5 懒人的方法
直接将我提供的压缩包解压到 ~/ 下即可
cd ~/
tar zxvf vimconfig.zip
1.4 vim使用
如果你是vim新手,推荐先花几十分钟时间看一遍vimtutor,了解基本的操作。
windows
下执行对应的快捷方式。
linux
下需要执行vimtutor命令。
2. vim配置文件简介
2.1 vimrc简介
.vimrc
(linux)/_vimrc(windows),这个文件是vim的标准配置文件名,实质上就是一堆
vim
的脚本,命令的集合。这里我只介绍关键的一些设定,更多的设定可以看vimrc
里面每项设定都有注释。
2.1.1 set nocompatible
关闭vi兼容模式,只有关闭了兼容模式之后,vim添加的那些功能及设定才可以生效。
2.1.2 filetype plugin indent on
打开文件类型,插件及缩进功能。
2.1.3 leader
vim
定义了一个按键,称为leader键,用于和其他按键组合,默认为
"",为了方便按我把
map到了
","上。leader键在定义快捷键的时候会写为,此时只要按逗号就可以
了。
2.1.4 Fast Saving
vim
默认保存文件需要使用:write或简写为:w,为了方便保存文件,我添加了一个
快捷键来保存
(随时保存文件是一个好习惯)
nmap
w :w!
在正常模式下leader键,然后按w即可。
2.1.5 syntax enable
打开语法高亮,设定此项后,对于不同的关键字,变量等就会以不同的颜 {MOD}显示,在
很多编辑器中都有此功能。
2.1.6 字体设置
此项的设置方法见vimrc中第49-54
2.1.7 colorscheme
此命令用来设置vim的配 {MOD},在vim官网中大概有上千种不同的配 {MOD},下载后放入
~/.vim/color
目录中,然后使用colorscheme命令来指定对应的配 {MOD}即可。比如我要使用
自带的desert,只需在vimrc添加如下命令,或者在运行时动态指定。
:colorscheme desert
vimrc文件第56-66行。 2.1.8 set cursorline
高亮光标所在行,如果你不喜欢这个特性,注释配置文件中的此句即可。
2.1.9 显示tab及行尾空格
set listchars=tab:>-,trail:-
set list
tab符显示为>—,并将行尾的空格显示为-。如果你不喜欢这个特性,注释这两句
即可。
2.1.10 移除行尾空格
F2移除行尾空格,美化代码
map
:%s/s*$//g:noh"
2.1.11 显示/隐藏工具栏和菜单栏(仅对于gvim有效)
"
默认不显示工具栏和菜单栏
set guioptions-=m
set guioptions-=T
F显示/隐藏工具栏和菜单栏
map
:if &guioptions =~# 'T'
set guioptions-=T

set guioptions-=m

else

set guioptions+=T

set guioptions+=m

endif
2.2 vim帮助
vim
的帮助功能非常好用,任何命令的用法都可以打:help xx 进行查询。
vim的帮助文件格式为txt,保存在doc目录下,使用:help xx 调用之后可以按
ctrl+]
进行跳转,ctrl+t返回。
因为帮助的跳转功能需要用到特殊的tag,而此tags需要在vim 中使用
:helptags ~/.vim/doc
命令生成,每当添加或删除了帮助文件之后都需要进行此操作。
3. 插件简介
以下为我所安装的一些插件,为了更便于理解,我为每个插件录制了一段演示视频。
3.1 GetLatestVimScript
介绍自定义插件之前,先要介绍一个特殊的文件GetLatestVimScripts.dat,位于
~/.vim/GetLatest/
(linux)
或者
$vimvimfilesGetLatest
(windows)
目录下。
此文件为vim自带插件GetLatestVimScripts的配置文件,用来更新插件之用,格式如下:
ScriptID SourceID Filename
————————–
31 7218 :AutoInstall: a.vim
前两行为必须内容,第三行第一个参数是此插件在 www.vim.org 上对应的ID号,第二个
参数为你当前使用的版本号,第三个参数表示此脚本会在下载完成后自动安装(
windows
下无效),第四个为插件名。
执行:GVLS:GetLatestVimScripts命令即可自动开始下载插件。
更详细帮助,可以用:help GeLatestVimScript命令查询。
3.2 a
用于在.h.c/.cpp之间快速切换,在normal模式下输入命令:A
http://www.vim.org/scripts/script.php?script_id=31 3.3 drawit
这是一个很有趣的插件,可以很方便的使用ascii码绘图,使用:help drawit 查询
drawit
的用法。
di为开始绘图,ds为停止绘图。
http://www.vim.org/scripts/script.php?script_id=40 3.4 bufexplorer
vim
中可以同时打开多个文件,可以在不同的tab中打开,也可以在同一个tab中分割或者
同一个tab中后台打开,虽然vim本身提供了后台切换的命令,不过比较繁琐,要很方便的
进行切换就需要用到此插件了。此插件默认的快捷键为
be
http://www.vim.org/scripts/script.php?script_id=42 3.5 TeTrIs
这个插件不解释。。看到名字很多人其实就懂了
(哥你懂的),快捷键是te
http://www.vim.org/scripts/script.php?script_id=172 3.6 cvim
这个插件是c/cpp的插件,把vim变成c/c++IDE,在gvim中会多出一个菜单,在vim中就
只能用快捷键来进行对应的操作了。相关的快捷键较多,可以查看帮助获得更多的信息。
:help csupport
常用快捷键有以下几个:
r
运行
c
编译
l
连接
m make
a
设定运行的参数
http://www.vim.org/scripts/script.php?script_id=213 3.7 taglist
此插件的作用是分割出一个窗口用来现在当前打开的文件的tag:Tlist即可打开tag窗口
还有其他:Tlistupdate, :tlisttoggle等命令,详见帮助:help taglist.txt
顺带一提~此插件我在vimrc中映射的快捷键为
t
http://www.vim.org/scripts/script.php?script_id=273 3.8 bash-support
此插件与cvim一样,都是功能增强类的插件,不过这个插件从名字就可以看出,是用来支
bash脚本的,做bash脚本开发的人可以用到,其他人其实也就没什么必要了,完全可以
删掉对应的文件。
http://www.vim.org/scripts/script.php?script_id=365 3.9 mru
这个插件用来记录最近打开过的文件,gvim中增加了一个菜单列表,在vim中需要使用命
令查看:MRU:Mru
http://www.vim.org/scripts/script.php?script_id=521 3.10 NERD_commenter
这个插件是用来添加注释的。可以用来注释掉一行或若干行,快捷键为
cc 添加注释
cu 取消注释
http://www.vim.org/scripts/script.php?script_id=1218 3.11 yankring
vim
的剪贴板支持多重记录,也就是说凡是你复制过的文字都已经被收集了,在以后可以
直接从剪贴板中选取。不过同样自带的功能不是很方便,所以就有了这个插件,此插件的
常用命令如下:
:YRShow
打开yank窗口
:YRClear
清除所有的记录
更多命令请查看帮助:help yankring
顺带一提~ :YRShowvimrc中映射的快捷键为
y
http://www.vim.org/scripts/script.php?script_id=1234 3.12 mark
这个插件呢~如其名mark,呃还真不好解释,直接看视频吧~
常用的快捷键有
m 标记某symbol
n 清除某symbolmark
# 向上搜索同 {MOD}的mark
* 向下搜索同 {MOD}的mark
http://www.vim.org/scripts/script.php?script_id=1238 3.13 FencView
这个插件用于检测文件的编码
unicodeutf8gbkeuc-jp等等),在打开一个文件的
时候会自动进行编码检测,有些文件有可能自动检测失败,此时只要执行
:FencAutoDetect
来重新侦测即可。
PS
:此插件需要iconv支持,windows下需要自行下载iconv.dll放入vim.exe所在目录,
linux
一般都自带了iconv,所以不需要进行下载。
http://www.vim.org/scripts/script.php?script_id=1708 3.14 echofunc
此插件用来提示c/c++函数的原型,在写函数调用的时候比较有用。
当输入到xx(的时候,就会在状态栏提示对应的函数原型。
当有多个原生存在的时候,按ALT+, ALT-进行切换。
此插件需要生成对应tags文件,在生成tags时加上–fileds=+lS
ctags -R –fields=+lS
顺带一提~ vimrc中生成tags文件的快捷键为F12
http://www.vim.org/scripts/script.php?script_id=1735 3.15 vim-autocomplpop
这个插件是用来自动弹出补全列表,也就是传说中的自动补全了,不用解释~ 也没有啥快
捷键啥的,just typing~
http://www.vim.org/scripts/script.php?script_id=1879 3.16 EasyGrep
这个插件,是对vimgrep命令进行了封装,如果没有此插件,要进行grep搜索,需要键
:vimgrep xx ** 然后在搜索完成后再键入:cope打开Quickfix列表。有了这个插件只需
将光标移动到要搜索的单词上,然后
vv即可~ 也可以vo来设定EasyGrep
的参数。更多的命令及快捷键,去看帮助吧~
http://www.vim.org/scripts/script.php?script_id=2438 3.17 vimim
这个插件呢。。是利用vim的智能补全功能实现中文输入法
(拼音,双拼,五笔,及各种
形码),在插入模式下按CTRL+切换到中文模式,然后输入对应的字即可。
vimim
在没有本地词库的情况下会进行云输入,连接搜狗,QQ等云输入法的在线词库,云
输入对整句组词等支持较好,不过对网络的依赖也比较大。
当然也可以自己下载本地的词库,速度更快,不受网络影响,不过组句什么的就要比在
线的云输入法差很多了。
这篇文章有很大一部分就是使用vimim完成的~
vimim我就不录视频了,官方提供的三个视频要比我做的好的多~ vimim官方网址
http://vimim.googlecode.com/svn/vimim/vimim.html
3.18 sinpMate
这是一个非常传奇的插件,代码片段完成,支持c/c++pythonjavascripthtml,perl
php等语言,并且可以通过自定义来实现更多功能。
此插件使用非常简单,只要输入某些可以完成的提示符,然后按Tab键即可。
http://www.vim.org/scripts/script.php?script_id=2540 3.19 txtbrowser
这个插件有两个作用:
1) 用来按照固定格式高亮txt文件中的关键字
2) 将固定格式的标题输出到taglist中显示
不需要啥快捷键,在vim启动时自动加载只要是固定格式即可。
http://www.vim.org/scripts/script.php?script_id=2899 3.20 histwin
vim7
之后提供了一个非常有用的特性——undo-branch,不过同样自带的并不是很
好用,所以我们需要使用这个插件。这个插件非常易用,只需要输入:UB即可看到
undolist
的内容。并可以对不同的branch进行对比,或者回到以前的某个修改版,不过
undo list
的缺点是在vim关闭之后就失效了,它只能记录vim在运行时的修改记录。
http://www.vim.org/scripts/script.php?script_id=2932 3.21 zencoding
此插件用于快速编辑html文件,和snipMate插件比较类似,不过功能更强大一些。
默认激活补全