web-dev-qa-db-fra.com

Comment faire défiler dans tmux en utilisant la souris?

J'utilise tmux 1.8 sur Mac OS X 1.9.3 dans Terminal.app avec une souris magique Apple. J'utilise aussi oh-my-zsh.

Je ne peux pas faire défiler du tout avec la souris lorsque tmux est en cours d'exécution. Il ne fait que faire défiler toute la fenêtre du terminal qui dépasse la sortie de tmux.

J'ai essayé ces paramètres dans le fichier tmux.conf mais rien ne fonctionne:

set -g mode-mouse on
setw -g mode-mouse on
set -g terminal-overrides 'xterm*:smcup@:rmcup@' 

Je me suis assuré de recharger le fichier tmux.conf, j'ai également tué une session et en ai créé de nouvelles pour en être sûr. Et ça ne marche toujours pas.

S'il vous plaît aider. Voici mon tmux.conf entier

set -g default-terminal "xterm-256color"
set -g history-limit 10000
set -g status-interval 60

# status config
set -g status-utf8 on
set -g status-position top
set -g status-fg colour15
set -g status-bg colour24


# status line left side
set -g status-left-length 40
set -g status-left "#[fg=colour214,bold] #S #[fg=colour45] "

# status line right side
set -g status-right "#(~/.dotfiles/bin/tmux_battery_status) | %I:%M %p | %D "

# no more machine counting
set -g base-index 1
setw -g pane-base-index 1

# enable activity alerts
setw -g monitor-activity on
set -g visual-activity on

# window list colors
setw -g window-status-fg colour250
setw -g window-status-bg default
setw -g window-status-format " #I #W "
setw -g window-status-current-format "  #W "
setw -g window-status-current-fg colour118
setw -g window-status-current-bg default
setw -g window-status-activity-attr underscore,bold

# center the window list
set -g status-justify left

# pane colors
set -g pane-border-fg colour24
set -g pane-border-bg default
set -g pane-active-border-fg colour15
set -g pane-active-border-bg colour15

# command / message line colors
set -g message-fg colour15
set -g message-bg black
set -g message-attr bright

# rebind clear screen with Ctrl-l
bind C-l send-keys 'C-l'

# reload tmux conf
bind r source-file ~/.tmux.conf \; display "Reloaded tmux.conf!"

# setup reattach-to-user-namespace for copy and paste
set-option -g default-command "reattach-to-user-namespace -l $Shell"

# use vim keybindings in copy mode
setw -g mode-keys vi

setw -g mode-mouse on
setw -g mouse-utf8 on
setw -g mouse-select-pane on
setw -g mouse-select-window on
setw -g mouse-resize-pane on

# setup 'v' to begin selection as in vim
bind -t vi-copy v begin-selection
bind -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

# update default binding of 'enter' to also use copy-pipe
unbind -t vi-copy Enter
bind -t vi-copy enter copy-pipe "reattach-to-user-namespace pbcopy"

# splitting panes
bind | split-window -h
bind - split-window -v

# fast resizing (-r for repeatable)
bind -r h resize-pane -L 5
bind -r j resize-pane -D 5
bind -r k resize-pane -U 5
bind -r l resize-pane -R 5

# tmux navigator with vim (-n allows binding without tmux prefix)
bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-h) || tmux select-pane -L"
bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-j) || tmux select-pane -D"
bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-k) || tmux select-pane -U"
bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-l) || tmux select-pane -R"
bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys 'C-\\') || tmux select-pane -l"
17
RantriX

J'ai compris le problème. Si vous utilisez le fichier Terminal.app par défaut, les événements de la souris ne sont pas transmis aux applications exécutées dans le terminal. Pour résoudre ce problème, vous devez installer MouseTerm, qui nécessite l'installation de SIMBL. Vous pouvez trouver toutes les instructions ici:

https://bitheap.org/mouseterm/

Notez que si vous utilisez Mac OS X 10.9, lorsque vous essayez d’exécuter le script d’installation de MouseTerm, le fichier est corrompu. Pour résoudre ce problème, copiez simplement le fichier de bundle dans le dossier des plugins SIMBL et redémarrez Terminal.app pour que cela fonctionne. Vous pouvez trouver le dossier des plugins SIMBL sur ce chemin:

/ Bibliothèque/Application Support/SIMBL/Plugins

14
RantriX

À partir de OS X 10.11 (Beta) El Capitan, ni SIMBL ni MouseTerm n'est nécessaire.

J'avais la même question, mais vous y avez répondu dans le PO:

set -g mode-mouse on
setw -g mode-mouse on
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

c’est tout ce qui est nécessaire dans 10.11 avec Terminal.app - notez que d’autres émulateurs de terminaux peuvent encore avoir besoin de SIMBL; c'est une mise à jour de Terminal qui signifie que cela ne semble plus être nécessaire, pas à cause de la mise à jour d'OS X en tant que telle.

11
OJFord

Il y a quelques changements pour Tmux 2.1

  • Le mode souris a été réécrit. Il n'y a plus d'options pour:

    • volet de redimensionnement de la souris
    • volet de sélection de la souris
    • fenêtre de sélection de la souris
    • mode-souris

    Au lieu de cela, il n'y a qu'une seule option: "souris" qui active complètement le support de la souris.

Je suppose que ce serait set -g mouse on

7
daniel

Un moyen simple et facile de faire défiler sans configuration est d’appuyer sur Ctrl-B puis sur la page suivante/précédente.

1
coderek