最近Xcode的脑残编辑功能已经彻底让我忍不了了。所以我决定重拾Vim,并且把Vim作为今后主要的C++开发工具。
关于Vim的使用,最近也在写一篇详尽记录Vim使用经验与技巧的文章。只是这个坑实在太大,这几天折腾Vim导致我自己的开发进度也拖了很多,这个坑还是得慢慢填。
不过最近思如泉涌,而且已经把Vundle折腾好了,所以决定还是先写一篇关于Vundle的技巧,作为后面大坑的前戏吧。
关于Vundle
这是Vundle的主页。
Vundle是现在使用Vim必备的一个插件管理插件,他可以自动更新、下载、管理所有的Vim插件。有了Vundle,只需要把常用插件写在.vimrc文件中,其他的事情都不用管了。不管是下载还是更新还是删除,只需要执行一个命令,就可以自动搞定,省心又省力,懒人与强迫症的最爱。
正是由于Vundle的出现大大简化了插件配置的过程,加上程序员们最爱的Github,双剑合璧,就能完成一项Vimer梦寐以求的功能:不管在哪里使用电脑,都能迅速的将自己的最常用Vim配置复制过去,立刻让自己在最熟悉的环境下工作。
Vundle的安装与配置
安装
直接使用git将Vundle下载到本地(需要先安装git,Mac系统自带)
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
启用
打开~/.vimrc文件,添加如下代码:
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
插件的配置(安装其他插件)
使用Vundle安装其他插件非常容易,只需要在.vimrc文件中加入诸如 Bundle 'plugin name'
的代码,然后运行 :Bundle Install
更新即可。
注意,Vundle会自动从Vim Scripts和Github两个网站进行下载。如插件存在Vim Scripts上,配置时直接填写插件名即可,如存在Github上,需要在前面加上repository的名字。如 'repository name/plugin name'
。
例如,我的配置的插件列表,只需要加入如下代码即可:
Bundle 'The-NERD-tree' "目录树显示插件
Bundle 'The-NERD-Commenter' "快速注释插件
Bundle 'ctrlp.vim' "文件查找插件
Bundle 'AutoClose' "自动添加匹配的右括号
Bundle 'Valloric/YouCompleteMe' "目前最好用的自动补全插件
Bundle 'honza/vim-snippets' "代码片段自动生成插件
Bundle 'Lokaltog/vim-easymotion' "快速跳转/查找字符插件
常用命令
:BundleInstall
:BundleInstall!
:BundleClean
:BundleClean!
:BundleUpdate
以上命令的意思都很容易理解,主要用于修改配置文件后的安装与清理。
Vundle + Github 打造自己的云Vim
题文已经说了,我们的最终目的是辛苦配置一番之后,在今后使用时,能够快速同步与部署我们的配置,不用再一遍遍的在不同的机器上配置。
至繁到至简,我想这也是所有Geek一直追求的目的,看似折腾,实际上却是为了将来的方便与简单,懒人改变世界,哈哈。
下面就一步步来说明如何完成Vundle + Github的云同步。
在自己的github上创建相关repository
这一步不过多赘述了,用过github的人都会。不明白的同学可以看我写的在Mac上使用git与Github。
配置本地的Vim
我们希望将所有的配置文件在一层目录管理起来,而由于默认的 ~/.vimrc 文件在用户根目录下,不方便用git管理。所以我们想办法使用软连接巧妙地将 ~/.vimrc 移动到 ~/.vim/目录下。
cd ~/.vim
touch vimrc #建立vimrc文件保存vim配置文件,在 vimrc文件下编辑自己的配置
ln -s ~/.vim/vimrc ~/.vimrc #通过软连接将 ~/.vim/ 目录下vimrc文件映射到 ~/.vimrc
由于Vundle已经可以自动下载插件了,所以我们没必要再把本地的插件目录放到github了。所以编写 .gitignor 文件禁止上传 /bundle目录。 $ touch ~/.vim/.gitignore
.gitignor 文件的内容如下:
bundle/*
.DS_Store
*/.DS_Store
*.bak
*.bk
将本地配置上传至Github
这一步对于用过Github的人来说也很简单了,直接贴命令。
$ cd ~/.vim
$ git add .
$ git commit -m"Initial commit"
$ git remote add remoteName git@github.com:your-github-id/your-repository-id.git
$ git pull remoteName master
$ git push remoteName master
编写脚本,实现完全自动化
完成了上一步之后,实际我们已经完成了通过github来云同步我们配置的目的。但是还不够傻瓜化,我们再写一个shell脚本实现最简单化好啦。 $ touch ~/.vim/init my vim.sh
下面是脚本内容:
#!/bin/sh
echo "Install vim configurations..."
echo "cd to .vim directory"
cd ~/.vim
echo "backup origin vimrc..."
if [ -f "$HOME/.vimrc" ]; then
mv ~/.vimrc ~/.vimrc.`date +%Y%m%d`
fi
echo "create new vimrc..."
ln -s ~/.vim/vimrc ~/.vimrc
git submodule init
git submodule update
vi +BundleInstall! +qall
如何使用
好了,我们已经大功告成!
在使用时,只需要两步就能完成我们的自动同步工作。
git clone https://github.com/your-github-id/your-repository-id.git ~/.vim
cd ~/.vim
./init my vim.sh
本文由金同尧原创,首发于JinTongYao’s blog,转载请注明出处。