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?
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.
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).
Antworten:
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.
quelle
^b + [
jedoch den Durchsuchen-Modus starte undSpace
+Enter
zum Auswählen und Kopieren von Text verwende, kann ich ihn nicht in mac vim einfügen. Bitte um Rat?copy-mode
so 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 überrun-shell
) oder (in tmux 1.8+)copy-mode
mit einer Bindung wiebind -t vi-copy y copy-pipe 'reattach-to-user-namespace pbcopy'
(verwenden Sie diese Option,y
anstattEnter
Ihre Auswahl zu treffen ).y
jetzt: DChris 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).
quelle
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 :(
quelle