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


0

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

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

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.