vimエディタのプラグインファイルの置き場所を変更する
vimエディタがどのディレクトリから設定ファイル、プラグインファイルを 読み込むのかを決定しているのが「runtimepath」オプションです。 「runtimepath」オプションの値はディレクトリのリストで、 vimエディタは起動時、「runtimepath」オプションで指定されたディレクトリから、 スクリプトファイルを順々に検索し、ロードします。 (Windows, Mac)
概要
vimエディタがどのディレクトリから設定ファイル、プラグインファイルを
読み込むのかを決定しているのが「runtimepath」オプションです。
「runtimepath」オプションの値はディレクトリのリストで、
vimエディタは起動時、「runtimepath」オプションで指定されたディレクトリから、
スクリプトファイルを順々に検索し、ロードします。
「runtimepath」オプションの設定の変更方法
オプションのフォーマット
「runtimepath」オプションの設定のフォーマットは次の通りです。
オプションの値として、ランタイムファイルのディレクトリのリストを、
カンマで区切って指定します。
" ディレクトリをカンマで区切って並べる :set runtimepath={ディレクトリA},{ディレクトリB},{ディレクトリC},{ディレクトリD}
また、次のようにオプションを設定すると、既存の設定に追加する形で、 プラグインの検索ディレクトリを追加できます。
" 検索ディレクトリを後ろに追加 " A,B,Cという設定にDを追加したら、A,B,C,Dになる :set runtimepath+={検索ディレクトリ} " 検索ディレクトリを前に追加 " A,B,Cという設定にDを追加したら、D,A,B,Cになる :set runtimepath^={検索ディレクトリ}
ディレクトリの前後が問題になるのは、スクリプト間で読み込み順の依存性がある場合か、
ファイルを入れ替えずにプラグインの挙動を変えたいような時だけで、
既存設定の後ろにディレクトリを単純に追加しても基本的には問題ありません。
どのように設定すべきか
vimエディタの「runtimepath」オプションは、デフォルトでは次のように設定されています。
Windows環境 $HOME/vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/vimfiles/after Mac OSX環境 $HOME/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after
Note
「after」ディレクトリに置いたプラグインが、通常のプラグインを読み込んだ後で読み込まれるのは、
「runtimepath」オプションでプラグインの読み込み順が設定されていたためです。
「runtimepath」に検索ディレクトリを追加する場合、特に理由が無ければ、
:set runtimepath+={ディレクトリ}
もしくは、
:set runtimepath+={ディレクトリ},{ディレクトリ}/after
と設定することをお勧めします。
どの設定ファイルで定義すれば良いか
「runtimepath」オプションの設定は、「$HOME/.vimrc」、もしくは「$HOME/_vimrc」設定ファイルで定義します。
それ以外の設定ファイルで「runtimepath」オプションを設定しても、
プラグインを読み込んでしまった後に設定が反映されることになるので、
設定を変更した意味があまりなくなります。
「runtimepath」オプションのいろいろな利用方法
Widows環境とMac OSX環境で、同じユーザ設定ファイルディレクトリ名を使用する
vimエディタの拡張用のプラグインは、通常は、
Windows環境では「$HOME/vimfiles/」ディレクトリに、
Mac OSX環境では「$HOME/.vim/」ディレクトリに置きますが、
「runtimepath」オプションの設定を変更すれば、同じ名前のディレクトリを使用できます。
" Windows以外の環境が、Windows環境にあわせる :set runtimepath+=$HOME/vimfiles,$HOME/vimfiles/after " Windows環境が、Mac OSX環境にあわせる :set runtimepath+=$HOME/.vim,$HOME/.vim/after
プラグインの検証用のディレクトリを用意する
vimエディタのプラグインの検証をする際に、あるいは、プラグインを開発する際に、
テスト用のディレクトリを用意し、そのディレクトリにプラグインをインストールする。
通常と異なるディレクトリにインストールすることで、
不要になった時に、テスト中のプラグインを排除しやすくなります。
" テスト用ディレクトリを用意して、そのディレクトリで作業する :set runtimepath+=$HOME/test
既存のプラグインの挙動を変更する
既存環境にインストールされたプラグインの改良版プラグインを、
「runtimepath」オプションを変更して(オリジナル版より)先に読み込ませることで、
ファイルの入れ替え無しにプラグインの挙動を変更できます。
" 修正版プラグインを入れたディレクトリを先に読み込ませる :set runtimepath^=$HOME/fix
次のような二重読み込み防止のロジックが組み込まれているプラグイン限定で使用できる方法です。
(二重読み込み防止が無いなら、普通に後から読み込んだスクリプトで挙動を上書きできる)
:if exists("g:loaded_XXXXX") :finish :endif :let g:loaded_XXXXX = 1
複数の環境で共通する設定ファイル、プラグインをまとめて管理する
vimエディタの拡張用プラグインと、設定ファイルvimrc、gvimrcを一つのディレクトリ以下にまとめて、
設定ファイル、「.vimrc」、「.gvimrc」には、次のように環境依存の設定だけを書く「runtimepath」利用方法。何台も何台もマシンを使う人向き。
この例の場合は、runtimeディレクトリにプラグインと設定ファイルを入れている。
" $HOME/.vimrc " 環境依存の設定と、設定ファイルの読み込みロジックを書く :source $HOME/vimfiles/runtime/vimrc.vim :set runtimepath+=$HOME/vimfiles/runtime
" $HOME/.gvimrc " 環境依存の設定と、設定ファイルの読み込みロジックを書く :source $HOME/vimfiles/runtime/gvimrc.vim :set columns=80 :set lines=25
注意事項など
一部のvimエディタプラグインは、「$HOME/vimfiles/」、もしくは「$HOME/.vim/」に
ファイルを置くことを想定したつくりになっているので、
拡張した「runtimepath」にプラグインを置いても動作しないことがある。
Recent Comments
ありがとうございます!
http://nanasi.jp/articles/howto/editing/visualcursor-endtoend.html · 7 years ago
知りませんでした。有難うございました。
http://nanasi.jp/articles/howto/file/open-with-format.html · 9 years ago
<c-f>1ページ分、下にスクロールする<c-b>1ページ分、上にスクロールする
どっちも逆です。
http://nanasi.jp/articles/howto/user-manual/user-manual-motion.html · 10 years ago
set 使用時に : で閉じるのを忘れて右往左往してました。
http://nanasi.jp/articles/howto/file/modeline.html · 10 years ago
やっぱり日本語の方が早いっす。
http://nanasi.jp/articles/howto/help/help_ja.html · 11 years ago