Vimノート -- レジスタ

コマンドの前にレジスタ指定を入れておくと、削除やヤンクするテキストを格納するレジスタを指定できる。レジスタは、

" と指定する。(レジスタを指定する文字のどれか)

レジスタ 説明
" 無名レジスタ
クリップボードに相当するレジスタで、直前にヤンクした
テキストが入っている。
0〜9 ヤンク履歴に相当するレジスタ
0 最後に yank したテキスト
1
2〜9
最後に delete または change されたテキスト
およびその履歴
a〜z 通常レジスタ
大文字指定でヤンクするとレジスタへの追記になる。
_ ブラックホールレジスタ
> /dev/null に相当するレジスタ

無名レジスタの内容を上書きしたくない場合などに使用する。

y は意味的に ""y と同意。
p は意味的に ""p または "0p と同意。

スタンプのように何度もペーストしたいものは a〜z のどれかに入れておく。
"ay でレジスタ a にヤンクして、
"ap でレジスタ a からペースト


挿入モードに入ってしまってからペーストしたくなった場合は、以下の操作でレジスタの内容を挿入できる。

コマンド 説明
i_CTRL-r レジスタ内容の挿入
, などを解釈する)
i_CTRL-r CTRL-r レジスタ内容の挿入
, などを解釈しない)

直前にヤンクした内容は無名レジスタ(")に入っているので、
CTRL-r " で挿入できる。

追記

0〜9 の numbered registers について、「ヤンク履歴に相当するレジスタ群」との説明が誤っていたので訂正しました。numbered registers については、何がどのタイミングで格納されるか、細かい例外などもあって結構ややこしいので、詳細は :help registers を参照のこと。(2010-10-28)