GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Vim/gvim kann die X11-Zwischenablage nicht in die Register „+ oder „* einfügen?

Aufgrund der mangelnden Sicherheit mit dem Standard-Vino-Server bin ich auf die Verwendung von x11vnc auf meiner Linux-Box (mit Xubuntu 14.04) und SSVNC auf der Windows-Seite umgestiegen.

Mit vino war das Ausschneiden und Einfügen von Windows zu Linux und Windows in beiden Richtungen ungenau (1), aber wenn es funktionierte, funktionierte es für jedes Programm; Ich könnte den vim verwenden Registrieren Sie "+ problemlos. Ich führe (2)

aus
autocutsel -fork 

normalerweise so, dass die Auswahlmöglichkeiten „Mittelklick“ und Strg-C/V gleich sind.

Jetzt, wo ich x11vnc verwende (aufgerufen mit:x11vnc -forever -repeat -safer -usepw -ssl -autoport 6000 ) um eine sichere, verschlüsselte Verbindung zu haben, ist ein Problem aufgetreten:

  1. Ich kann unter Windows kopieren und in die entfernten Linux-Terminals, Libreoffice usw. problemlos in beide Richtungen einfügen.

  2. In vim , oder gvim , jeder Versuch, mit "+p einzufügen oder "*p sagt E353: Nothing in register *

  3. Wieder in vim oder gvim , umgekehrt funktioniert es:wenn ich "+yy dann kann ich das ding auf der windowsseite einfügen.

Hat jemand eine Ahnung von diesem Problem? Das Seltsame ist, dass das Einfügen überall funktioniert, wo ich es überprüft habe, außer in 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

Fußnoten:

(1) kann den Fehler jetzt nicht finden – er wird gemeldet. Es funktioniert nach einer Weile nicht mehr.

(2) Ich habe es mit und ohne versucht. Keine Änderungen.

Akzeptierte Antwort:

Da ich nicht weiß, welches x11vnc Sie verwenden (ich habe drei verschiedene Versionen, es gibt noch andere), ist dies ein Tutorial zur Behebung dieses speziellen Problems.

Zunächst müssen Sie die beteiligten Zwischenablagen verstehen. In den meisten Fällen sind vier von ihnen beteiligt. (Mehr ist möglich, wenn Sie Tools zur Verwaltung der Zwischenablage verwenden.) X11 definiert drei Zwischenablagen:Primär, Sekundär und Zwischenablage. Sekundär wird selten verwendet (und ist mit ziemlicher Sicherheit nicht Ihr Problem), daher werden wir es ignorieren. Anwendungen, die Mittelklick zum Einfügen verwenden (xterm usw.), verwenden normalerweise die primäre Zwischenablage. Anwendungen, die im Windows-Stil einfügen (klicken Sie auf Bearbeiten, klicken Sie auf Einfügen oder steuern Sie V), verwenden manchmal nur die Zwischenablage Zwischenablage. Einige Anwendungen tun beides (Google Chrome fügt mit einem Mittelklick aus dem Primärprogramm und mit einem Steuerungs-V aus der Zwischenablage ein). Als nächstes kommt die VNC-Zwischenablage (nur eine) und die Windows-Zwischenablage. (Wenn Sie einen vnc-Viewer verwenden, der auf X11 läuft, werden die Dinge komplizierter, aber das wird Sinn machen, nachdem Sie darüber nachgedacht haben.) Die VNC-Zwischenablage ist insofern besonders, als sie verschiedene Aktualisierungen der anderen Zwischenablagen verfolgt, um sie auf dem Laufenden zu halten Datum. Wenn Sie die primäre Zwischenablage ignorieren, ist dies ziemlich einfach, da die zuletzt aktualisierte Zwischenablage in alle anderen kopiert wird. Die Herausforderung besteht darin, dass das gewünschte Verhalten der primären Zwischenablage nicht genau definiert ist. Ich habe die folgenden Verhaltensweisen verschiedener vnc-Implementierungen gesehen:

  1. Ignorieren Sie die primäre, verwenden Sie nur die Zwischenablage.
  2. Ignorieren Sie die Zwischenablage, verwenden Sie nur die primäre.
  3. Für Unix-zu-Windows-Kopien die aktuellste verwenden, für Windows-zu-Unix-Kopien auf beide kopieren.
  4. Versuchen Sie, schlau zu sein:Verwenden Sie die Primärdatei nur, bis die Zwischenablage verwendet wird, und verwenden Sie dann nur die Zwischenablage.
  5. Versuchen Sie, schlauer zu sein:Verwenden Sie die primäre, bis die Zwischenablage geändert wird, ignorieren Sie dann die primäre, bis es eine Änderung von Windows gibt, verwenden Sie dann die nächste Änderung, und ignorieren Sie die primäre wieder nach der Verwendung der Zwischenablage.
  6. Versuchen Sie, noch schlauer zu sein. (Ich habe nie herausgefunden, was sie mit diesem hier vorhatten, aber normalerweise hat es das Richtige getan)
Verwandte:Wie kann man den Prozess beenden, der die apt-Sperre hält?

Als nächstes kommen die Werkzeuge. Es gibt zwei Tools, die ich für das Debuggen von Problemen mit der Zwischenablage für wesentlich halte:einen Texteditor (Notepad funktioniert dafür gut) und xclip. Ein Windows-Zwischenablage-Viewer ist nett, aber nicht unbedingt erforderlich.

Nun das Verfahren:Wählen Sie aus jeder Anwendung in der Gruppe, für die Sie die Fehlerbehebung durchführen, Text aus und kopieren Sie ihn, um den Status aller drei zugänglichen Zwischenablagen zu überprüfen. (Die vnc-Zwischenablage ist sehr schwierig direkt anzuzeigen und nicht direkt nützlich, da sie normalerweise keine Daten speichert, sondern nur die Metadaten.) Beantworten Sie diese Fragen:Welche Zwischenablage verwendet jede Anwendung? In welcher Reihenfolge werden sie verwendet?

Hoffentlich reichen diese Informationen für den Einstieg aus.


Linux
  1. So installieren Sie Vim (vi) unter Windows 10

  2. Syntax-Highlight | Lpr?

  3. Ubuntu 19.04 :Konfigurieren Sie vim

  4. Windows-Äquivalent von inet_aton

  5. Unveränderter Inhalt der Zwischenablage

So installieren Sie Python 3 unter Windows 10

VIM-Editor

Gnome Shell Extension Put Windows funktioniert nicht mehr?

Linux vs. Windows-Sicherheit

In die Zwischenablage des Systems kopieren statt in den vim-Puffer

Ist X11 gefährlich?