2017-09-11 9 views
1

特定のコマンドを入力した後、vimコマンドプロンプトにyankされた行を貼りたいと思っていました。他のコマンドを入力した後、vimコマンドラインにYanked行を貼り付けるにはどうすればいいですか?

私は、彼らはしかし、私は次のような問題が午前、Vimのコマンドプロンプトでヤンク行を貼り付け<Ctrl-R><Shift-">を入力するよう求めソリューション見た:私は:tabnew、のように試してみて、その後、<Ctrl-R><Shift-">を入力すると

  1. を、後ろに貼り付けられている行があれば、タブーライン。 Eg: :tabnew /disk/bin/hello.log

  2. 上記の同じコマンドをvimrcにマップすると、上記の解決策は機能しません。私は私の.vimrcに以下のマップを追加してみました:私は:tabnewを試してみて、<S-P>を入力すると

    :map <S-P> :<C-R><S-"> 
    

    、それは、ヤンク行を貼り付けていない、すなわちマッピングされたコマンドが機能していません。

上記の状況で私を助けることができる人はいますか?

フォローアップQUERY:

は、それが通常モードとコマンドラインモードの操作を混在させることは可能ですか?例えば、 a。私は、ディレクトリパスであり、vimでそのディレクトリを開こうとしていたテキストファイルの行を持っています。

b。 Yanking [S-Y]行を実行する代わりに、マップされたコマンド[map <C-T><C-O> :tabnew <C-R><S-"><bs><CR>]を使ってvimのディレクトリを開くのではなく、以下のようなことができますか?

nnoremap <F7> <S-Y>cnoremap:tabnew <C-R><S-"><bs><CR>

あなたのコメント/提案ドロップしてください?

+0

あなたは、exampeでお望みのことをもっと明確にすることができますか?あなたが1で述べる振る舞いは、あなたが質問したいと言っている振る舞いのように聞こえる。 – Kevin

+0

@ケビン:真、1での振る舞いは、まずタブニのようなものを入力し、キーボードにと入力し、キーボードにと入力する必要があるようです。しかし、キーボードにと入力するのではなく、2で説明したようにキーを.vimrcにマッピングしたかったのですが、それは機能しません。 – Desperado

答えて

3

:コマンドラインプロンプトは、「コマンドラインモード」です(:h Command-line-mode:h cmdline、または:h : [すべて同じヘルプを表示しています])。そのモードでキーをマップするには、:cnoremapを使用します。ですから、この探しているように見える:

:cnoremap <s-p> <c-r>"<bs> 

終わりにバックスペースは、バッファの末尾に(おそらく)で、末尾の行末文字を削除します。

大文字の「P」を入力しようとするたびにトリガーされるので、<s-p>以外のマッピングを使用することを強くお勧めします。

+0

ありがとうケビン!これは私が期待したものです!あなたの助けに感謝! – Desperado

+0

追加されたクエリ: ノーマルモードとコマンドラインモードの操作を混在させることはできますか? 例: a。私はディレクトリパスであるテキストファイルの行を持っています。 b。 vimのディレクトリを開くには、Yanking [S-Y]行を実行してからのようにするのではなく、以下のようなことができますか? nnoremap cnoremap:tabnew Desperado

関連する問題