Как скопировать в системный буфер обмена из вывода tmux после выбора мыши?

Теперь для копирования в системный буфер обмена мне нужно выбрать текст мыши в окне tmux с помощью клавиши Shift. И тогда я должен запустить эту команду:

tmux save-buffer - | reattach-to-user-namespace pbcopy

Есть ли возможность сохранить в системный буфер обмена? Ключ связывается или лучше делает это автоматически после освобождения Shift.

Моя конфигурация tmux: https://gist.github.com/3641580

Ответ 1

Если вы используете iTerm2, вы можете скопировать текст в сеансе Tmux, удерживая клавишу Option, перетаскивая мышь, чтобы сделать выбор.

Затем можно вставлять текст в любом месте с Cmd + V, как обычно. Найденный здесь: http://web.archive.org/web/20131226003700/http://ootput.wordpress.com/2013/08/02/copy-and-paste-in-tmux-with-mouse/

Ответ 2

Здесь есть аналогичный вопрос: https://unix.stackexchange.com/questions/15715/getting-tmux-to-copy-a-buffer-to-the-clipboard

Решение найдено там:

# move x clipboard into tmux paste buffer
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# move tmux copy buffer into x clipboard
bind C-y run "tmux show-buffer | xclip -i"

Также проверьте: http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/

если вы задали следующие параметры:

мыши выбрать-панель

мыши выбрать окна

вы заметите, что вы вообще не можете выбирать текст.

решение состоит в использовании клавиши shift.

hold down the shift key and then left click and drag across the target text. you must also hold down the shift key and then middle click in order to paste the text.

Ответ 3

Если вы используете iTerm2 3.x, вы можете сделать операцию копирования/вставки, включив Applications in terminal may access clipboard:

введите описание изображения здесь

Просто выделите текст мышью, чтобы скопировать его в буфер обмена OS X! Не нужно нажимать Option, как это было предложено в ответе accepter.

Вы также можете вставить из буфера обмена OS X в tmux с помощью обычного Cmd + V.

Ответ 4

Помещение этого в мой файл ~/.tmux.conf работает для меня:

bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'"

Все остальные потенциальные решения, которые я нашел, копировали какой-то пустой контент в буфер обмена OSX.

Единственная проблема заключается в том, что это похоже на возврат каретки в конец вставленного содержимого.

Ответ 5

Для os x, если вы используете приложение "Terminal". Вы можете отключить прокрутку мыши и использовать обычные функции копирования/вставки (cmd + c/cmd + v):

set-option -g mouse-select-pane off
set-option -g mouse-resize-pane off
set-option -g mouse-select-window off
set-window-option -g mode-mouse off

или вы можете использовать прокрутку мыши и выбрать текст с помощью клавиши "fn":

set-window-option -g mode-mouse on

Ответ 6

В OSX с использованием tmux версии 2.2 или новее добавьте в файл tmux.conf следующее:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Для tmux версии 2.4, поскольку они любезно решили изменить синтаксис команды, вы должны использовать:

bind-key -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"

Обратите внимание, что вам также может потребоваться использовать reattach-to-user-namespace pbcopy вместо plain pbcopy.

Ответ 8

нажмите левую кнопку мыши и удерживайте ее, выберите текст в панели и еще удерживайте кнопку нажатой. затем нажмите "y", что сохраняет выбор в буфере обмена и ускользает из режима выбора/копирования.

работает здесь с iTerm 3.1.b.5, tmux 2.5 и следующей конфигурацией:

### copy & paste -------------------------------------------------------
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Setup 'v' to begin selection as in Vim
bind-key -T copy-mode-vi v send -X begin-selection
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"

Ответ 9

Сегодня я сделал версию, использующую netcat, которая довольно проста.

https://github.com/base698/tmux-copy-paste-mac-osx

Вот tmux.conf:

bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-pipe 'nc localhost 5682'
bind p run-shell 'nc localhost 5683; nc localhost 5683 | tmux load-buffer -' \; paste-buffer

Работает с мышью в 1,8