
Vimには次のような概念がある特徴つまり、コンパイル時のフラグに基づいて、実際のインストールでサポートされるかどうかわからない機能のサブセットです。機能の存在は 関数で確認できhas()
、可能なすべての機能は コマンドで列挙できますfeature-list
。
機能を使用する前にチェックすることで、vim スクリプトをより堅牢にしたいと考えています。問題は、どのコマンドがどの機能に依存しているかが明示的に文書化されていないことです。
具体的な例: 一部の Linux ディストリビューションではvim.tiny
、 の機能が大幅に制限されたバージョンがデフォルトで出荷されていますvim
。 を起動するとvim.tiny
、 は.vimrc
多数のエラー メッセージを吐き出します。たとえば、let
コマンドは使用できませんが、どの機能がこのコマンドを提供しているかは明らかではありません。どうすれば確実に判断できるでしょうか。または、それが不可能な場合、 に対して vim の起動を正常に低下させるにはどうすればよいでしょうかvim.tiny
。
答え1
Vimプラグインをターゲットにするvim-tiny難しいのは、とても限られた機能セット。6 六いくつかのマッピングのみをサポートし、それ以上のものはありません。
とはいえ、has()
とを使って特定の機能を検出してアサートすることは確かに可能ですexists()
。 のエラーは:let
で囲むことで防ぐことができます:if 1
が、前述したように、「通常の」機能を備えた Vim を目指して、新しい機能の可用性のチェックを追加するだけで十分です (隠す、永続的な元に戻す機能 (Vim 7.3 で導入) と重要なバグ修正 (必要な場合のみ) が含まれています。