GNU/Linux >> Znalost Linux >  >> Linux

tmux select-pane -příkaz LDUR - deaktivuje chování automatického cyklování

Přidejte toto do ~/.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"

V zásadě by to mělo běžet s tmux verzemi 2.6 + (poté přidali proměnné prostředí pane_at_top, pane_at_bottom, pane_at_left, pane_at_right. U tmux

Navíc, pokud chcete spustit vlastní shell, udělejte to pomocí set-option -g default-command fish (nebo zsh nebo csh nebo cokoliv jiného). Alternativně, pokud chcete jako výchozí shell tmux použít shell bez bash, nastavte jej jako takový (set-option -g default-shell ) a poté můžete výše uvedenou logiku kódovat ve skriptu shellu dle vašeho výběru. Nicméně (jak tomu bylo v mém případě) použití určitých shellů vám neposkytuje pohodlí jednořádkových příkazů if (nebo to může být jen tím, že o určitých shellech nevím dost, nebo možná funguje více řádků za běhu- shell.

Zdroj:vlákno github Issues, které jsem založil


Děkujeme Gilgamesh Skytrooperovi za zveřejnění problému na githubu. Zde je jednoduchá verze, která může pracovat s více relacemi a nevyvolává subproces shellu.

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'

Odebrat -n pokud chcete zadat prefix (C-b ) nejprve a změňte vazby M-[awds] podle vašeho vkusu.


Linux
  1. Jak zakázat alias v Bash pro jeden příkaz?

  2. Zakázat opakování klávesnice z příkazového řádku?

  3. Zakázat Moderátora aktivity na ploše

  1. Jak zakázat konkrétní příkaz pro konkrétního uživatele v Linuxu

  2. tmux:zamrzne a nenačte se a nereaguje na žádný příkaz volby

  3. Jak mohu vytvořit zástupce pro změnu velikosti panelů v okně tmux?

  1. Bash Clear Command Divné chování Smaže Scrollback Buffer.?

  2. Zabránit zavření podokna/okna po dokončení příkazu – Tmux?

  3. tmux:jak svázat klíč pro spuštění příkazu shell?