932

他のエディターとは異なり、vim はコピーしたテキストを独自のクリップボードに保存します。そのため、Web ページからテキストをコピーして現在の作業ファイルに貼り付けるのは非常に困難です。geditを開くか、手動で入力する必要があります。

システムのクリップボードとの間で vim ペーストを作成できますか?

4

33 に答える 33

1025

0 を返す場合:echo has('clipboard')、システム クリップボードからのコピー/貼り付けは機能しないことに注意してください。この場合、vim はこの+clipboard機能でコンパイルされていないため、別のバージョンをインストールするか、再コンパイルする必要があります。一部の Linux ディストリビューションでは、デフォルトで最小限の vim インストールが提供されますが、またはパッケージをインストールすると、vim-gtkvim-gtk3それでも追加機能を利用できます。

およびレジスタは、システムのクリップボード ( "*)用です。システムによっては、異なることを行う場合があります。たとえば、OSX や Windows などの X11 を使用しないシステムでは、システム クリップボードの読み取りと書き込みにレジスタが使用されます。X11 システムでは、両方のレジスタを使用できます。詳細については を参照してください。ただし、基本的には X11 の選択 (通常はマウスで選択したものをコピーし、マウスの中央ボタンで貼り付けます) に類似しており、X11 の選択 (適切なクリップボード) に類似しています。"+:help registers"*:help x11-selection"*_PRIMARY_"+_CLIPBOARD_

以上のことが頭をよぎる場合は、"*yyまたはを使用"+yyして、システムのクリップボードに行をコピーしてみてください。適切なコンパイル オプションがあると仮定すると、どちらか一方が機能するはずです。

これをより便利なものに再マップすることをお勧めします。たとえば、視覚的に選択して+を押してシステムのクリップボードにヤンクできるようにvnoremap <C-c> "*y、 yourを入れることができます。~/.vimrcCtrlc

'clipboard'で説明されているオプションも参照してください:help cb。この場合、すべてのヤンク/削除操作をシステムのクリップボードに自動的にコピーすることができ:set clipboard=unnamedます。:set clipboard=unnamedplusこれは、クリップボードに何か他のものを保存している場合、上書きされるため、不便になる可能性があります。

貼り付けるには、 or を使用する"+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してください。

于 2012-07-15T04:31:17.700 に答える
249

gnome-terminalの貼り付けショートカットを使用してvimに貼り付けることができます。ファイルを挿入モードにして、

Ctrl++ 。Shift_v

事前に覚えておいてください

 :set paste 

インデントをいじらないようにします。

于 2012-07-15T15:46:02.397 に答える
46

Linux

私の Linux システムでは、レジスタ+*レジスタは X11 選択にマップされ、マウスの中ボタンで貼り付けることができます。:set clipboard=unnamedとを使用すると:set clipboard=unnamedplus、レジスタがクリップボードにマップされ、CTRL-V で貼り付けることができます。

詳細は、構成とシステムに多少依存しているように見えるため、マイレージは間違いなく異なります. ただし、間違いなく正しい方向に向けられるはずです。

関連項目

http://vim.wikia.com/wiki/Accessing_the_system_clipboard

于 2012-07-15T04:38:20.693 に答える
24

クリップボード

この選択を保存するための特別なレジスタがあります。それは "* レジスタです。選択されているテキストに関する情報が変更されようとしている場合 (たとえば、どこかをマウスの左クリックでクリックした場合)、または別のアプリケーションが必要な場合を除き、ここには何も入れられません。選択したテキストを貼り付けます。次に、テキストが "* レジスタに配置されます。たとえば、線を切り取って現在の選択範囲にする/クリップボードに置くには:

    "*dd

同様に、マウスの中ボタンをクリックするなどして、別のアプリケーションから選択範囲を貼り付ける場合、選択範囲は最初に "* レジスタに配置され、次に他のレジスタと同じように 'put' されます。たとえば、選択範囲を配置するには(クリップボードの内容):

    "*p

登録 E354

> There are nine types of registers:                      
> 1. The unnamed register ""
> 2. 10 numbered registers "0 to "9
> 3. The small delete register "-
> 4. 26 named registers "a to "z or "A to "Z
> 5. four read-only registers ":, "., "% and "#
> 6. the expression register "=
> 7. The selection and drop registers "*, "+ and "~ 
> 8. The black hole register "_
> 9. Last search pattern register "/

クリップボードから貼り付け

1. Clipboard: Copy
2. Vim insertmode, middle mouse key

ターミナルでの X11 クリップボードのサポートを確認する

ターミナルで Vim を実行したい場合は、クリップボードをサポートしてコンパイルされたバージョンの Vim を探す必要があります。X11 クリップボードのサポートを確認するには、コンソールから次のように入力します。

% vim --version

「+xterm_clipboard」が表示されれば、問題ありません。

http://vim.wikia.com/wiki/Accessing_the_system_clipboard

X サーバーは、次の 3 つの選択肢を維持します。

プライマリ、セカンダリ、およびクリップボード

PRIMARY 選択は、通常、マウスの中ボタンによるコピーと貼り付けを実装するために使用されます。SECONDARY および CLIPBOARD の選択は、アプリケーション プログラムであまり使用されません。

http://linux.die.net/man/1/xsel

于 2013-07-21T08:55:55.133 に答える
13

上記の提案を試してみましたが、私の環境ではどれも機能しませんでした。(ssh 経由の Windows PuTTY クローン)

いくつかの追加のグーグルが現れました: https://unix.stackexchange.com/questions/110684/copy-paste-into-sshd-vim-from-local-windows-clipboard

SHIFT+INSERT私のデスクトップのクリップボードからVimのバッファに貼り付けるためのトリックを使用することを提案したコメントの1つ。Ctrl-Cはすでに Vim からデスクトップのクリップボードにコピーする作業を行っていました。

于 2014-08-22T18:36:48.350 に答える
13

+clipboard を持っていなかったので、xsel を使用してこの代替ソリューションを思いつきました:

~/.vimrc に追加:

vnoremap <C-C> :w !xsel -b<CR><CR>

于 2014-01-06T23:55:57.690 に答える
9

OS クリップボードにコピー

ビジュアルモードでテキストを選択し、"*y

OS クリップボードから貼り付け

プレス"*p

于 2019-09-12T11:15:27.710 に答える
7

*Vim のインストールがおよび+レジスタをサポートしていない人のための簡単な注意事項。クリップボードから貼り付けるために新しい Vim インストールをダウンロードする必要はありません。別の方法を次に示します。

  1. インストールparcellite(メモリ使用量の少ないクリップボード マネージャー);

  2. .vimrcファイルに次を追加します。

    command Clip r !parcellite -c
    
  3. vimを再起動します。

:Clipコマンドとして入力exすると、クリップボードの内容がカーソルに貼り付けられます。1 回のキーストロークでこれを実行できるように、新しいコマンドをファンクション キーにマップすることもできます。

于 2013-12-08T00:01:34.890 に答える
7

これに対する最も簡単な解決策は、異なる Linux マシン間でも機能しsshます。

  1. vim が X-11 クリップボードをサポートしているかどうかを確認しますvim --version | grep clipboard: 報告があった場合は、または(arch Linux の gvim) のいずれかをインストールする必要が-clipboardあります。-xterm_clipboardvim-gtkvim-gnome

  2. に次の行を追加します.vimrc

set clipboard=unnamedplus
set paste
  1. ssh 経由で別のマシンにログインする場合は、オプション -Y を使用します。ssh -Y machine

yこれで、コピーと貼り付けは、単一のマシンでも、別のマシンでも、for yank とpfor pasteのみを使用して期待どおりに動作するはずです。注意:.vimrcこの機能を使用するすべてのマシンで変更します。

于 2017-07-06T09:04:39.583 に答える
5

この問題は、主要な開発環境として実行vimされている 2017 年半ばの Macbook Pro で発生しました。iTerm2

他の回答が示唆しているように、実行vim --versionしたところ、 が返されることに気付きました。これは、マシンに同梱されて-clipboardいるバージョンがクリップボード オプションでコンパイルされていないことを意味します。vim

homebrewパッケージvimはオプションでコンパイルされているように見えるclipboardので、私にとっての修正は次のとおりでした:

  1. 走るbrew install vim
  2. set clipboard+=unnamedマイ~/.vimrcファイルに追加
  3. 閉じて再び開くiTerm2
于 2019-07-25T12:57:26.300 に答える
5

これは私にとってはうまくいきます:Ctrl+ Shift+V

于 2016-03-14T12:02:37.807 に答える
2

vimrcなどを変更したい場合は、他のソリューションが適しています...ただし、 vimからシステムキーボードにコピーする簡単な方法が必要でした。これが私が思いついたものです。

  • ビジュアルモードでコピーしたいテキストを選択v
  • を押し:ます(自動的に拡大して表示されます:'<,'>
  • またはy * ( y +システムによって異なります) と入力して、選択したテキストをシステムのクリップボードにヤンクします。
于 2016-12-21T00:00:03.020 に答える
2

Mac OS X 10.9 の Terminal.app で vim を使用している場合は、設定に加えて、取得できるものを:set clipboard=unnamed使用する必要があります。デフォルトの vim はクリップボード オプションをサポートしていません。mvim -vbrew install macvim

于 2013-11-20T20:26:38.880 に答える
1

言及する価値があるかもしれません.Vimを使用するOSXでは、マウスでテキストを選択し、Cmd-CでOSXシステムのクリップボードにコピーでき、コピーされたテキストはVimの外部のクリップボードで利用できます.

言い換えれば、OSX はそれを通常のウィンドウのように扱います。ここで、悪名高い Apple の「コマンド」ボタンが役に立ちます。

B-30

于 2015-06-15T00:50:34.217 に答える
1

これを行うには、2 つの簡単な方法があります。ファイルを挿入モードにし、1) マウスの中央ボタン (スクロール ホイール) を押すか、2) Ctrl + Shift + V

于 2015-07-09T02:30:31.637 に答える
0

Windows を使用していて、システム クリップボードの内容を貼り付けたい場合は、次のpコマンドを入力します。

:set clipboard = unnamed

これで私の問題は解決しました。

于 2015-05-06T09:30:17.317 に答える
0

"一部の国際キーボードでは、 +を押しSpace".

その場合は、"Space+yまたは"Space*yコピーする必要があります。

そして"Space+p、または" Space*p貼り付けます。

于 2015-08-23T18:50:41.557 に答える