vimのヤンク操作や貼り付け操作は通常、ノーマルモードから実行されます。
しかし、挿入モードから抜けないでドキュメントにテキストを貼り付けたいと思うこともあります。
今回は、insert mode中にコピーしているテキストを貼り付ける方法を備忘録的にまとめています。
挿入モードから抜けないでレジスタから貼り付ける
挿入モード中にヤンクしたばかりのテキストを現在のカーソル位置に貼り付ける場合、
<C-r> 0
というコマンドが使えます。
<C-r>
のあとにレジスタを指定することでそのレジスタの内容を挿入モード中に貼り付けることができます。
このコマンドの一般的な形式は以下になります。
<C-r> {register}
( ヘルプ => :h i_ctrl-r
)
レジスタの種類
レジスタ名 | 意味 |
---|---|
" | 無名レジスタ。最後に 削除/ヤンク したテキストが格納される。 |
0 | ヤンクレジスタ。ヤンクしたテキストが格納される。 |
a-z | 名前付きレジスタ。ユーザが指定した場合に使われる。 |
% | 現在編集しているファイル名が格納されている。 |
* | クリップボードの内容が格納されている。 (ブラウザで Ctrl+cしたものなど) |
+ | 上と同じ(win, mac) |
:reg
でレジスタの内容を確認することができます。
(補足) 特定のレジスタ(a-z)にヤンクする方法
aレジスタにカーソル位置の単語をヤンクする場合、
"ayiw
というコマンドで出来ます。
このコマンドの一般的な形式は以下になります。
"{register}{motion}
挿入モード中に1度だけノーマルモードのコマンドを実行する
挿入モード中に
<C-o>
というコマンドで1度だけノーマルモードのコマンドを実行できる挿入ノーマルモードに切り替えることが出来ます。
<C-o> p
というコマンドでも挿入モード中にヤンクしているテキストを貼り付けることができます。
参考文献
挿入モード、コマンドモードで貼り付ける
vimのレジスタ
Vim日本語ドキュメント(レジスタ)
挿入ノーマルモード
vimのinsert modeの全てのキーマップ一覧