8

初めての vim プラグイン (viml + python) を作成しています。プラグインに含まれるコマンドの 1 つは「GetStepCommand()」で、基本的にはリモート データ ソースからデータを取得します。データを少しマッサージしてバッファにコピーし、ユーザーが編集を開始できるようにします。ユーザーが「GetStepsCommand」に指定する必要があるパラメーターがあり、それはデータが存在する場所への検索パスです。例: /projects/procedure/step

現在、そのパスは長くなる可能性があり、何かのスペルを間違えやすいです。そこで、パラメーター部分に独自のタブ補完を実装したいと考えました。Vim はすでに、タブによるコマンドの自動補完を処理していますが、もちろん、パラメータを補完する方法についての知識を持つことはできません (これは自分で解決します)。

しかし、最初に知る必要があります: - コマンドモードでキープレスをインターセプトできるかどうか/方法 - ユーザーが現在書いているコマンドラインを取得/取得 - コマンドモードか挿入/表示モードかをテスト - そして最後に、更新されたコマンド ライン (タブ補完) を返します。ユーザーは、キーを押した後に ':' で書き続けることができます。

ポインタ、ヒント、記事、チュートリアル...つまり、情報は大歓迎です

4

1 に答える 1

9

カスタム コマンドの引数がファイル システム パスの場合、次のように定義に追加-complete=fileするだけです。:command

:command -nargs=1 -complete=file MyCommand echomsg <q-args>

コマンドライン モードでキー入力をインターセプトする必要はありません (インターセプトする必要はありません。他のプラグインとの不適切な相互作用につながるからです!) Vim は、他のデフォルトの補完 (cp. :help :command-complete) を提供します。完了候補を決定するために呼び出されます。

于 2012-09-28T08:57:36.797 に答える