上一篇简要介绍了 Vim 使用方法,以及——插件。
Vim 也算是与时俱进的编辑器了,最近的 Vim 还增加了 Python 支持, 于是也出现了各种各样的神插件。本篇介绍 Vim 插件的管理方法, 这是 Vim 成为最终兵器的第一步,当然也是最重要的一步, 各种各样的插件将在今后的专栏文章中陆续登场(锵锵锵~
核心装备 Pathogen
成为最终兵器的代价——病菌(pathogen)感染(infect)。
Pathogen 现在大概是 Vim 用户的标准配置了,使用 Pathogen 可以方便高效地管理 Vim 插件,骨瘦如柴的 Vim 被 pathogen 给 infect 了以后拥有了强大的超能力, 成为 super hero (小剧场)
一个典型的 .vim
目录是这样配置的(Vim 的配置和插件都位于 $HOME/.vim
)
.vim
|-- syntax
| |-- plugin-a-syntax-def
| |-- plugin-b-syntax-def
| | ...
| `-- plugin-x-syntax-def
|-- ftdetect
| |-- plugin-b-detect
| `-- plugin-c-detect
|-- autoload
| |-- plugin-c
| `-- plugin-d
| ...
`-- vimrc
类似 Linux 的软件包管理风格,某个脚本对 Vim 的不同配置需要分布到对应的 Vim 配置目录中(而这些分散的脚本来自同一个插件)
一个使用 pathogen 管理的 .vim
目录是这样的
.vim
|-- bundle
| |-- plugin-a
| | |-- syntax
| | `-- ftdetect
| |-- plugin-b
| | |-- ftdetect
| | `-- autoload
| | ...
| `-- plugin-x
|-- ftdetect*
|-- autoload*
| ...
`-- vimrc
这样,ftdetect
和 autoload
等 Vim 寻找配置的地方
就可以只用来保存用户的自定义的 Vim 脚本,而所有的 Vim 插件脚本都管理在
自己专属的目录结构内。极大方便了插件脚本的管理,提高了人民群众的生产热情!
Pathogen 的安装需要把 pathogen.vim
放到 .vim/autoload
目录下(详见
README 文件),
为了保持管理风格一致,也可以把 pathogen 仓库放到 bundle
目录下,
在 vimrc 文件中加上 runtime bundle/vim-pathogen/autoload/pathogen.vim
启用 Pathogen。
Pathogen 安装成功之后在 vimrc 中加上 call pathogen#infect()
就可以感染(加载)其他的插件了。
话说回来,tpope 大大实在是业界良心,提供了各种方便的 Vim 插件。
疯狂科学家 Git
要知道,Git 是“饭桶”的意思哦(你超重了么?)
其实 Pathogen 已经够方便了,只是……
没错,其实江湖上还流传了一种 Crazy Way —— 使用 Git 作为 Vim 插件的包管理器!
使用 git submodule
命令安装/升级插件!
比如:
安装 JSHint 插件
git submodule add https://github.com/walm/jshint.vim.git bundle/jshint.vim
安装 JavaScript 高亮插件
git submodule add https://github.com/pangloss/vim-javascript.git bundle/vim-javascript
安装 xoria256 颜色主题
git submodule add https://github.com/vim-scripts/xoria256.vim.git bundle/xoria256.vim
安装 Markdown 高亮插件
git submodule add https://github.com/hallison/vim-markdown.git bundle/vim-markdown
安装完插件之后记得提交更改(就像 git 仓库一样,话说回来……这就是 git 仓库嘛), 同时,你还可以(也应该)使用 git 来追踪记录 vimrc 文件的更改。
那么,到了需要升级的时候使用 git submodule update
就可以将已经安装的插件
一口气全部升级了(YEAH!
Git 1.8.3 以后可以使用 git submodule deinit bundle/<plugin>
和 git rm bundle/<plugin>
删除插件了(原来的 Git 要删除 Submodule 还是很麻烦的呢~
参考)
银河系漫游 GitHub
没错……智商爆表的你一定已经想到了,把你的仓库 Push 到 GitHub 上! 你得到了一份全宇宙漫游的 Vim 配置。麻麻再也不担心我重装电脑(笑
顺便贴上自己的 Vimrc 仓库 如何同步配置?看仓库的 Readme 你就知道了
最后
距离上一次投稿也过去了三个月了……
祝~大家新年快乐~ニャンパース~