Kopieren-Einfügen funktioniert in MacVim nicht, wenn es in tmux gestartet wird

19

Das Kopieren und Einfügen von MacVim funktioniert nicht mehr, wenn ich es von einem tmux-Terminal aus starte (unter zsh). Wenn ich tmux beende und dann MacVim starte, funktioniert copy-past. Irgendeine Idee, wie man das behebt?

Lisa
quelle
Wie kopierst du? Ich kenne zwar Ihr spezielles Problem nicht, aber im Allgemeinen funktioniert eine Verknüpfung nicht mit einem anderen Testament.
Yitzchak
Befehl C / V. Dinge funktionieren gut, wenn ich außerhalb von tmux starte, so ist es definitiv mit tmux verwandt
Lisa

Antworten:

16

Sie können den in einem verwandten Thread erwähnten Patch ( "OSX 10.6.5, Terminal.app, iTerm.app pbpaste, pbcopy funktionieren nicht unter tmux" ) von der Mailingliste tmux-users (tatsächlich gehostet bei sf.net, aber Ich verabscheue ihre Archivschnittstelle ).

Hinweis: Der Patch wurde zu einem Zeitpunkt auf den MacPorts-Port angewendet , später jedoch zurückgesetzt, wenn vermutet wurde, dass er andere Fehler verursacht . Allerdings könnten diese Fehler tatsächlich dadurch verursacht worden sein, dass die falsche Version von libevent gemocht wurde (und es scheint, dass neuere Versionen von tmux mit beiden Versionen von libevent funktionieren ).


Da helgeg es erwähnt hat , erwähne ich meine Notizen zu meinem Versuch, den oben genannten Patch zu verwenden.

Zusammenfassung: Ich fand den Patch unzuverlässig. Es ermöglichte den Zugriff auf das Pasteboard, löste jedoch viele Warnmeldungen von meiner Installation von libevent Version 2 aus (möglicherweise ist Version 1 weniger betroffen). Es verhindert auch, dass der tmux- Server seine normale Verzweigung (2) (über den Dämon (3) ) ausführt , was eine wesentliche Änderung der Funktionsweise des Serverprozesses darstellt.

Am Ende habe ich ein Programm veröffentlicht, das das Problem umgeht, ohne tmux zu patchen . Benutzer, die Probleme mit der Verwendung des Pasteboards unter tmux hatten (und bei denen der oben genannte Patch nicht zufriedenstellend funktioniert), möchten möglicherweise meine Problemumgehung ausprobieren.

Chris Johnsen
quelle
Vielen Dank für Ihre Untersuchung zu diesem wirklich ärgerlichen Problem und der brillanten Lösung, es funktioniert wie ein Zauber
mko
Vielen Dank dafür. Ich kann jetzt Text von iTerm kopieren und in Mac Vim einfügen, der in tmux gestartet wurde. Wenn ich ^b + [jedoch den Durchsuchen-Modus starte und Space+ Enterzum Auswählen und Kopieren von Text verwende, kann ich ihn nicht in mac vim einfügen. Bitte um Rat?
Phuong Nguyen
1
@PhuongNguyen: Das Beenden copy-modeso kopiert einfach in einen tmux- Puffer, nicht in das Mac-Pasteboard. Sie könnten einen Vim- Befehl verwenden :r!tmux save-buffer -, um den Puffer zu lesen. Oder Sie können die Daten auf das Mac-Pasteboard kopieren: tmux save-buffer - | reattach-to-user-namespace pbcopy(möglicherweise als tmux- Bindung über run-shell) oder (in tmux 1.8+) copy-modemit einer Bindung wie bind -t vi-copy y copy-pipe 'reattach-to-user-namespace pbcopy'(verwenden Sie diese Option, yanstatt EnterIhre Auswahl zu treffen ).
Chris Johnsen
Danke, Mann. Ich benutze die Bindung bis yjetzt: D
Phuong Nguyen
8

Chris Johnsen hat einen Wrapper entwickelt, der das Problem der Verwendung von pbcopy und pbpase unter OSX löst. https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard (die Hauptursache für das oben genannte MacVim-Problem).

helgeg
quelle
schnell und einfach ! great
romeovs
0

Ein weiterer hackiger Weg, um das Problem zu umgehen, das Chrish Johnsen ausführlich beschrieben hat:

(Um es kurz zu machen: Tmux verliert aufgrund der Art und Weise, wie es sich selbst startet, den Zugriff auf den OS X-Paste-Buffer.)

ist immer daran zu denken, MacVim über den Anwendungsordner oder eine Nicht-TMUX-Terminalsitzung zu öffnen.

und benutze dies

http://webexpose.org/2008/10/13/open-macvim-tabs-from-command-line

Tutorial, wie Sie Dateien immer auf einer neuen Registerkarte im selben MacVim-Fenster öffnen.

Dieses MacVim-Fenster hat bereits Zugriff auf den Einfügepuffer und Sie müssen nicht die anderen Rahmen durchlaufen.

Aber Sie müssen daran denken, MacVim beim ersten Laden nicht mit tmux zu starten :(

Wille
quelle