GNU/Linux >> Linux Esercitazione >  >> Linux

comando tmux select-pane -LDUR - disabilita il comportamento di ciclo automatico

Aggiungi questo al tuo ~/.tmux.conf :

set-option -g default-shell /bin/bash
unbind Up     
unbind Down   
unbind Right   
unbind Left  
bind Up run-shell "if [ $(tmux display-message -p '#{pane_at_top}') -ne 1 ]; then tmux select-pane -U; fi"
bind Down run-shell "if [ $(tmux display-message -p '#{pane_at_bottom}') -ne 1 ] ; then tmux select-pane -D; fi"
bind Right run-shell "if [ $(tmux display-message -p '#{pane_at_right}') -ne 1 ]; then tmux select-pane -R; fi"
bind Left run-shell "if [ $(tmux display-message -p '#{pane_at_left}') -ne 1 ]; then tmux select-pane -L; fi"

Fondamentalmente, questo dovrebbe funzionare con le versioni tmux 2.6 + (dopo di che hanno aggiunto le variabili di ambiente pane_at_top, pane_at_bottom, pane_at_left, pane_at_right. Per tmux

Inoltre, se vuoi lanciare una shell personalizzata, fallo tramite set-option -g default-command fish (o zsh o csh o qualsiasi altra cosa). In alternativa, se vuoi usare una shell non bash come shell predefinita di tmux, impostala come tale (set-option -g default-shell ) e quindi puoi codificare la logica sopra nello script di shell di tua scelta. Tuttavia, (come nel mio caso) l'uso di determinate shell non ti dà la comodità di comandi if di una riga (o potrebbe essere che non ne so abbastanza su determinate shell, o forse più righe funzionano in run- guscio.

Fonte:thread github Issues che ho avviato


Grazie a Gilgamesh Skytrooper per aver postato il problema su github. Ecco una versione semplice che può funzionare con più sessioni e non richiama un sottoprocesso della shell.

bind -n M-a if -F '#{pane_at_left}'   '' 'select-pane -L'
bind -n M-d if -F '#{pane_at_right}'  '' 'select-pane -R'
bind -n M-w if -F '#{pane_at_top}'    '' 'select-pane -U'
bind -n M-s if -F '#{pane_at_bottom}' '' 'select-pane -D'

Rimuovi -n se vuoi premere il prefisso (C-b ) prima, e cambia le associazioni M-[awds] a tuo piacimento.


Linux
  1. Impedisci la chiusura di riquadro/finestra al completamento del comando – Tmux?

  2. Disabilita Moderatore attività desktop

  3. Come disabilitare la modifica della mia cronologia in bash

  4. Come posso creare un collegamento per ridimensionare i riquadri in una finestra tmux?

  5. Disattiva i segnali acustici di sistema su SSH

Come disabilitare SElinux su CentOS 7

Come abilitare e disabilitare il WiFi su Kali Linux

4 modi per disabilitare/bloccare alcuni aggiornamenti del pacchetto utilizzando il comando Yum

Comando per disabilitare permanentemente SELinux su AlmaLinux 8

Come migrare un server DNS BIND su un nuovo hardware?

tmux:come associare una chiave per avviare il comando shell?