1
私はこのカスタムコマンドを定義したいと思います。しかし、私は別に引数を得ることができません:カスタム定義コマンドで引数を取得する方法は?
:command -nargs=2 :%s/<args1>/<args2>/gc // <args1> <args2> dont work
誰もがこれにいくつかの解決策がありますか?
私はこのカスタムコマンドを定義したいと思います。しかし、私は別に引数を得ることができません:カスタム定義コマンドで引数を取得する方法は?
:command -nargs=2 :%s/<args1>/<args2>/gc // <args1> <args2> dont work
誰もがこれにいくつかの解決策がありますか?
<args1>
および<args2>
は存在しない。あなたはこれを自分で発明しました。関数に渡すために、
fun! s:sub(search, replace)
execute ':%s/' . a:search . '/' . a:replace . '/gc'
endfun
command! -nargs=+ Replace call s:sub(<f-args>)
<f-args>
が適切な引用とコンマ空白でコマンド引数を分割して追加します。これを行う最も簡単な方法は、関数のラッパーと<f-args>
を使用することです。
関数ラッパーを使用すると、実行が完了した後に@/
レジスタをリセットするという追加の利点もあります。これを望まない場合は、明示的にそれにlet @/ = a:search
を割り当ててください。これ以外
は、あなたの:command
呼び出しに関するほとんどすべてが間違っている:
-nargs=2
はサポートされていません - あなたはコマンド名を記入するのを忘れ:help :command-nargs
//
は、VimScriptでのコメントの表示には使用されません。それには"
が使用されます。構文の詳細については、:help :command
を参照してください。