Vimのレジスタ — 名前付き、番号付き、特殊レジスタ
Vimのレジスタシステムを深掘り:名前付きレジスタ(a-z)、番号付きレジスタ(0-9)、特殊レジスタ(+, *, /, :, .)、高度なコピー&ペーストワークフローでの使い方。
Registers
詳細な説明
Vimレジスタの理解
レジスタはVimのテキスト格納スロットです。すべてのヤンク、削除、変更はテキストをレジスタに格納します。
レジスタの種類
| レジスタ | 説明 |
|---|---|
"" |
無名レジスタ(d、c、y、pのデフォルト) |
"0 |
最後にヤンクされたテキスト |
"1 - "9 |
削除履歴(最新 = 1) |
"a - "z |
名前付きレジスタ(ユーザー選択) |
"A - "Z |
名前付きレジスタに追記 |
"+ |
システムクリップボード |
"* |
プライマリセレクション(X11/macOS) |
"/ |
最後の検索パターン |
": |
最後のコマンドラインコマンド |
". |
最後に挿入されたテキスト |
"% |
現在のファイル名 |
"# |
代替ファイル名 |
"_ |
ブラックホールレジスタ(破棄) |
"= |
式レジスタ |
レジスタの使用
| コマンド | アクション |
|---|---|
"ay{motion} |
レジスタaにヤンク |
"ap |
レジスタaからペースト |
"Ay{motion} |
レジスタaに追記 |
"+y{motion} |
システムクリップボードにヤンク |
"+p |
システムクリップボードからペースト |
:reg |
すべてのレジスタの内容を表示 |
:reg abc |
特定のレジスタを表示 |
ブラックホールレジスタ
"_d{motion} はどのレジスタにも影響を与えずに削除します。以前ヤンクした内容を上書きせずにテキストを削除したい場合に便利です:
yiw— 単語をヤンク- 別の単語に移動
"_diw— ヤンクレジスタを上書きせずに削除P— 元のヤンクした単語をペースト
Insertモードでのレジスタアクセス
Insertモードで Ctrl+r {register} を使って任意のレジスタの内容を挿入:
Ctrl+r 0— 最後にヤンクしたテキストを挿入Ctrl+r "— 無名レジスタから挿入Ctrl+r +— システムクリップボードから挿入Ctrl+r /— 最後の検索パターンを挿入Ctrl+r =— 式を評価して結果を挿入
ユースケース
複数のクリップボードの内容を同時に管理したり、システムクリップボードと連携したり、複雑なテキスト操作ワークフローにVimのレジスタシステムを使用する必要がある場合。