
Ich verwende tmux
OSX. Beim Kopieren und Einfügen vom Terminal aus tmux
kann ich Text gedrückt halten Option
und 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 Option
Taste 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?
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.
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
Shift
die Maustaste los, sobald Sie den Text ausgewählt haben - Kopiere den Text
Ctrl
+Shift
+c
- Einfügen an beliebiger Stelle (außerhalb von
tmux
sich selbst)Ctrl
+v
, da hierdurch der Text in die Systemzwischenablage kopiert wird
Antwort4
Unter FreeBSD können Sie y
die 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 on
eingestellt 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, xclip
das Paket (als Root) mit zu installieren pkg install xclip
:-)
Noch ein paar nützliche Hinweise:
- Durch die Verwendung
set -g repeat-time 0
werden 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 unterschiedlichebg
Werte festlegen, können Sie schnell den Rechner identifizieren, auf dem Sie arbeiten möchten :-)