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} はどのレジスタにも影響を与えずに削除します。以前ヤンクした内容を上書きせずにテキストを削除したい場合に便利です:

  1. yiw — 単語をヤンク
  2. 別の単語に移動
  3. "_diw — ヤンクレジスタを上書きせずに削除
  4. P — 元のヤンクした単語をペースト

Insertモードでのレジスタアクセス

Insertモードで Ctrl+r {register} を使って任意のレジスタの内容を挿入:

  • Ctrl+r 0 — 最後にヤンクしたテキストを挿入
  • Ctrl+r " — 無名レジスタから挿入
  • Ctrl+r + — システムクリップボードから挿入
  • Ctrl+r / — 最後の検索パターンを挿入
  • Ctrl+r = — 式を評価して結果を挿入

ユースケース

複数のクリップボードの内容を同時に管理したり、システムクリップボードと連携したり、複雑なテキスト操作ワークフローにVimのレジスタシステムを使用する必要がある場合。

試してみる — Vim Cheat Sheet

フルツールを開く