TL; DR: Sie können clipmon
auf MELPA verfügbar verwenden und aktivieren clipmon-mode
.
Hinweis: Die folgenden Details gelten für X-Server, das Paket sollte jedoch auf jeder Plattform funktionieren.
Wie funktioniert die Zwischenablage?
Die Zwischenablage wird als asynchroner Prozess implementiert. Wenn Sie aus einer Anwendung kopieren, wird diese zum "Eigentümer der Zwischenablage", legt die kopierten Daten jedoch nirgendwo ab. Wenn Sie in eine Anwendung einfügen, werden die Daten vom aktuellen "Eigentümer der Zwischenablage" angefordert.
Referenz: http://www.jwz.org/doc/x-cut-and-paste.html
So erhalten Sie den Inhalt der Zwischenablage
Nach meinem Verständnis besteht die "zuverlässige" Methode, um festzustellen, ob neue Daten in der Zwischenablage vorhanden sind, darin, den X-Server regelmäßig abzufragen, um zu überprüfen, was sich dort befindet. Für Emacs erledigt das Paket clipmon ( https://github.com/bburns/clipmon ) dies. Standardmäßig alle zwei Sekunden.
Auszug aus der README:
Außerdem werden Änderungen an der System-Zwischenablage zum Kill-Ring hinzugefügt, sodass Emacs zu einem Zwischenablage-Manager für Text wird. Anschließend können Sie mit einem Paket wie Browse-Kill-Ring oder Helm-Ring den Verlauf Ihrer Zwischenablage anzeigen und verwalten.
(Bitte beachten Sie, dass ich dieses Paket nicht ausprobiert habe, aber es sieht auf jeden Fall nach einer Lösung aus.)
Schließlich fand ich eine ungeschickte Lösung, die sich auf das Konzept von bezog
clipmon
. Aber sehr einfach mit dem Code einer Zeile:Der Kill Ring wird alle 3 Sekunden mit der Systemzwischenablage synchronisiert. Natürlich können Sie das Intervall auf einen noch kleineren Wert ändern.
PS: Der Grund, warum ich diese Funktionalität benötige, ist, dass ich einen Befehl definieren möchte, der mit Argumenten aufgerufen werden kann, die ich extern kopiert habe.
Vielen Dank für die Antworten von @kaushalmodi und @YoungFrog.
quelle