vimからシステムクリップボードにコピーできません


54

タイトルで述べたように、vimからシステムクリップボードにコピーすることはできません。Viceversaは動作しpます。外部のvimからコピーして貼り付けても問題ありません。

クリップボードサポートをインストールしました。vimバージョンは7.3.429です。

$ vim --version | grep clip
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+xsmp_interact +xterm_clipboard -xterm_save 

私は持っています:

set clipboard=unnamedplus

私の中で.vimrc、それは私がするときに設定されます:

set clipboard?

または

:echo has('clipboard')

私はUbuntu 12.04 LTSとvimを使用していますgnome-terminal(GVimにも同じ問題があります)。何か案が?

ありがとう


stackoverflow.com/questions/11489428/…これは少し役立ちます。
coteyr

ビジュアル選択で "+ y"を入力してからvimの外側に貼り付けようとする間にvimを終了しましたか?実行すると動作しません
サミュエルピーター

@SamuelPeterいいえ、vimを終了しませんでした
gc5

1
clipboard+=unnamedplusデフォルト設定で何かを無効にしていたので、この問題に遭遇しました。への変更clipboard=unnamedplus(他の設定の削除など)がうまくいきました。
ジョニーラー

@JonnyLeedsが述べたように。コンフィグset clipboard+=unnamed&は、set clipboard+=unnamedplus使用中に動作しないYPを共有するためのシステムのクリップボードを。:set clipboard?== clipboard=autoselect,exclude:cons\|linux,unnamed,unnamedplus; 私が最初に削除した後+である、set clipboard=unnamedそしてset clipboard+=unnamedplus、それが動作します!! :set clipboard?==clipboard=unnamed,unnamedplus
Marslo

回答:


87

これは私のために働くものです(Ubuntu 13.10):

vimをvim-gtkとして再インストールします。

sudo apt-get install vim-gtk

マウスを使用して必要なものを選択し、次にタイプしてクリップボードにコピーします

"+y

クリップボードタイプからvimに貼り付けるには

"+p

理由はわかりませんが、出力を比較するvim --versionと、通常のvimインストールはvim-gtkと比較してかなり制限されていることがわかります。vimをvim-gtkに置き換えても、プラグには影響しませんでした。


さらに詳しい情報:


1
私はあなたが私を助け、どのくらい私は今、幸せですどれだけ表現することはできません:D
7hi4g0

1
興味深いことに、14.04では、通常のVIMとVIM-​​GTKの両方がxterm_clipboardサポートされ"+pていますが、通常のVIMでは機能しません。クリップボードにクリップするのではなく、選択した行の数を増やします。
dotancohen 14

1
vim-gtk14.04.4では最終的にインストールが機能しましたが、他の人がコメントするのとは少し違った経験をしました。vim-gtkインストールする前に、vimは表示されて-xterm_clipboardいました(つまり、有効ではありませんでした)。インストール後vim-gtk、表示されます(+ xterm_clipboard)。私はこれをチェックしていvim --version | grep clipます。とにかく、あなたが必要とすることは理にかなっています+xterm_clipboard
overthink

これは素晴らしい解決策です。実際、新しいUbuntu OSをインストールした後、これを最初に行うことにしました。
linbianxiaocao

vim-gtkをインストールするとうまくいきました。おかげで
ミゲル・モタ

6

この質問を検索する他の人にとって重要である可能性があるため、元の答えを以下に残します。

要するに、すべての答えに適合するサイズではないようですが、「set clipboard = unnamedplus」を使用すると、「* p」または「+ p」のいずれかが「システム」クリップボードから機能するはずです。

「* p」はほぼ間違いなくあなたが望むものです。(ここから


vimはcliプログラムです。gnome-terminal(または任意の端末エミュレーター)内で使用する場合、crtl + c(または任意のキーの組み合わせ)は最初に端末エミュレーター、次にシェル、最後にプログラム(この場合はvim)によって処理されます。ctrl + cはSIGINTシグナルを実行中のタスクに送信するため、vimとctrl + cはほとんど確実に機能しません。vimはSIGINTを使用して、挿入モードの中止や検索機能の停止など、他のことを停止します。

言い換えると。Ctrl + Cが実際にVIMに渡されることはありません。SIGINTはVIMに渡されます。SIGINTにはvimで他の用途があるので、コピーに使用することはおそらく機能しません(そして、たとえそれを強制することができても、良い考えではありません)。

代わりに、Ctrl + Shift + CおよびCtrl + Shift + Vを使用してみてください(他にもありますが、システムクリップボードにテキストを入れると思います)

公平を期すために、私はgvimについてあまり知りません。


たぶん私はあなた..私は使用して言った混乱ctrl-cOUTSIDEのVIMとして貼り付けをp、しかし、vimの中で、私は私が使用する必要があります知っているy。私は私の質問を編集します
GC5

1
LOLにはまだカフェインがありません、ごめんなさい。
coteyr


3

受け入れられた回答に加えて SSH経由でリモートで作業している場合(たとえば、コピーしたいプロセスがtmux異なる複数のペインでvim作業している場合)、異なるプロセス間のインターフェイスにvim使用xterm-clipboardしているため、Xディスプレイをエクスポートする必要もあります。Xディスプレイを設定するには、次を実行します

export DISPLAY=:0.0

これは、起動する vim、および他のシェルの下で実行する必要があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.