パーソナルツール

vi compatibleオプションがONでも問題なく動作させる

作者: 小見 拓 最終変更 2012年01月08日 12時14分

vi compatibleオプションがONでも問題なく動作させる

ユーザの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()
    :echo "Hello World"
:endfunction

:command Hello :call Hello()
:let &cpo = s:save_cpo
ドキュメントアクション
コメント
blog comments powered by Disqus