站内链接:

Pathogen

Introduction

  • pathogen 让每个插件占有一个单独的目录,解决了文件分散的问题。
  • 安装完 pathogen 之后,只需要在/.vim/目录下新建一个目录/.vim/bundle/,并将要安装的所有插件放在~/.vim/bundle/目录下即可以使用。
  • 如果要删除某个插件,只需要将~/.vim/bundle/目录下对应的插件目录删除即可。
  • 如果想保持某个插件为最新版本,直接从插件的仓库 checkout 一份代码到 bundle 目录即可

Configure

1
2
3
4
5
6
7
8
9
10
11
" 关闭文件检测
filetype off

" 指定runtime path,默认为~/.vim/bundle/,如果有偏差,进行更改
execute pathogen#infect('stuff/{}')
" 读取所有的帮助文档信息
call pathogen#helptags()

" 重新开启文件检测
syntax on
filetype plugin indent on

Pathogen and Git

Introduction

结合 git 和 pathogen 来进行 vim 配置的云部署,弥补 pathogen 无法安装插件、删除、更新等管理功能,当然这些功能在 vundle 中已经存在了。

Advantage

  • 仅仅依赖 git,符合 unix 美学,pathogen 仅仅做加载,git 做插件管理
  • github 包含所有的 vim 插件库
  • 扯淡

Command

Init

1
2
3
git init
git remote add origin git@github.com:unlessbamboo/vim.git
git pull origin master

Pull

1
2
git add .
git push origin master

Install plugin

1
2
3
4
5
6
7
8
9
10
git submodule add https://github.com/tpope/vim-pathogen.git   bundle/vim-pathogen
# 添加配置如下:
# " 指定pathogen的路径
# filetype off
# runtime bundle/vim-pathogen/autoload/pathogen.vim
# execute pathogen#infect()
# syntax on
# filetype plugin indent on
# 其他插件放入子模块中管理(git-submodule使用)
git submodule add https://github.com/vim-scripts/bash-support.vim.git bundle/bash-support

Basic Handle

1
2
3
4
5
6
7
8
9
10
# 克隆主项目并一次性拉取子模块
git clone --recursive git@github.com:unlessbamboo/vim.git
# 初始化子模块
git submodule init
# 更新所有模块并检出
git submodule update --init
# 升级所有子模块
git submodule foreach 'git checkout master && git pull'
# 为了避免中间某个模块出现错误(有些插件居然没有master分支), 需要更改下命令, 确保每次执行都返回True
git submodule foreach 'git checkout master && git pull || :'

Vundle

Introduction

  • 同时在.vimrc 中跟踪和管理插件
  • 安装特定格式的插件(a.k.a. scripts/bundle)
  • 更新特定格式插件
  • 通过插件名称搜索 Vim scripts 中的插件
  • 清理未使用的插件
  • 可以通过单一按键完成以上操作,详见 interactive mode
  • 管理已安装插件的 runtime path
  • 安装和更新后,重新生成帮助标签

Install

Install

1
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

Configure

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
" 去除VI一致性,必须
set nocompatible
" 必须,类似pathogen
filetype off

" 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
" 启动,或者指定一个vundle安装插件的路径call vundle#begin('~/some/path/here')
call vundle#begin()
" 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'


" 使用不同格式来进行插件安装
Plugin 'tpope/vim-fugitive'


" 必须项,放在末尾
call vundle#end()
" 必须 加载vim自带和插件相应的语法和文件类型相关脚本
filetype plugin indent on

" 简要帮助文档
" :PluginList - 列出所有已配置的插件
" :PluginInstall - 安装插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地缓存
" :PluginClean - 清除未使用插件,需要确认; 追加 `!` 自动批准移除未使用插件
" 安装vimrc中的插件:
" vim中
PluginInstall
" shell命令行
vim +PluginInstall +qall