vim_cheat_sheet_for_programmers.png
常言道:工欲善其事,必先利其器 ,作为一个程序员,一个常用的工具就是 编辑器 ,我选择一个能极大提高自己开发效率的编辑器 vim (有些人可能选择 emacs )。而 vim 编辑器方面具有以下几种特性:
配置如果你需要配置vim,只需在Home目录创建一个 ~/.vimrc 文件即可以配置vim了,可以参考我的 vimrc 配置文件。由于我需要安装插件,并且将需要安装的插件列表分离到另外一个文件 ~/.vimrc.bundles ,这个文件也是存放在Home目录,文件内容可以参考 vimrc.bundles 。若想加载 ~/.vimrc.bundles 文件,必须在 ~/.vimrc 文件加入以下代码片段:
if filereadable(expand("~/.vimrc.bundles"))source ~/.vimrc.bundlesendif插件插件管理工具vunblevundle 是vim的插件管理工具,它能够搜索、安装、更新和移除vim插件,再也不需要手动管理vim插件。
安装插件bundle分为三类,比较常用就是 第二种 :
Bundle Type.png
将安装的插件在 ~/.vimrc 配置,但是我是将插件配置信息放在 ~/.vimrc.bundles :
" Define bundles via Github reposBundle 'christoomey/vim-run-interactive'Bundle 'Valloric/YouCompleteMe'Bundle 'croaky/vim-colors-github'Bundle 'danro/rename.vim'Bundle 'majutsushi/tagbar'Bundle 'kchmck/vim-coffee-script'Bundle 'kien/ctrlp.vim'Bundle 'pbrisbin/vim-mkdir'Bundle 'scrooloose/syntastic'Bundle 'slim-template/vim-slim'Bundle 'thoughtbot/vim-rspec'Bundle 'tpope/vim-bundler'Bundle 'tpope/vim-endwise'Bundle 'tpope/vim-fugitive'Bundle 'tpope/vim-rails'Bundle 'tpope/vim-surround'Bundle 'vim-ruby/vim-ruby'Bundle 'vim-scripts/ctags.vim'Bundle 'vim-scripts/matchit.zip'Bundle 'vim-scripts/tComment'Bundle "mattn/emmet-vim"Bundle "scrooloose/nerdtree"Bundle "Lokaltog/vim-powerline"Bundle "godlygeek/tabular"Bundle "msanders/snipmate.vim"Bundle "jelera/vim-javascript-syntax"Bundle "altercation/vim-colors-solarized"Bundle "othree/html5.vim"Bundle "xsbeats/vim-blade"Bundle "Raimondi/delimitMate"Bundle "groenewege/vim-less"Bundle "evanmiller/nginx-vim-syntax"Bundle "Lokaltog/vim-easymotion"Bundle "tomasr/molokai"Bundle "klen/python-mode"打开vim,运行 :BundleInstall 或在shell中直接运行 vim +BundleInstall +qall
Install Bundle.png
常用插件NERD Tree
NERD Tree 是一个树形目录插件,方便浏览当前目录有哪些目录和文件。
NERD Tree Plugin Bundle.png
我在 ~/.vimrc 文件中配置NERD Tree,设置一个启用或禁用 NERD Tree 的键映射
nmap <F5> :NERDTreeToggle<cr>NERD Tree Configuration.png
所以你只需按 F5 键就能启用或禁用 NERD Tree ,NERD Tree提供一些常用快捷键来操作目录:
YouCompleteMe & syntastic
YouCompleteMe 是一个快速、支持模糊匹配的vim代码补全引擎。由于它是基于 Clang 引擎为C/C++/Objective-C提供代码提示,也支持其他语言代码提示的引擎,例如基于 Jedi 的Python代码补全,基于 OmniSharp 的C#代码补全,基于 Gocode 的Go代码补全。
YouCompleteMe.gif
只需敲入代码,就自动提示想输入的代码列表,你可以选择其中一个,然后 tab 键就可以补全代码。
YouCompleteMe已经集成了 Syntastic ,所以一旦你编写代码时语法错误,就会有红色错误提示
syntastic.pngctrlp
不知道你有没有遇到这样一种情况:在大规模的工程项目中,目录和文件嵌套比较深,打开一个文件要逐个逐个进入目录才能打开,这样的话,比较耗时间和效率很低, ctrlp 重新定义打目录和文件方式,特别适用于大规模项目文件的浏览。
启用ctrlp基本使用演示视频
具体如何使用ctrlp,请参考happypetterd的 演示视频 ,讲解非常清楚。
Vim Powerline
Vim Powerline 是一个显示vim状态栏插件,它能够显示vim模式、操作环境、编码格式、行数/列数等信息
Vim Powerline.png
Molokai
Molokai 是vim颜色主题,效果如下
Molokai Color Scheme for Vim.png
常用命令对于入门vim基本命令可以参考 简明 Vim 练级攻略 ,以下是本人关于 移动光标 、 插入/修改 、 删除 、 复制 、 粘帖 、 撤销和恢复 等常用命令
扩展阅读