この記事では、Vimでレジスタのうち「読み取り専用レジスタ “%」についてご紹介します。
[解答] 読み取り専用レジスタ “% を使う
読み取り専用レジスタのヘルプはこちら。
5. 読みとり専用レジスタ “: と “. と “%
change – Vim日本語ドキュメント
読みとり専用レジスタには ‘%’ と ‘#’ と ‘:’ と ‘.’ がある。コマンド “p”, “P”, “:put” および CTRL-R でのみ使うことができる。
quote_. quote. E29
“. 最後に挿入されたテキストが蓄えられる (挿入モードのコマンド
CTRL-A や CTRL-@ で挿入されるものと同じテキストである)。 Note:
これはコマンドライン上での CTRL-R では使えないことに注意。動作
が少し異なり、テキストを貼り付けるというより挿入するような動作
をする (挿入されるテキストに ‘textwidth’ 等のオプションが影響
する)。
quote_% quote%
“% カレントファイルの名前が蓄えられる。
quote_: quote: E30
“: 一番最近に実行されたコマンドラインの内容が蓄えられる。例: 前回
のコマンドラインによるコマンドを実行するには、”@:” が使える。
コマンドラインがこのレジスタに蓄えられるのは、コマンドライン内
にコマンドが最低でも1文字打ち込まれたときである。そのため、コ
マンドが完全にキーマッピングから実行されたときには、この内容に
変化はない。
{Vimが +cmdline_hist 機能付きでコンパイルされたときのみ有効}
端的に書かれていないので分かりづらいのが、Vimヘルプの難点です。
読み取り専用レジスタは、3種類あります。
そのうち、今回の問題に関係するレジスタは “% です。
下記のように実行すると、編集中のファイルの名前、つまりはカレントバッファのファイル名を挿入できます。
(ノーマルモードで) "%p
“% レジスタを指定した後、p(ペースト)を実行するという意味になります。
コマンドの実行結果を読み取る方法もありますが、こちらの方が圧倒的に素早く挿入できるので便利です。
ちなみに、これ以外の読み取り専用レジスタの使いどころが難しいです。
そのため、あまり利用されていないと思われます。
このVimコマンドの補足情報
- 利用頻度
- 便利さ
- 覚え易さ
関連するVimヘルプ
Vimからは、下記のコマンドでヘルプを確認できます。
:help quote_% :help quote%
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
参考書籍
こちらの書籍が参考になります。
Vim/neovim関連の書籍で、もっとも評判が良くてバイブルと呼んでる人もいる一冊です。Vim/neovimのバージョンに依存しない沢山のTips形式で、その表題通りに「思考のスピードで編集」できるようになるノウハウが詰まっています。その高い評価は Amazon のレビューからも分かる通りです。Vimmer なら必ず一度は読んでおいて間違いありません。
こちらもVim関連の書籍で評価が高い書籍の一冊です。vim-jpで見かける上級Vimmer(Vimサポーターズ)の皆様による、Vimを実践で使ったノウハウからプラグイン関連の情報が詰まっています。日本の Vim界隈を知る上でも是非一読しておきたい一冊です。
Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊です。日本で Vim Script をここまで深く解説している唯一の書籍と言えます。Vim力を伸ばしたいと考えるなら、絶対に避けては通れない書籍でしょう。