copy-paste не работает в MacVim при запуске в tmux

19

Копирование-вставка MacVim перестает работать, когда я запускаю его с терминала tmux (на zsh). Если я выхожу из tmux, а затем запускаю MacVim copy-past works. Есть идеи как это исправить?

Лиза
источник
Как ты копируешь? Хотя я не знаком с вашей конкретной проблемой, в целом, когда один ярлык не работает, другой будет.
Ицхак
команда C / V. все работает хорошо, если я запускаю вне tmux, так что это определенно связано с tmux
Lisa

Ответы:

16

Вы можете попробовать патч, упомянутый в связанном потоке ( «OSX 10.6.5, Terminal.app, iTerm.app pbpaste, pbcopy не работают под tmux» ) из списка рассылки tmux-users (фактически размещенного на sf.net, но Я ненавижу их интерфейс архива ).

Примечание: исправление было когда-то применено к порту MacPorts, но позже оно было отменено, когда предполагалось, что оно вызывает другие ошибки . Однако эти ошибки могли быть вызваны неправильной версией libevent (и кажется, что последние версии tmux будут работать с любой версией libevent ).


Поскольку helgeg поднял его , я упомяну свои заметки о моей попытке использовать вышеупомянутый патч.

Резюме: я нашел патч ненадежным. Он разрешил доступ с картона, но вызвал много предупреждающих сообщений от моей установки libevent версии 2 (возможно, версия 1 менее затронута). Это также препятствует тому, чтобы сервер tmux выполнял свой обычный fork (2) (через daemon (3) ), что является значительным изменением того, как серверный процесс был разработан для работы.

Я закончил тем, что опубликовал программу, которая работает вокруг проблемы без исправления Tmux . Люди, у которых были проблемы с использованием монтажной панели под tmux (и те, для которых вышеупомянутый патч не работает удовлетворительно), могут попробовать мой обходной путь.

Крис Джонсен
источник
Большое спасибо за ваше исследование об этой действительно раздражающей проблеме и блестящем решении, это работает как очарование
mko
Большое спасибо за это. Я могу скопировать текст из iTerm и вставить в Mac vim, запущенный сейчас в tmux. Однако, если я ^b + [начну режим просмотра и использую Space+ Enterдля выделения и копирования текста, я не смогу вставить его в Mac vim. Пожалуйста посоветуй?
Фуонг Нгуен
1
@PhuongNguyen: выход, copy-modeподобный этому, просто копирует в буфер tmux , а не в монтажную панель Mac. Вы можете использовать команду Vim, например, :r!tmux save-buffer -для чтения буфера. Или вы можете организовать копирование данных на монтажную панель Mac: tmux save-buffer - | reattach-to-user-namespace pbcopy(может быть, через привязку tmux через run-shell) или (в tmux 1.8+) выйти copy-modeс привязкой типа bind -t vi-copy y copy-pipe 'reattach-to-user-namespace pbcopy'(то есть использовать это yвместо того, Enterчтобы выбрать).
Крис Джонсен
Спасибо чувак. Я сейчас использую привязку y: D
Phuong Nguyen
8

Крис Джонсен создал оболочку, которая решает проблему использования pbcopy и pbpase в OSX. https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard (основная причина проблемы MacVim выше).

helgeg
источник
быстро и просто ! отлично
romeovs
0

Еще один хакерский способ обойти проблему, которую Крис Йонсен подробно описал,

(Короче говоря: Tmux теряет доступ к буферу вставки OS X из-за того, как он запускается сам)

это всегда не забывать открывать MacVim из папки приложений или сеанса терминала не tmux.

и использовать это

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

учебник о том, чтобы всегда открывать файлы в новой вкладке в том же окне MacVim.

Это окно MacVim уже будет иметь доступ к буферу вставки, и вам не придется проходить через другие циклы.

Но вы должны помнить, чтобы не запускать MacVim с tmux при первой загрузке :(

Будет
источник