从emacs切换回vim
以前在博客园时,用emacs org-mode 写博客,并且写了一系列《emacs 学习笔记》。
emacs 和 org-mode 的强大毋庸置疑,但是经过1年多的使用,还是有些不适应:
小手指很受伤。
过于依赖配置。
由于我的工作要经常登录到linux服务器进行操作,这就带来了一个问题:
服务器上的emacs在不配置的情况下几乎无法使用,但是在服务器上使用vim,又不符合手指中记忆的快捷键。emacs有点重,比如不得不使用的ecb,cedet,jdee等等,都是大块头。
我还没有做好准备去掌握Erlang语言。但是对于vim,我可以使用我喜欢的python去写插件。
经过艰难的取舍,还是决定在个人工作领域也回到vim。保护手指,保护大脑。
插件管理器(Vundle)
重新关注vim后,首先发现了一系列插件管理器。主要有:
经过简单的比较,我选择了Vundle。这里不想对上述插件管理器做一个完整的对比,只是简单说一个我看中的Vundle的特点:
- 只需要维护需要的插件列表就可以统一安装,同样,复制环境时也只需要复制一个文件(.vimrc)
- 支持git更新
- 支持插件搜索功能
- 自动管理插件依赖关系
安装Vundle
安装Vundle只需要一条命令:
$git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
如果你使用git管理vim配置,还可以使用git submodule:
git submodule add https://github.com/gmarik/vundle.git vim/bundle/vundle
会在.gitmodule中增加如下配置:
[submodule "vim/bundle/vundle"]
path = vim/bundle/vundle
url = https://github.com/gmarik/vundle.git
之后运行git命令:
git submodule init
git submodule update
即可。
配置插件
在.vimrc中配置需要的插件,作者给出了一个例子:
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" My Bundles here:
"
" original repos on github
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
" vim-scripts repos
Bundle 'L9'
Bundle 'FuzzyFinder'
" non github repos
Bundle 'git://git.wincent.com/command-t.git'
" ...
注意:
- 对于重名的Vim插件,需要在插件后面加上作者的姓氏, 比如 Bundle ‘Javascript-Indentation’
- 对于插件名称中包含空格和斜杠的情况, 需要将空格和斜杠替换为 -
安装插件
只需要在启动vim后,运行命令:
:BundleInstall
Vbundle就会自动安装或更新前面配置好的插件
其他操作
使用帮助:
:h vundle
查看插件清单:
:BundleList
搜索插件:
:BundleSearch markdown
清理不用的插件:
:BundleClean
#或者
:BundleClean markdown
必备插件(TODO)
下面是我使用的一些vim插件,直接在.vimrc中配置。可以在 github 查看。
编辑器增强
NERDTree(Bundle ‘The-NERD-tree’)可以在窗口左侧打开文件浏览器
Bundle ‘vim-orgmode’
Bundle ‘winmanager’
Bundle ‘SuperTab’
语法高亮
- Markdown(Bundle ‘Markdown’) markdown文件的语法高亮
vim基本操作
以前整理过一个 vim 常用命令备忘, 如下:
别人的一个更详细的版本:
如果已经有一定的基础,还可以使用vim cheat sheet。下面的图分别可以用于打印版或者桌面背景。