他のエディタとは異なり、Vimはコピーしたテキストを独自のクリップボードに保存します。そのため、Webページからテキストをコピーして現在の作業ファイルに貼り付けるのは非常に困難です。編集または手動で入力します。
Vim でシステムのクリップボードから貼り付けたり、クリップボードに貼り付けたりできますか?
ベストアンサー1
要約
"*yy
またはを使用して"+yy
、システムのクリップボードに行をコピーしてみてください。
完全な回答
が 0 を返す場合、システム クリップボードからのコピー/貼り付けは機能しない:echo has('clipboard')
ことに注意してください。この場合、Vim は+clipboard
機能を含めてコンパイルされていないため、別のバージョンをインストールするか、再コンパイルする必要があります。一部の Linux ディストリビューションでは、デフォルトで最小限の Vim インストールが提供されていますが、またはパッケージをインストールすれvim-gtk
vim-gtk3
ば、追加機能を利用できます。
およびレジスタ"*
は"+
システムのクリップボード ( :help registers
) 用です。システムによっては、これらのレジスタの動作が異なる場合があります。たとえば、OS X や Windows などの X11 を使用しないシステムでは、レジスタは"*
システム クリップボードの読み取りと書き込みに使用されます。X11 システムでは、両方のレジスタを使用できます。:help x11-selection
詳細については を参照してください。基本的に はX11 の選択 (通常はマウスで選択したものをコピーし、マウスの中ボタンで貼り付ける) に"*
類似しており、 は X11 の選択 (クリップボードそのもの)に類似しています。_PRIMARY_
"+
_CLIPBOARD_
これらすべてが理解できない場合は、"*yy
または を使用し"+yy
てシステムのクリップボードに行をコピーしてみてください。適切なコンパイル オプションがあると仮定すると、どちらかが機能するはずです。
これをより便利なものに再マップすることもできます。たとえば、視覚的に選択して+を押すとシステムのクリップボードにヤンクできるようにすることvnoremap <C-c> "*y
ができます。~/.vimrc
Ctrlc
'clipboard'
で説明されているオプションも確認することをお勧めします:help cb
。この場合、 または を使用する:set clipboard=unnamed
と:set clipboard=unnamedplus
、すべてのヤンク/削除操作が自動的にシステム クリップボードにコピーされます。クリップボードに別のものを保存している場合、上書きされるため、不便になることがあります。
"+p
貼り付けるには、 または を使用できます"*p
(これも、システムや希望する選択によって異なります)。または、これらを他のものにマップすることもできます。私は明示的に入力しますが、挿入モードになっていることがよくあります。挿入モードの場合でも、<C-r><C-p>*
または を使用して適切なインデントを付けて貼り付けることができます<C-r><C-p>+
。を参照してください:help i_CTRL-R_CTRL-P
。
Vim のpaste
オプション ( :help paste
) も言及する価値があります。これは、Vim を特別な「貼り付けモード」に設定し、他のいくつかのオプションを無効にするため、ターミナル エミュレーターまたはマルチプレクサの使い慣れた貼り付けショートカットを使用して、Vim に簡単に貼り付けることができます。(単に入力して:set paste
有効にし、コンテンツを貼り付けてから入力して:set nopaste
無効にします。) または、pastetoggle
オプションを使用して、モードを切り替えるキーコードを設定することができます ( :help pastetoggle
)。
これらのオプションの代わりにレジスタを使用することをお勧めしますが、それでも不安な場合は、Vim のスキルを磨く間、これが便利な回避策になります。
:help clipboard
詳しい情報については を参照してください。