最终兵器的制造方法(管理 Vim 插件)
发布在编辑器2014年1月8日view:10176
在文章任何区域双击击即可给文章添加【评注】!浮到评注点上可以查看详情。

上一篇简要介绍了 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

这样,ftdetectautoload 等 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 你就知道了

最后

距离上一次投稿也过去了三个月了……

祝~大家新年快乐~ニャンパース~

评论
发表评论
暂无评论
WRITTEN BY
羽音篠之
People die if they do
TA的新浪微博
PUBLISHED IN
编辑器

工欲善其事,必先利其器

我的收藏