vimプラグインでよりよいコーディングを
http://tech.kayac.com/archive/vim-plugin-coding.html
上のリンクを読んで、vim-ref を導入してみた。各種言語のドキュメントや、モジュールのソースが簡単に開けるようになって便利だ。詳しい使い方はリンク先を参照して貰うとして、Windows 版 Vim だと次のエラーが出てうまく使えないことがあった。
ref: perldoc: No documentation found for "モジュール名".
よくよく調べてみると、$HOME/vimfiles/autoload/ref/perldoc.vim
に一部間違いがあったので次のように修正。
*** perldoc.vim.orig 2010-11-05 13:28:04.251766800 +0900 --- perldoc.vim 2010-11-05 13:32:48.729619800 +0900 *************** *** 229,239 **** function! s:modules_list(name) " {{{2 ! let inc = ref#system(['perl', '-e', 'print join('':'', @INC)']).stdout let sep = '[/\\]' let files = {} let modules = [] ! for i in split(inc, ':') let f = split(glob(i . '/**/*.pm', 0), "\n") call filter(f, '!has_key(files, v:val)') for file in f --- 229,240 ---- function! s:modules_list(name) " {{{2 ! let del = has('win32') ? ';' : ':' ! let inc = ref#system(['perl', '-e', 'print join(''' . del . ''', @INC)']).stdout let sep = '[/\\]' let files = {} let modules = [] ! for i in split(inc, del) let f = split(glob(i . '/**/*.pm', 0), "\n") call filter(f, '!has_key(files, v:val)') for file in f
@INC
に納められたパスを“:
”でつないで変数に納め、それを後で split
しているのだが、これが Windows におけるドライブパス(“C:
”など)と誤爆してしまうようだ。正確には、gvim.exe
を起動するとき、カレントディレクトリが Perl をインストールしたディレクトリと違うドライブにあるときに、この問題が顕在化する1。
Vim を再起動後、-updatecache
オプションを付けて起動すると変更が反映されているはずだ。
:Ref -updatecache perldoc Encode
-
例えば、Perl を C ドライブ、Vim を D ドライブにインストールして、エクスプローラーで
gvim.exe
をダブルクリックして起動した場合。 ↩
ありがとうございます。最新版で修正しました。
すばらしいプラグインをありがとうございます。
お役に立てて幸いです。