Freigabe der Mac OS X-Zwischenablage für den internen X-Server

21

Ich möchte in der Lage sein, zwischen nativen (Cocoa?) MacOS X-Apps und solchen, die unter Macs internem X-Server ausgeführt werden, zu kopieren und einzufügen.

Derzeit kann ich unabhängig kopieren und einfügen. Wenn ich Text in einem xterm-Fenster auswähle, kann ich ihn wieder in ein anderes X-basiertes Fenster einfügen. In ähnlicher Weise kann das Kopieren von Informationen außerhalb von X in Anwendungen eingefügt werden, die sich auch außerhalb von X befinden.

Als Beispiel, wenn ich (in genau dieser Reihenfolge):

  • Kopieren (Auswahl mit der Maus) "Mit X-Auswahl kopieren" in einem xterm-Fenster
  • Kopieren (Bearbeiten | Kopieren) "Text in Firefox" in Firefox
  • Einfügen (Shift Insert xmodmap) in Nano Ich erhalte "Kopieren mit X-Auswahl"
  • Einfügen (Bearbeiten | Einfügen) hier bekomme ich -> Text in Firefox
  • Einfügen in MacVIM (Bearbeiten | Einfügen) Ich erhalte "Text in Firefox"
  • Einfügen in / usr / bin / vim (nicht grafisch) Ich erhalte "Kopieren mit X-Auswahl"

Wie aktiviere ich die gemeinsame Nutzung der Zwischenablage zwischen X und Cocoa?

Die xmodmap, die ich verwende, um in X einzufügen, ist:

xmodmap -e "keycode 84 = Insert"

Dabei ist 84 die Eingabetaste des numerischen Tastenfelds. Also Shift Enter gibt mir Paste.

kwutchak
quelle
Ist dies für alle X-Anwendungen gleich? Versuchen Sie es in einfachen xtermoder ähnlichen vimoder etwas mit eigenen Puffern? Welche Version von OS X verwenden Sie? Meine Zwischenablage wird wie in 10.5.7 erwartet für Cocoa und X11 freigegeben.
Dienstag,
Hey jtb, danke für deine Hilfe. Ich benutze vim und bin mit den Problemen bei der Verwendung der internen Puffer vertraut. Normalerweise betrüge ich und wechsle in den Bearbeitungsmodus. Dann füge ich aus dem Bearbeitungsmenü von gvim (oder MacVim) ein. Ich habe meinem Beitrag einige zusätzliche Informationen hinzugefügt, um die anderen Teile Ihrer Frage zu klären.
kwutchak
Ah, danke für die extra Info. Ich sehe hauptsächlich das, was Sie beschreiben, obwohl das Einfügen in Schritt 3 funktioniert (mit der mittleren Maustaste habe ich kein Einfügen zugeordnet). Command-C wird anscheinend in die native Zwischenablage kopiert, wenn in X11 Text ausgewählt ist. Ich verstehe jedoch, dass die Verwendung der nativen X-Kopier- / Einfügeoperationen nicht ordnungsgemäß synchronisiert ist.
Dienstag,
Für die neueste Version von OSX (ich verwende 10.12) funktioniert Folgendes: stackoverflow.com/a/9525347/1353267
Samveen

Antworten:

14

Sie können die Synchronisierung der Zwischenablage aktivieren, ~/Library/Preferences/org.x.X11.plistindem Sie die folgenden fünf booleschen Schlüssel 1 bearbeiten und hinzufügen (und sie überprüfen).

sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select

Starten Sie X11 neu und sie sollten ordnungsgemäß synchronisiert werden.

Bearbeiten: Sie können die Schlüssel entweder mit dem Eigenschaftenlisten-Editor oder mit den folgenden Terminalbefehlen hinzufügen:

defaults write org.x.X11 sync_clipboard_to_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_clipboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_primary -boolean true
defaults write org.x.X11 sync_primary_on_select -boolean true

Eine alternative Lösung besteht darin, die neueste Version von XQuartz zu installieren, die diese Optionen über das Bedienfeld X11-Einstellungen >> Pasteboard verfügbar macht.

jtb
quelle
Diese Zeile wurde in mein xterm eingegeben und kopiert ...;) Diese Zeile wurde erfolgreich in mein xterm eingefügt ...;) Ein weiterer Fall, in dem meine Frau nicht verstehen würde, wie äußerst zufriedenstellend dieses Update ist !! Vielen vielen Dank.
kwutchak
Danke für die Frage. Der Mac hat mir die Angewohnheit gegeben, Cmd + C so weit zu treffen, dass ich nicht wusste, was mir fehlte. Aber ich bin ziemlich froh, das jetzt in meiner Konfiguration zu haben.
Dienstag,
Ich habe XQuarts installiert und die Optionen dafür geändert. Wenn ich zu einem Remote-System mit aktiviertem XForwarding (auf beiden Systemen) sshe und mit xclip (z. B .: ls | xclip) Dinge zur Zwischenablage hinzufüge, ändert sich die Zwischenablage auf meinem lokalen System (mac os x) nicht. Was vermisse ich?
KWD
4
Ich denke, die richtige Datei zum Schreiben ist jetztorg.macosforge.xquartz.X11
Keith Smiley
2

Sie können auch vim-7.3 neu kompilieren und Folgendes zu Ihrer .vimrc-Datei hinzufügen:

set clipboard=unnamed

Dann können Sie in vim 'yy' und in Cocoa mit Cmd + V einfügen. Und umgekehrt: Kopieren mit Cmd + V in Cocoa und Einfügen in Vim mit 'p'

user47498
quelle
Beachten Sie, dass Ihr Vim mit der clipboardOption on kompiliert werden muss, damit dies funktioniert. Sie können sehen, ob dies der Fall ist, indem Sie ausführen vim --version | grep clipboard. Wenn es heißt +clipboard, dann bist du gut. Wenn es heißt -clipboard, wird dies nicht funktionieren.
Egarcia