ユーザのvimエディタ環境のcompatibleオプションがONになっている場合、 vim特有の機能を利用したスクリプトは動作しない可能性がある。 そこで、次のようにユーザのオプションを一度ローカル変数に逃がして、 後でユーザの設定を戻してあげると、トラブルの種をつぶせる。 " ユーザの設定を変数に逃がす :let s:save_cpo = &cpo :set cpo&vim " ↓スクリプトの処理実行後 " ユーザの設定を元に戻す :let &cpo = s:save_cpo スクリプトで必要となる、他の処理も入れた最終的な形は、 次のようになる。 :if exists("g:loaded_hello") :finish :endif :let g:loaded_hello = 1 :let s:save_cpo = &cpo :set cpo&vim :function Hello()