Vimでクリップボードを使う
Vimにでのクリップボードの使い方のメモです。"+レジスタと"*レジスタを使うことで、guiのクリップボードとやり取りできます。xselといったものは不要です。筆者の環境はNeoVimですが、通常のVimでも同じだと思います。
環境:LMDE 4、NeoVim v0.3.4
ちなみに、macOSは、"+レジスタを使わなくても、"*レジスタだけで同じことができます。Linuxは、X Windows SystemのX selectionというものを使っているため、"*と"+を使い分ける必要がるようです。詳細は、【Linux】クリップボードについて【X Window System】をご覧ください。
vimからクリップボードへ
ノーマルモード時に、"+を使うことで、カレント行をクリップボードに渡せます。ヴィジュアルモードで範囲選択をした場合も同じ操作です。
カレント行をクリップボードにコピー
"+yy
ファイル末までをクリップボードにコピー
"+yG
ggで先頭に戻ってから行うとファイルすべてがコピーされます。
範囲指定してクリップボードにコピー
カレント行から5行目までの範囲をコピー
"+5yy
カレント行からブロックの終了までをコピー。
"+]]
クリップボードからvimへ
クリップボードの内容をvimで使うには、*レジスタを使います。
"*p
exコマンドでペーストを使う
exコマンドでペーストすることができます。ペーストできるのは、ヤンクされたものと、検索した文字列です。exコマンドでペーストを使うには、<C-r>を入力した後"、*、/を入力します。
:%s/<C-r>"/<C-r>*/
上記をコピー実行すると以下のようになります。
:%s/printf/puts/
なお、検索した文字列は/でペーストできます。これは、/や?だけではなく、カーソルがワード上にあるときに*を押しても/に格納されます。ただし、その場合は、\<printf\>と<>がついてしまいます。
:%s/<C-r>//s<C-r>//
:%s/printf/sprintf/
更新情報
- 作成日:2020-04-06
- 更新日:2022-04-30