Vim
我和Vim
有一段时间打算一些*nux下的应用程序来熟悉Linux的操作,并初步定位编辑器。我对编辑器的依赖不高(大东西都用IDE),而且编辑器这东西也算是挺常用的一个东西。*nux下两大主流编辑器,Emacs和Vim。听说Emacs太过BT,自我感觉还没BT到这么一个程度,所以就Vim了。
Vim初用起来是非常的受虐,实在是习惯不了在编辑模式和命令模式间切换。在看完Vim的教程后还是接收不了。不过好在Vim还有点亮点,可以用高亮标记出所有匹配的关键字。至尊宝的名言,“吐啊吐就习惯了”。大概被虐了两周到一个月的时间我终于开始习惯了。
现在的Vim对我来说确实是一个难一替代的编辑器。另外,就是用vim来写python。当然,如果要写java的话,我还是得用Eclipse等IDE。在我看来对python这类的脚步语言,IDE的智能化程度有限,用vim就已经足够了。
我的Vim配置文件
已经将我的vim配置文件连同插件一起托管到github上,感兴趣的同学可以去看看 vicalloy's vim。
概览
- 目录树列表使用NERDTree,快捷键为tt
- 类似TextMate的代码模板功能使用snippetsEmu
- python语法检测使用pyflakes
- html代码用的是ZenCoding?
- 函数列表用的是Tag List,快捷键为Tt
- Tab相关的快捷键为:Tl切换到右Tab,Th切换到左Tab,Tn切换到新Tab,
我的Vim配色方案
看我的配置文件就知道了,我用的是Vim自带的desert。用久了后我真的是非常喜欢这个配色方案。
Vim的一些常用操作
其实对以普通应用Vim的常用操作也就那么几个,那天有空过来补充。
字体
DejaVu一个开源字体,据说是最适合编程的字体。至于是否是“最”就仁者见仁智者见智了,不过确实看的还顺眼。
常用Vim插件
EXUBERANT CTAGS
有人说Vim自带的ctags比较弱,这个我就不太清楚了。反正我每次都会去down这个东西。 官网
用法
- 将ctags.exe丢到Vim的可执行目录。
- 启用
let Tlist_Ctags_Cmd = 'ctags.exe' - 让vim自动搜索父目录的tags
set tags+=tags;/ - tn tp 如果有多处声明用这个跳转
Tag List
有了它,我们才能够在 VIM 中查看一个文件中包含的函数列表,或是一个类包含的方法列表。但事实上我在用IDE的时候就不太用函数列表更能,所以我不太用。但这也算是一个必备更能了。偶尔要用的时候如果没有也是挺郁闷的。 官网
用法
- 弹出列表
Tlist - 让当前不被编辑的文件的方法列表自动折叠起来
let Tlist_File_Fold_Auto_Close=1 - 把方法列表放在屏幕的右侧
let Tlist_Use_Right_Window=1
bufexplorer
以前是因为Win Manager要用到才安的,但后来发现确实是个不错的东西。 官网 用法
- 使用\be打开vim的缓冲区
Win Manager
将Vim变成一个类似IDE的东西,左边一个文件浏览器,右边是编辑文件。这东西我以前挺常用的,不过不能和资源管理一样以树的形式显示目录还是不太爽。现在已经被我用NERDTree替换了。[ 官网]
用法
- 启用
WMToggle - 快捷键设置
map <c-w><c-t> :WMToggle<cr>
NERDTree
最近新发现的东西。可以以目录树的形式显示目录结构,而且支持在新tab打开文件。对我来说这东西是在是太棒了。我一直都不太习惯命令行模式的菜单结构,要进一个目录非得进N遍目录。[ 官网]
用法
- 启用
NERDTree - 快捷键设置
nnoremap tt :NERDTree<CR>
FencView
国人写的自动识别文件编码的插件,我还给这个插件提过bug。[ 官网]
eclim
将Eclipse的功能集成到vim的插件。Eclipse的集成对写Java的帮助大些,对于python这样的脚本语言就似乎用处不大了。不过这个插件本身带了大量优秀的脚本,有些脚本即使是在不和eclipse集成也可以正常工作。[ 官网]
详细些的说明见我的博客[ 推荐一个vim插件eclim]。
- Vim\vimfiles\eclim\autoload\eclim\project\util.vim
- function! eclim#project#util#IsCurrentFileInProject? (...) 最开头增加return 0
- \plugin\eclim.vim
- 增加 let g:EclimEclipseHome = ""
pyflakes
VIM在安装eclim后会使用pyflakes进行python的语法检查,由于pyflakes提供的windows下的shell有些问题,需要做些调整。 新建一个bat文件pyflakes.bat
- python %~dp0pyflakes_.py %*
snippetsEmu
实现类似TextMate的代码模板。就我的使用来看,其方便性远比不上Eclipse等IDE。[ 官网]
matchit
使得 % 能够配对标记 <script> <?php 等等。书写HTML时,检查DIV是否匹配时还比较方便。[ 官网]
ZenCoding.vim
Zen Coding简单的说就是用css来写html,至于具体怎么用还是去找些Zen Coding的文章来看吧。简单的试用后,感觉不错。[ 官网]
文档
vimcdoc
[ vimcdoc] Vim官方文档的中文版
