プラグインの永続的な設定の現在の「ベストプラクティス」は何ですか?


7

非常に大きなテキストファイルをフィルタリングして役立つ「目次」を生成するプラグイン(Uniteサブモジュール)があります。多くのフィルターを有効/無効にする機能をユーザーに提供したいと思います...そして、その設定が各vimの呼び出しを通じて持続することを望みます。(同時セッション全体の即時更新は必ずしも必要ではありません)

これをvimに組み込むためのメカニズムはありますか?または、ユーザーの$ HOMEに「ドットファイル」を作成して管理する必要がありますか?またはこれを処理するための受け入れられた標準的な方法はありますか?

編集:オプションのリストは現在数百エントリの長さであり、現在のインターフェイスは単にリストから削除するために「dを入力してdを入力する」ので、ユーザーにvimrcでグローバル変数を設定させることはできません。


ユーザー変数の場合、がviminfo含まれていることを確認でき!、特定の種類のg:変数がviminfoファイルに永続的に保存されますが、ほとんどのプラグインがユーザーのviminfoを変更することは合理的ではありません。
jkerian 2016

私はこの問題についてはあまり詳しくありませんが、私が使用したすべてのプラグインは定義g:boolVariableしたばかりで、ユーザーに自分で設定するように指示したと思いますvimrc。次に、ユーザーが設定したオプションを確認して、そこから作業できます。
Tumbler41 2016

回答:


6

これを行う1つの方法は、プラグインにその特定の「永続的な設定/有効なフィルター」ファイルへのパスを格納するグローバル変数を定義させることです。これは、いくつかの値を「キャッシュ」する必要があるさまざまなプラグインが機能する方法に似ています。したがって、ドキュメントは次のようになります。

g:myplugin_enabled_filters_path     *g:myplugin_enabled_filters_path*
    This variable points to the file that stores enabled filters for
    <myplugin> etc.

    Default value is "$HOME/.myplugin.filters"

$HOME変数を使用してこのパスのデフォルト値を作成し、有効なフィルターをそこに保存できます。ユーザーは自分ので上記の変数を変更してパスを変更できvimrcます。プラグイン(そのファイルに覚えているフィルター)を使用しながら、さまざまなフィルターをその場で簡単に有効/無効にするための手段(関数、コマンド、キーマップ)を提供するつもりであるので、ユーザーがそれらに直接対処します。それ以外の場合は、有効なフィルターのリスト/辞書などを格納するグローバル変数を変更し(変数をに保存しておくことで「永続化」vimrc)、代わりにそれを読み取る方が簡単です(上記のTumbler41のコメントに従って)。

詳細については、Shougoのプラグインでg:neocomplcache_temporary_dirがどのように定義され、使用されているかを確認できneocomplcache.vimます。

また、このようなものを使用することで、そのファイル内の任意のvim変数(ディクショナリを含む)を簡単にシリアル化(保存/復元)できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.