vim/gvim が X11 クリップボードをレジスタ "+" または "*" に格納できない。

vim/gvim が X11 クリップボードをレジスタ "+" または "*" に格納できない。

による標準のセキュリティの欠如ワインサーバー、私は使用に切り替えましたx11vnc私のLinux(Xubuntu 14.04搭載)ボックスで SSNVC の窓側に。

vinoでは、WindowsからLinux、Windowsへの双方向のカットアンドペーストは不安定でした(1)が、うまくいったときはどのプログラムでもうまくいきました。レジスターはvim問題"+なく使用できました。実行しました(2)

autocutsel -fork 

通常は、「中クリック」と Ctrl + C/V の選択は同じになります。

x11vnc -forever -repeat -safer -usepw -ssl -autoport 6000安全で暗号化された接続を確立するためにx11vnc ( で呼び出される) を使用するようになったのですが、次のような問題が発生しました。

  1. Windows でコピーして、リモート Linux ターミナル、LibreOffice などに問題なく双方向に貼り付けることができます。

  2. vim、またはでは、またはをgvim貼り付けようとすると、"+p"*pE353: Nothing in register *

  3. また、vimまたはではgvim、逆の手順でも機能します。 の場合、"+yyWindows 側に貼り付けることができます。

この問題について何か手がかりはありますか? 奇妙なことに、貼り付けは私が確認したすべての場所で機能しますが、vim...

Package                 Installed       Previous        Now             State
=======================-===============-===============-===============-=====
vim                     2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  install
vim-gnome               2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  install

脚注:

(1)バグは今のところ見つかりませんが、報告されています。しばらくすると動作しなくなります。

(2)ありとなしで試してみましたが、変化はありませんでした。

答え1

どの x11vnc を使用しているかはわかりません (3 つの異なるバージョンを持っていますが、他にもあります)。これは、この特定の問題をトラブルシューティングするためのチュートリアルです。

まず、関係するクリップボードを理解します。ほとんどの場合、関係するクリップボードは 4 つです (クリップボード管理ツールを使用すると、さらに多く関係する可能性があります)。X11 では、プライマリ、セカンダリ、クリップボードの 3 つのクリップボードが定義されています。セカンダリはほとんど使用されないため (ほとんどの場合、問題にはなりません)、ここでは無視します。中クリックを使用して貼り付けるアプリケーション (xterm など) は、通常、プライマリ クリップボードを使用します。Windows スタイルの貼り付け (編集をクリック、貼り付けをクリック、または Ctrl + V) を実行するアプリケーションは、クリップボード クリップボードのみを使用する場合があります。一部のアプリケーションでは両方を実行します (Google Chrome は、プライマリから中クリックで貼り付け、クリップボードから Ctrl + V で貼り付けます)。次に、VNC クリップボード (1 つだけ) があり、さらに Windows クリップボードがあります (X11 で実行される vnc ビューアを使用している場合は、状況がさらに複雑になりますが、これについて考えれば納得できます)。VNC クリップボードは、他のクリップボードのさまざまな更新を追跡して最新の状態に保つという点で特別です。プライマリ クリップボードを無視すると、最近更新されたクリップボードが他のすべてのクリップボードにコピーされるので、これはかなり簡単です。問題は、プライマリ クリップボードの望ましい動作が明確に定義されていないことです。私は、さまざまな vnc 実装で次のような動作を確認しました。

  1. プライマリを無視し、クリップボードのみを使用します。
  2. クリップボードを無視し、プライマリのみを使用します。
  3. Unix から Windows へのコピーの場合は最新のものを使用し、Windows から Unix へのコピーの場合は両方にコピーします。
  4. 賢く行動してください。クリップボードが使用されるまではプライマリのみを使用し、その後はクリップボードのみを使用します。
  5. もっと賢くしてください。クリップボードが変更されるまでプライマリを使用し、その後、Windows からの変更があるまでプライマリを無視し、次に変更されたものを使用し、クリップボードの使用後に再びプライマリを無視します。
  6. もっと賢くなろうと努力してください。(私はこれについて彼らが何をしようとしていたのか理解できませんでしたが、通常は正しいことをしました)

次はツールです。クリップボードの問題をデバッグするのに必須だと考えるツールが 2 つあります。テキスト エディター (メモ帳でも十分です) と xclip です。Windows クリップボード ビューアーは便利ですが、必須ではありません。

手順は次のとおりです。トラブルシューティングするグループ内の各アプリケーションから、アクセス可能な 3 つのクリップボードすべてのステータスをチェックしながら、テキストを選択してコピーします。(VNC クリップボードは直接表示するのが非常に難しく、通常はデータではなくメタデータのみを保存するため、直接役に立ちません。) 次の質問に答えます。各アプリケーションはどのクリップボードを使用しますか? それらはどのような順序で使用されますか?

これが始めるのに十分な情報であることを願います。

関連情報