web-dev-qa-db-ja.com

VIMRCの関数をオートロード関数に変換しますか?

My .VIMRCは、vimrc.dディレクトリ内の複数のファイルに分割され、それらのファイル内では、DIFF、色、折りたたみなどのような特定の機能に基づくグローバル設定、変数、および関数は、これらのファイルはruntimeからの___________________________________________________________________________________________________________起動時に。しかし、まとめて、これらのこれらのファイルの中に使用されるような機能が非常に多いので、それらをオートロード機能に変換するのが最善のように思われます。

だからここに私の質問があります:

  1. すべてが機能モジュールに包装されています(diff.vimなど)が、関数をオートロード関数に変換したい場合は、vimrc.dファイルをvimrcによって実行時に分割する必要があることを意味します。オートロードメカニズムを介して呼び出されるオートロードファイル?
  2. または、vimrc.dを含めるようにRTPを変更する必要があり、vimrc.d#diff#faxetameのように、autload関数として関数を定義するだけです。私は私のVIMRCからこれらのファイルを実行することができ、まだ自動ロードの利点を享受できますか?

ありがとう!

2
E.Beach
  1. はい。私はあなたがvimrc.dディレクトリを使用している理由は理解していませんが、ファイルをプラグインディレクトリにドロップするだけではなく、vimrcのランタイムで、Vimに:ランタイムを自動的に行うことができます。
  2. オートロードプラグインは通常、プラグインディレクトリに入っているインターフェイスコードファイルと自動ロードディレクトリに入る実行コードファイルにパーティション化されています。インターフェイスコードファイルは常にロードされ、LEANをリーンにする必要があります。これは通常、実行コードファイルで定義されている関数を呼び出すコマンドやマクロを含みます。実行コードファイルは、定義されたオブジェクトの1つ(例えば、関数または変数)がアクセスされ、まだ定義されていないまでロードされません。 VIMRCから自動ロード/実行コードファイルを実行している場合は、自動ロードファイルの目的を破った。

オートロードファイルを「runtimepath」のコンポーネントの1つのサブディレクトリであるオートロードディレクトリに入れる必要があります。標準〜/ .vimrc/autoload(UNIX)または〜/ vimfiles/autoload(Windows)ディレクトリを使用したくない場合は、autloadディレクトリの親ディレクトリが 'runtimepathにあることを確認する必要があります。 '。

それからそれはあなたがあなたのかどうかは関係ありません:

  • あなたがvimrc.dディレクトリにインターフェイスコードファイルを置き、それらをあなたのvimrcから彼らを自分で実行してください。
  • Vimrc.dディレクトリを 'runtimepath'に追加し、インターフェイスコードファイルを新しいサブディレクトリ、vimrc.d/pluginに移動して、Vim Runtimeをあなたのためにそれらを実行します。また
  • 標準〜/ .vim/pluginまたは〜/ vimfiles/pluginディレクトリにインターフェイスコードファイルを置き、vimrc.dとvimrcの実行時パスを指定します。

あなたが本当にあなたのものを標準的な場所からそして一緒に1つのディレクトリに保存したいのなら、私はあなたがこれを行うことができると思います(便宜上のUNIXを仮定する)。

  1. 2つの新しいディレクトリ、〜/ .vim/vimrc.d/autoloadと〜/ .vim/vimrc.d/pluginを作成します。
  2. 既存のスクリプトをインターフェイスコードと実行コード部分に分割し、それらをそれらをそれらのディレクトリに入れて、〜/ .vim/vimrc.dにはスクリプトファイルは終了しません。
  3. Vimrcから:ランタイムを削除します。
  4. あなたのvimrcで、〜/ .vim/vimrc.dを「runtimepath」に追加します。

    set rtp^=~/.vim/vimrc.d _

参考のために、オートロードスクリプトはIN.で説明されています

:help 41.15
:help autoload-functions
 _
3
garyjohn