Копия / вставляет текстовые выборы между tmux и буфером обмена

я предпочел бы сохранять псевдоним ко всем частым ошибкам, которые происходят пример

alias ls-lh = ls -lh

Используйте псевдоним для фиксации недостающих опечаток пространства:

alias cd..='cd ..

Используйте HISTIGNORE для определения всех команд, которые Вы хотите проигнорировать из истории. использовать export HISTIGNORE="$LIST" для списка этого, Вы хотите проигнорировать внутреннюю историю

Существует несколько других опций интереса, которым управляет встроенная команда 'shopt'.

посмотрите здесь

15
15.05.2017, 17:34
4 ответа

Используйте следующее tmux.conf с copy-pipe в новых версиях tmux (1.8 +):

set -g mouse on
# To copy:
bind-key -n -t emacs-copy M-w copy-pipe "xclip -i -sel p -f | xclip -i -sel c "

# To paste:
bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"
  1. prefix+[ в режим копии
  2. избранное содержание с мышью (содержит)
  3. M-w скопировать ту часть в системный буфер обмена
  4. C-y вставка это внутри tmux, C-v вставлять его в другом регулярном применении как веб-браузер.
19
27.01.2020, 19:49
  • 1
    , Этот ответ заслуживает большего количества upvotes, это является лучшим для основанных на Linux установок. –  Louis Kottmann 20.03.2014, 15:47
  • 2
    В tmux 2.0 это run-shell вместо run –  roign 07.02.2017, 11:43
  • 3
    @LouisKottmann: почему просто основанный на Linux? –  schaiba 05.05.2017, 11:59
  • 4
    я не могу прокомментировать другие системы, но я полагаю, что Mac использует bpaste вместо xclip обычно –  Louis Kottmann 05.05.2017, 16:59

-temacs-copy не опечатка. Ведущий тире означает, что это - опция к bind-keys команда (наряду с аргументом в пользу опции). Это эквивалентно -t emacs-copy, если Вам нравится этот лучше.

Режим копии использует другой набор привязки и commands1, чем “нормальный режим”. copy-pipe команда только доступна в альтернативных таблицах привязки “режима”. Когда mode-keys emacs, режим копии будет использовать emacs-copy таблица, таким образом, необходимо связать M-w с copy-pipe в той таблице.

bind-key -temacs-copy M-w copy-pipe "xclip -i -selection clipboard"

Будьте тщательным созданием слишком многих “никаких префиксов” привязка. Они будут мешать вводить те связанные ключи к программе, работающей внутри tmux (например, когда Вы захотите ввести C-y к экземпляру tty-режима Emacs, работающего внутри tmux). Можно всегда (снабжать префиксом), связывают некоторый ключ, который делает send-keys C-y, но это могло бы сделать это более громоздким, чтобы ввести при необходимости в нем достаточно часто.


1 Только перемещение и редактирующие команды доступны. За исключением copy-pipe, эти команды не берут аргументов (это - то, что страница справочника означает с ним, говорит, что “Одна команда в принимает аргумент”; “в”, вероятно, опечатка или ошибка редактирования).

2
27.01.2020, 19:49

Обратите внимание, что в Tmux 2.4 (начиная с этой фиксации) синтаксис привязки изменился. Я перефразирую этот комментарий Github , чтобы кратко обобщить изменения:

  1. заменить -t на -T
  2. заменить vi-<имя> с -mode-vi
  3. префикс команды с send-keys -X

У меня было:

bind-key -n -t vi-copy Enter copy-pipe 'xclip -i -sel p -f | xclip -i -sel c'
bind-key -n -t vi-copy MouseDragEnd1Pane copy-pipe 'xclip -i -sel p -f | xclip -i -sel c'

, которое мне нужно было изменить на:

bind-key -n -T copy-mode-vi Enter send-keys -X copy-pipe 'xclip -i -sel p -f | xclip -i -sel c'
bind-key -n -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe 'xclip -i -sel p -f | xclip -i -sel c'

Из changelog:

Ключевые таблицы претерпели серьезные изменения. Таблицы клавиш режимов больше не отдельно от основных ключевых таблиц. Все таблицы режимов были удалены, вместе с флагом -t для привязки и отмены привязки ключа.

Заменены таблицы emacs-edit, vi-edit, emacs-choose и vi-choose. фиксированными привязками клавиш в командной строке и выберите режимы. Клавиши режимов и параметры статус-ключей остаются.

Таблицы emacs-copy и vi-copy были заменены режимом копирования и таблицы режима копирования-vi. Команды отправляются с использованием флагов -X и -N для отправить-ключи.Таким образом, следующее:

bind -temacs-copy C-Up scroll-up
bind -temacs-copy -R5 WheelUpPane scroll-up

становится:

bind -Tcopy-mode C-Up send -X scroll-up
bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up

Эти изменения позволяют использовать полный синтаксический анализатор команд (включая последовательности команд) и используемый набор команд - например, обычная командная строка с редактированием и история теперь используется для поиска, прыжков и т.д. вместо кастомного один. Привязка C-r по умолчанию теперь следующая:

bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward-incremental '%%'"

Есть также несколько новых команд, доступных с помощью send -X, таких как копировать-трубу-и-отменить.

10
27.01.2020, 19:49

В то время как другие ответы могут помочь, вот как я делаю то же самое:

  • Shift + выделение текста курсором.
  • Ctrl + Shift + C, чтобы скопировать текст в буфер обмена.
7
27.01.2020, 19:49

Теги

Похожие вопросы