0

ユーザー定義コマンドで別のユーザー定義コマンドを呼び出すことはできませんか?

次の2行を試しましたが、どちらも機能しませんでした:

command! GetRapidLinks FindRapidLinks|MatchesOnly

command! GetRapidLinks :FindRapidLinks|:MatchesOnly

Vim のヘルプには次のように書かれています。

":X"、":Next"、":Print" は使用できません。

この制限のコンテキストは明確ではありません。ユーザー定義コマンドでそれらを使用することはできないと思いますよね?

4

3 に答える 3

1

これはおそらく、:FindRapidLinksコマンドを-bar;で定義していないためです。これがないと、コマンドは残りの引数 (cp. :help command-bar) をすべて「食べて」しまいます。したがって、次のいずれかを再定義します。

:command! -bar FindRapidLinks ...
:command! GetRapidLinks FindRapidLinks|MatchesOnly

または、次の方法でこれを回避します (他のコマンドを再定義できない場合) :execute

:command! GetRapidLinks execute 'FindRapidLinks'|MatchesOnly

原則として、-barカスタム コマンドに などの特殊文字を含む引数を渡す必要がない限り、 を使用します|

于 2013-09-28T12:14:51.287 に答える
0

実際には、ヘルプが意味することは、大文字で始まるいくつかの組み込みコマンドであるため、ユーザーコマンド:Nextまたはを呼び出すことはできないということです。独自のカスタムコマンドを定義できる:Xため、vimが実際にコマンドを定義できないと言っている理由がわかりません(組み込みコマンドはエイリアスにすぎないため):Print:Print:print

ここで何を達成しようとしているのか正確にはわかりませんので、質問の最初の部分にはお答えできません。ただし、関数内またはカスタム コマンド内で、別のカスタム コマンドを呼び出すことができます。

于 2013-09-28T10:53:00.390 に答える