Vim プラグインを pathogen.vim で管理してみる

私が VIM にもつ不満の一つに「プラグインのファイルが autoload や doc などのフォルダに散らばってしまうこと」があります。


この不満を解消するため、ちょっと前に話題になった『 pathogen 』を導入を決意しました。pathogen は Vim プラグインを管理するためのプラグインです。


まず pathogen をダウンロード。

ダウンロードしたら、vimfiles の autoload フォルダに放り込みます。


そして _vimrc を編集し pathogen を使ってプラグインを読み込むようにします。

"pathogenでftdetectなどをロードさせるために一度ファイルタイプ判定をoffにする
filetype off

"pathogen.vimを使ってbundle配下のプラグインをpathに加える
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
set helpfile=$VIMRUNTIME/doc/help.txt

"ファイルタイプ設定をonにする
filetype on

これで仕込みは完了。あとは vimfiles 内のフォルダを再配置します。


びふぉー。

C:\Users\ユーザー名\vimfiles>tree /F
フォルダ パスの一覧
ボリューム シリアル番号は 001CF6F4 11DE:FD71 です
C:.
│  .gitignore
│  make_cygwin.mak
│  make_gcc.mak
│  make_mac.mak
│  make_mingw.mak
│  make_msvc.mak
│
├─autoload
│  │  fakepoll.h
│  │  neocomplcache.vim
│  │  pathogen.vim
│  │  proc.c
│  │  proc.dll
│  │  proc_w32.c
│  │  vimproc.vim
│  │  vimshell.vim
│  │  vimstack.c
│  │
│  ├─neocomplcache
│  │  │  cache.vim
│  │  │  util.vim
│  │  │
│  │  └─sources
│  │      │  abbrev_complete.vim
│  │      │  buffer_complete.vim
│  │      │  completefunc_complete.vim
│  │      │  dictionary_complete.vim
│  │      │  filename_complete.vim
│  │      │  include_complete.vim
│  │      │  keyword_complete.vim
│  │      │  omni_complete.vim
│  │      │  snippets_complete.vim
│  │      │  syntax_complete.vim
│  │      │  tags_complete.vim
│  │      │  vim_complete.vim
│  │      │
│  │      ├─snippets_complete
│  │      │      actionscript.snip
│  │      │      apache.snip
│  │      │      applescript.snip
│  │      │      c.snip
│  │      │      cpp.snip
│  │      │      css.snip
│  │      │      d.snip
│  │      │      eruby.snip
│  │      │      java.snip
│  │      │      javascript.snip
│  │      │      markdown.snip
│  │      │      objc.snip
│  │      │      perl.snip
│  │      │      php.snip
│  │      │      python.snip
│  │      │      rails.snip
│  │      │      ruby.snip
│  │      │      sh.snip
│  │      │      snippet.snip
│  │      │      tex.snip
│  │      │      vim.snip
│  │      │      vimshell.snip
│  │      │      xhtml.snip
│  │      │      _.snip
│  │      │
│  │      └─vim_complete
│  │              autocmds.dict
│  │              commands.dict
│  │              command_args.dict
│  │              command_completions.dict
│  │              command_prototypes.dict
│  │              command_replaces.dict
│  │              features.dict
│  │              functions.dict
│  │              helper.vim
│  │              mappings.dict
│  │              options.dict
│  │              variables.dict
│  │
│  ├─vimproc
│  │      parser.vim
│  │
│  └─vimshell
│      │  altercmd.vim
│      │  history.vim
│      │  hook.vim
│      │  interactive.vim
│      │  int_mappings.vim
│      │  mappings.vim
│      │  parser.vim
│      │  terminal.vim
│      │  term_mappings.vim
│      │  util.vim
│      │  vcs.vim
│      │
│      ├─commands
│      │      alias.vim
│      │      bcd.vim
│      │      bg.vim
│      │      cd.vim
│      │      clear.vim
│      │      dirs.vim
│      │      echo.vim
│      │      eval.vim
│      │      exe.vim
│      │      exit.vim
│      │      galias.vim
│      │      gcd.vim
│      │      gexe.vim
│      │      h.vim
│      │      histdel.vim
│      │      history.vim
│      │      iexe.vim
│      │      less.vim
│      │      let.vim
│      │      ls.vim
│      │      mkcd.vim
│      │      nop.vim
│      │      open.vim
│      │      popd.vim
│      │      pwd.vim
│      │      repeat.vim
│      │      sexe.vim
│      │      shell.vim
│      │      sudo.vim
│      │      texe.vim
│      │      vexe.vim
│      │      view.vim
│      │      vim.vim
│      │      vimdiff.vim
│      │      vimsh.vim
│      │
│      ├─complete
│      │      args_complete.vim
│      │      auto_complete.vim
│      │      command_complete.vim
│      │      helper.vim
│      │      history_complete.vim
│      │      interactive_history_complete.vim
│      │      vimshell_execute_complete.vim
│      │
│      └─vcs
│              git.vim
│
├─doc
│      neocomplcache.jax
│      neocomplcache.txt
│      project.txt
│      tags
│      tags-ja
│      vimproc.jax
│      vimshell.jax
│      vimshell.txt
│
├─ftplugin
│      ruby.vim
│
├─indent
│      snippet.vim
│
├─plugin
│      ank_cc.vim
│      neocomplcache.vim
│      project.vim
│      vimproc.vim
│      vimshell.vim
│
├─presen
│      vimshell.mkd
│
├─syntax
│      int-termtter.vim
│      snippet.vim
│      vimshell.vim
│      vimshrc.vim
│
└─test
        test1.vim
        test2.vim
        test3.vim
        test4.vim
        test5.vim
        test6.vim


あふたー。

C:\Users\ユーザー名\vimfiles>tree /F
フォルダ パスの一覧
ボリューム シリアル番号は 0013F51C 11DE:FD71 です
C:.
├─autoload
│      pathogen.vim
│
└─bundle
    ├─ank_cc
    │  └─plugin
    │          ank_cc.vim
    │
    ├─neocomplcache
    │  ├─autoload
    │  │  │  neocomplcache.vim
    │  │  │
    │  │  └─neocomplcache
    │  │      │  cache.vim
    │  │      │  util.vim
    │  │      │
    │  │      └─sources
    │  │          │  abbrev_complete.vim
    │  │          │  buffer_complete.vim
    │  │          │  completefunc_complete.vim
    │  │          │  dictionary_complete.vim
    │  │          │  filename_complete.vim
    │  │          │  include_complete.vim
    │  │          │  keyword_complete.vim
    │  │          │  omni_complete.vim
    │  │          │  snippets_complete.vim
    │  │          │  syntax_complete.vim
    │  │          │  tags_complete.vim
    │  │          │  vim_complete.vim
    │  │          │
    │  │          ├─snippets_complete
    │  │          │      actionscript.snip
    │  │          │      apache.snip
    │  │          │      applescript.snip
    │  │          │      c.snip
    │  │          │      cpp.snip
    │  │          │      css.snip
    │  │          │      d.snip
    │  │          │      eruby.snip
    │  │          │      java.snip
    │  │          │      javascript.snip
    │  │          │      markdown.snip
    │  │          │      objc.snip
    │  │          │      perl.snip
    │  │          │      php.snip
    │  │          │      python.snip
    │  │          │      rails.snip
    │  │          │      ruby.snip
    │  │          │      sh.snip
    │  │          │      snippet.snip
    │  │          │      tex.snip
    │  │          │      vim.snip
    │  │          │      vimshell.snip
    │  │          │      xhtml.snip
    │  │          │      _.snip
    │  │          │
    │  │          └─vim_complete
    │  │                  autocmds.dict
    │  │                  commands.dict
    │  │                  command_args.dict
    │  │                  command_completions.dict
    │  │                  command_prototypes.dict
    │  │                  command_replaces.dict
    │  │                  features.dict
    │  │                  functions.dict
    │  │                  helper.vim
    │  │                  mappings.dict
    │  │                  options.dict
    │  │                  variables.dict
    │  │
    │  ├─doc
    │  │      neocomplcache.jax
    │  │      neocomplcache.txt
    │  │      tags
    │  │      tags-ja
    │  │
    │  ├─indent
    │  │      snippet.vim
    │  │
    │  ├─plugin
    │  │      neocomplcache.vim
    │  │
    │  └─syntax
    │          snippet.vim
    │
    ├─project
    │  ├─doc
    │  │      project.txt
    │  │      tags
    │  │
    │  └─plugin
    │          project.vim
    │
    ├─ruby
    │  └─ftplugin
    │          ruby.vim
    │
    ├─vimproc
    │  │  .gitignore
    │  │  make_cygwin.mak
    │  │  make_gcc.mak
    │  │  make_mac.mak
    │  │  make_mingw.mak
    │  │  make_msvc.mak
    │  │
    │  ├─autoload
    │  │  │  fakepoll.h
    │  │  │  proc.c
    │  │  │  proc.dll
    │  │  │  proc_w32.c
    │  │  │  vimproc.vim
    │  │  │  vimstack.c
    │  │  │
    │  │  └─vimproc
    │  │          parser.vim
    │  │
    │  ├─doc
    │  │      tags-ja
    │  │      vimproc.jax
    │  │
    │  ├─plugin
    │  │      vimproc.vim
    │  │
    │  └─test
    │          test1.vim
    │          test2.vim
    │          test3.vim
    │          test4.vim
    │          test5.vim
    │          test6.vim
    │
    └─vimshell
        ├─autoload
        │  │  vimshell.vim
        │  │
        │  └─vimshell
        │      │  altercmd.vim
        │      │  history.vim
        │      │  hook.vim
        │      │  interactive.vim
        │      │  int_mappings.vim
        │      │  mappings.vim
        │      │  parser.vim
        │      │  terminal.vim
        │      │  term_mappings.vim
        │      │  util.vim
        │      │  vcs.vim
        │      │
        │      ├─commands
        │      │      alias.vim
        │      │      bcd.vim
        │      │      bg.vim
        │      │      cd.vim
        │      │      clear.vim
        │      │      dirs.vim
        │      │      echo.vim
        │      │      eval.vim
        │      │      exe.vim
        │      │      exit.vim
        │      │      galias.vim
        │      │      gcd.vim
        │      │      gexe.vim
        │      │      h.vim
        │      │      histdel.vim
        │      │      history.vim
        │      │      iexe.vim
        │      │      less.vim
        │      │      let.vim
        │      │      ls.vim
        │      │      mkcd.vim
        │      │      nop.vim
        │      │      open.vim
        │      │      popd.vim
        │      │      pwd.vim
        │      │      repeat.vim
        │      │      sexe.vim
        │      │      shell.vim
        │      │      sudo.vim
        │      │      texe.vim
        │      │      vexe.vim
        │      │      view.vim
        │      │      vim.vim
        │      │      vimdiff.vim
        │      │      vimsh.vim
        │      │
        │      ├─complete
        │      │      args_complete.vim
        │      │      auto_complete.vim
        │      │      command_complete.vim
        │      │      helper.vim
        │      │      history_complete.vim
        │      │      interactive_history_complete.vim
        │      │      vimshell_execute_complete.vim
        │      │
        │      └─vcs
        │              git.vim
        │
        ├─doc
        │      tags
        │      tags-ja
        │      vimshell.jax
        │      vimshell.txt
        │
        ├─plugin
        │      vimshell.vim
        │
        ├─presen
        │      vimshell.mkd
        │
        └─syntax
                int-termtter.vim
                vimshell.vim
                vimshrc.vim


なんということでしょう!
bundle 配下にプラグイン毎にフォルダが用意され、その中にプラグインのファイル(txtやvim)がまとまっているではありませんか!!


Vim を起動して、プラグインがちゃんと読み込まれたら成功です。これで Vim プラグインの管理が楽になりそうだ。