2

範囲が指定されているかどうかに基づいて異なる動作をする Ex コマンドがあります。コマンドの動作を変更するために使用されたコマンドのバリアントを見つけたいと思います。

私のコマンド定義は、

:command! -range Foo :call DoFoo(<line1>, <line2>)

現在、 のような範囲なしで使用すると、同じ行番号としてと を取得<line1>しています。したがって、範囲が提供されたとき、つまり行番号が異なるときを検出できます。<line2>:Foo

範囲が指定されていない場合も同様に検出したいと思います。

これを行うための vim 変数/オプションはありますか。CmdLineコンプリーター関数が完全な関数へのExコマンドの行全体を示す引数を持つ方法に似たものを考えています。

4

2 に答える 2

1

ユーザーが入力したコマンドラインを取得したいようですが、レジスタを確認できます:

スクリプトでは、それを@:読んで、ユーザーが最後に入力したコマンドを取得します。変更したり、何か他のことをしたい場合は、関数で変数に保存できます。

于 2013-09-19T14:40:44.273 に答える