作曲・指導・C言語・Linux

金沢音楽制作

金沢音楽制作では、楽曲・楽譜の制作と、作曲や写譜などレッスンを行っています。

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