[解決済み] vimでシステムのクリップボードからペースト(とコピー)するには?
質問
他のエディタと違い、vimはコピーしたテキストを自分のクリップボードに保存します。そのため、ウェブページからテキストをコピーして、現在作業中のファイルにペーストするのは非常に困難です。そのため、geditを開くか、手動で入力する必要があります。
vimでシステムのクリップボードから、またはシステムのクリップボードにペーストできるようにすることはできますか?
解決方法は?
システムのクリップボードからコピー/ペーストする際の注意点
の場合、動作しません。
:echo has('clipboard')
は0を返します。
. この場合、vim はコンパイル時に
+clipboard
という機能があるため、別のバージョンをインストールするか、再コンパイルする必要があります。Linux ディストロによっては、デフォルトで最小限の vim がインストールされていますが、もし
をインストールします。
vim-gtk
または
vim-gtk3
パッケージ
それでも、追加機能を手に入れることができます。
は
"*
と
"+
レジスタは、システムのクリップボード (
:help registers
). システムによって、これらの機能は異なる場合があります。例えば、OSXやWindowsのようなX11を使わないシステム上では
"*
レジスタは、システムのクリップボードの読み取りと書き込みに使用されます。X11システムでは、両方のレジスタを使用することができます。参照
:help x11-selection
を使用することができますが、基本的には
"*
は、X11の
_PRIMARY_
選択 (通常マウスで選択したものをコピーし、マウスの中ボタンでペーストします) と
"+
は、X11の
_CLIPBOARD_
を選択します(これはクリップボードそのものです)。
もし、これらのことが頭から離れないのであれば、次のように使ってみてください。
"*yy
または
"+yy
をクリックすると、その行をシステムのクリップボードにコピーすることができます。適切なコンパイルオプションがあれば、どちらか一方は動作するはずです。
これを自分にとってより便利なものにリマップするのもいいかもしれません。例えば
vnoremap <C-c> "*y
の中に
~/.vimrc
を視覚的に選択し、押せるようにします。
Ctrl
+
c
をクリックすると、お使いのシステムのクリップボードに取り込まれます。
また、このような場合は
'clipboard'
オプションは
:help cb
. この場合
:set clipboard=unnamed
または
:set clipboard=unnamedplus
を使用すると、すべてのyank/delete操作が自動的にシステムのクリップボードにコピーされるようになります。これは、クリップボードに他のものを保存している場合、それを上書きしてしまうので、不便になることがあります。
貼り付けるには
"+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
をクリックすると詳細が表示されます。
関連
-
[解決済み] Vimエディタを終了するにはどうすればよいですか?
-
[解決済み] git に自分の好きなエディタを使わせてコミットするにはどうしたらいいですか?
-
[解決済み] Vimで文字を改行で置き換える方法
-
[解決済み] Vimで大文字小文字を区別しない検索をする方法
-
[解決済み] Vimで行全体を複製する方法は?
-
[解決済み] Vimで行末に移動するにはどうしたらいいですか?
-
[解決済み] Vimで最も生産性の高いショートカットは何ですか?
-
[解決済み] Vimでクリップボードにコピーする方法は?
-
[解決済み] Vimでの "次を探す"
-
[解決済み】vimの「sudoで書く」トリックはどうやるの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] .vimrcファイルはどこですか?
-
[解決済み] "コマンドが見つかりません: vim"
-
[解決済み] Vim の "Press ENTER or type command to continue" プロンプトを無効にするにはどうしたらいいですか?
-
[解決済み] vimにテキストをペーストする際の自動インデントをオフにする
-
[解決済み] Vimでクリップボードにコピーする方法は?
-
[解決済み] Vimのコマンドラインにヤンクのテキストを貼り付ける方法
-
[解決済み】Vimでカレントバッファのファイル名/パスをヤンクする。
-
[解決済み】UbuntuのBashでコピーペーストをWindowsで行う
-
[解決済み] Vim: 起動時のバッファと同じように、別の [No Name] バッファを開くにはどうしたらいいですか?
-
[解決済み] なぜvimが私のコードをラップするのを止められないのですか?