15

マッピングを実行する前にユーザー入力を可能にするマッピング(通常モード用)をVimで作成できるかどうか疑問に思っています。

最もよく使用するgrepコマンドのショートカットのマッピングを作成したいと思います。探しているものを入力し、Enterキーを押して実行できるようにするコマンドが必要です。

これは私が欲しいものの一種です:

nmap F :grep! "*user input*"<CR>:cw<CR>

一時停止してユーザー入力を取得する方法がわかりません。私もこれを正しい方法で考えていますか?私がやろうとしていることを行うためのより良い方法はありますか?

4

3 に答える 3

16

機能がありますinput(prompt [, text [, completion]])

結果は、ユーザーがコマンドラインで入力した文字列です。{prompt} 引数は、プロンプト文字列または空白文字列 (プロンプトなし) です。プロンプトで「\n」を使用して、新しい行を開始できます。

(から:help input())。

のようなものについて:grep!は、おそらく文字列式を使用してコマンドを作成し、次に:executeそれを作成する必要があります。

于 2013-01-17T21:52:08.747 に答える
8

別の方法は、カスタムコマンドを作成し、マッピングを使用して新しいコマンドを呼び出すことです。

command! -nargs=+ -complete=file -bar Grep grep! <args>|cw

これで、マッピングを作成できます。

nnoremap <f2> :Grep<space>

Fまた、非常に便利なマッピングであるため、キーのマッピングは避けたいと思うでしょう。

詳細については、以下を参照してください。

:h :command
于 2013-01-17T23:49:21.020 に答える