So kopieren und fügen Sie mit tmux mit der Maus ein

So kopieren und fügen Sie mit tmux mit der Maus ein

Ich verwende tmuxOSX. Beim Kopieren und Einfügen vom Terminal aus tmuxkann ich Text gedrückt halten Optionund auswählen. Allerdings gelingt es mir nicht, den Text im Fenster zu halten. Wenn ich also Text kopieren möchte, muss ich das Fenster entweder ganz nach links verschieben oder es vergrößern, wie unten gezeigt.

Das ist zusätzlich zum Gedrückthalten der OptionTaste ein Ärgernis. Ich weiß, dass ich in den visuellen Modus wechseln und Vim-Bewegungen verwenden kann, um dorthin zu gelangen, aber ich hätte lieber eine Möglichkeit, meine Maus zu verwenden. Hat jemand eine Problemumgehung dafür gefunden?

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Antwort1

Fügen Sie diesen Codeblock in Ihr ein ~/.tmux.conf. Dadurch wird die Mausintegration aktiviert, sodass Sie mit der Maus aus einem Bereich kopieren können, ohne zoomen zu müssen.

set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -t vi-copy    C-WheelUpPane   halfpage-up
bind -t vi-copy    C-WheelDownPane halfpage-down
bind -t emacs-copy C-WheelUpPane   halfpage-up
bind -t emacs-copy C-WheelDownPane halfpage-down

# To copy, drag to highlight text in yellow, press Enter and then release mouse
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "pbcopy"

Starten Sie danach Ihre tmux-Sitzung neu. Markieren Sie mit der Maus einen Text, lassen Sie die Maus jedoch nicht los. Drücken Sie nun, während der Text noch markiert ist und die Maus gedrückt ist, die Eingabetaste. Der markierte Text verschwindet und wird in Ihre Zwischenablage kopiert. Lassen Sie nun die Maus los.

Abgesehen davon gibt es auch einige coole Dinge, die Sie mit der Maus machen können, wie z. B. nach oben und unten scrollen, den aktiven Bereich auswählen usw.

Wenn Sie einneuere Version von tmuxVersuchen Sie unter macOS Folgendes anstelle des oben genannten:

# macOS only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"

Wenn Sie iTerm unter macOS verwenden, gehen Sie zu iTerm2 > Einstellungen > Registerkarte „Allgemein“ und aktivieren Sie im Abschnitt „Auswahl“ die Option „Anwendungen im Terminal dürfen auf die Zwischenablage zugreifen“.

Und wenn SieLinuxund eine neuere Version von tmux, dann

# Linux only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"

In Debian und Debian-basierten Distributionen (Ubuntu, Kali) müssen Sie möglicherweise Folgendes installieren xclip:

sudo apt-get install -y xclip

(Sie können auchhttps://github.com/gpakosz/.tmuxfür viele andere tmux-Optionen.)

Antwort2

Fügen Sie diese 2 Zeilen in ~/.tmux.conf hinzu

set -g @plugin 'tmux-plugins/tmux-yank'
set -g mouse on

und dann das Plugin installieren, funktioniert bei mir.

https://github.com/tmux-plugins/tmux-yank

Antwort3

Was bei mir in Ubuntu 20.04 funktioniert hat

  • Ich habe den Mausmodus aktiviert
  • Den Text ausgewählt und gleichzeitig die Tasten Shift+ und mit dem Cursor ausgewählt haben
  • Lassen Sie Shiftdie Maustaste los, sobald Sie den Text ausgewählt haben
  • Kopiere den Text Ctrl+ Shift+c
  • Einfügen an beliebiger Stelle (außerhalb von tmuxsich selbst) Ctrl+ v, da hierdurch der Text in die Systemzwischenablage kopiert wird

Antwort4

Unter FreeBSD können Sie ydie Taste (vi-Stil) verwenden, um ausgewählten Text zu kopieren, während Sie die linke Maustaste auf dem ausgewählten Text gedrückt halten, wenn mouse oneingestellt ist ~/tmux.conf:-)

set -g mouse on
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'

Denken Sie daran, xclipdas Paket (als Root) mit zu installieren pkg install xclip:-)

Noch ein paar nützliche Hinweise:

  • Durch die Verwendung set -g repeat-time 0werden folgende tmux-Befehlstasten deaktiviert, wenn Sie in einem Fenster einen Editor und in den anderen Fenstern Shell- oder andere Cursor-gesteuerte Anwendungen haben. Normalerweise wechseln folgende Cursortasten für einige Zeit zwischen den Fenstern, und das kann in manchen Fällen störend und ärgerlich sein, wenn Sie den Cursor schnell in dem Fenster verwenden möchten, zu dem Sie gewechselt sind.
  • Verwenden Sie es set -g status-style fg=white,bg=green, um einfach zwischen verschiedenen Sitzungen auf verschiedenen Remote-Rechnern zu unterscheiden. Wenn Sie auf verschiedenen Rechnern unterschiedliche bgWerte festlegen, können Sie schnell den Rechner identifizieren, auf dem Sie arbeiten möchten :-)

verwandte Informationen