GNU/Linux >> Linux の 問題 >  >> Linux

tmux select-pane -LDUR コマンド - 自動循環動作を無効にする

これを ~/.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"

基本的に、これは tmux バージョン 2.6 以降で実行する必要があります (その後、pane_at_top、pane_at_bottom、pane_at_left、pane_at_right 環境変数が追加されました。tmux

さらに、カスタム シェルを起動する場合は、set-option -g default-command fish まで実行します。 (または zsh や csh など)。別の方法として、bash 以外のシェルを tmux のデフォルト シェルとして使用する場合は、そのように設定します (set-option -g default-shell ) そして、選択したシェル スクリプトで上記のロジックをコーディングできます。ただし、(私の場合のように)特定のシェルを使用しても、ワンライナーifコマンドの利便性は得られません(または、特定のシェルについて十分に知らないか、実行時に複数の行が機能する可能性があります-

ソース:私が始めた github Issues スレッド


この問題を github に投稿してくれた Gilgamesh Skytrooper に感謝します。これは、複数のセッションで動作し、シェル サブプロセスを呼び出さない単純なバージョンです。

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'

-n を削除 プレフィックス(C-bを打ちたい場合) ) 最初に、バインディング M-[awds] を変更します


Linux
  1. Yumコマンドを使用して特定のパッケージ更新を無効化/ロックする4つの方法

  2. 単一のコマンドに対してBashでエイリアスを無効にする方法は??

  3. コマンドの完了時にペイン/ウィンドウが閉じないようにする– Tmux?

  1. Linux で「trap」コマンドを使用して Ctrl+c または Ctrl+z を無効にする方法

  2. Linux で特定のユーザーに対して特定のコマンドを無効にする方法

  3. BIND DNS サーバーを新しいハードウェアに移行する方法は?

  1. BashClearコマンドの奇妙な動作によりスクロールバックバッファが削除されます。

  2. コマンドラインからキーボードリピートを無効にしますか?

  3. Linux ftp コマンドでパッシブ モードを無効にする方法