画面のようにtmuxのウィンドウ内でウィンドウを循環する方法は?

画面のようにtmuxのウィンドウ内でウィンドウを循環する方法は?

私の考えではtmuxウィンドウをウィンドウに移動同じ問題なのに必ずしもそうではないようです。

私はGNU画面をたくさん使うので、同じことをするためにtmuxを探しています。私がよくすることの1つは、いくつかの異なるウィンドウを開くことです。 1つはvimでいくつかのコードを使用し、2つのターミナルウィンドウはコードをテストするために開き、時には1つまたは2つのウィンドウを開き、さまざまな他のタスクを実行します。私は画面を垂直に分割し、通常はvimウィンドウを上のウィンドウに配置し、他のウィンドウの1つを下のウィンドウに配置します。

その後、私が使用する主なコマンドは、ウィンドウ間の回転とウィンドウCtrla内のTabウィンドウ間の回転ですCtrlanたとえば、vimが上部ウィンドウにあるときは下部ウィンドウに切り替えて、必要なすべての操作を実行しながら他の端末間を循環します。画面は常に分割されたままです。

問題は、tmuxでscreenに対応するエントリが見つからないことですCtrlanウィンドウの切り替えはウィンドウ内では機能しないようですが、完全に移動します。画面が分割されている場合、唯一の2つのオプションは、分割されていないウィンドウに移動してから分割するか、ウィンドウをサブ分割するようです。私が探しているのも同じです。

提案はありますか(画面に固定することに加えて)?

答え1

私はあなたが探しているものが+ Ctrlb、、、、)と信じています。これにより、ウィンドウ間を移動できます。

答え2

マルチプレクサそして画面色々なモデルがあるので全く同じものはありません。

存在する画面つまり、分割を使用すると同時に複数のウィンドウを表示できます。nextC-a n)分割されたアクティブセクションを介してウィンドウを回転させます。これにより、分割されたアクティブ領域内で「隠された」ウィンドウを回転させることができます。

存在するマルチプレクサ「分割」という用語は、ウィンドウを1つ以上のウィンドウに分割する。分割ウィンドウの各部分は別々のウィンドウであり、ウィンドウは非表示になり(ウィンドウを選択した場合(表示)ウィンドウのすべてのウィンドウも同様です)、ウィンドウはウィンドウ内でのみ表示できます。単一のパーティション内で使用されます(ウィンドウは複数のウィンドウに配置できず、同じウィンドウの複数のパーティションに配置することはできません。ウィンドウ内で(または間で)ウィンドウを移動するコマンドがありますが、ウィンドウnext内でウィンドウを移動するなど方法ではありません。画面


次のバインディングを使用して、同様の効果を並べ替えることができます。

bind-key C-n swap-pane -s :+.top \; rotate-window -Ut :+

~/.tmux.confこれをファイルに入れることもできますが、入力/貼り付けだけでPrefix :現在のサーバーインスタンスにバインドできます。

バインディングを使用するには、メインウィンドウを選択して分割し、メインウィンドウの直後にウィンドウコンテナウィンドウを作成し、バインディングを使用してメインウィンドウ内のグループ内のウィンドウを回転させます。ウィンドウコンテナウィンドウ。

設定を作成する方法は次のとおりです。

  • 「メインウィンドウ」として使用するウィンドウを選択します。始める(例えば)ウィム内部に。

  • メインウィンドウを2つのウィンドウに分割します。

    たとえばPrefix ":split-window

    このウィンドウをテストウィンドウ(またはログビューアなど)として使用できます。

  • メインウィンドウの直後に新しいウィンドウ(「ウィンドウコンテナ」)を作成します。

    たとえばPrefix c:new-window

    「メインウィンドウ」と「ウィンドウコンテナ」ウィンドウのインデックスの間に他のウィンドウがないことが重要です(+bindコマンドで使用されるウィンドウ指定子では、「次に高い番号のウィンドウ」を意味します)。

  • このウィンドウを複数のウィンドウに分割します。 3つのウィンドウを回転させるには、ウィンドウを2つのウィンドウに分割します(3番目のウィンドウはメインウィンドウのウィンドウです)。

    たぶん殻が必要かもしれません。、データベースインタフェースを実行するためのシェルです。各ウィンドウを「ウィンドウコンテナ」ウィンドウ内の別のウィンドウに配置します。

  • 「メインウィンドウ」に戻ります。 「回転」したいウィンドウを選択します。

    Prefix Up// Down/を使用してウィンドウLeft間を移動できますRight

  • バインディングを呼び出して、現在のウィンドウを「ウィンドウコンテナ」ウィンドウの最初のウィンドウに置き換えて(「ステージの後ろから」)、「ウィンドウコンテナ」ウィンドウ内でウィンドウを回転させます(次回バインディングが実行されると最初のウィンドウ)。コマンドは順番に「次の」ウィンドウに置き換えられます。

    Prefix Control- n(バインディングはCnを使用しますが、必要に応じて変更できます。)

  • ウィンドウを後ろにスクロールするには、次のコマンドを使用できます。

バインディングキー Cp スワップウィンドウ -s:+.bottom\;ウィンドウ回転 -Dt:+

答え3

順番に1回押してから別のキーを押してウィンドウの位置を指定しますbind -rprefixタイムアウトは調整できますrepeat-time。確認するman tmux

bind -r Tab select-pane -t :.+

あなたが好むならhjkl

bind -r h select-pane -L
bind -r j select-pane -D
bind -r k select-pane -U
bind -r l select-pane -R

答え4

ALTSHIFTこれは、ショートカットキーまたは+を使用して別のウィンドウまたはウィンドウに移動できる小さな設定ですarrow。プレフィックスキーを使用する必要はありません。とても快適!

## NAVIGATION: ############################

# Switch panes 
# Usage: "ALT+arrow keys" (without prefix key)
# from https://gist.github.com/spicycode
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
 
# Switch windows 
# usage: "SHIFT+arrow" (without prefix key)
bind -n S-Left  previous-window
bind -n S-Right next-window

マウスを使ってウィンドウを移動できる次のコードに興味があるかもしれません。 (使用法:キープレフィックス+ mを開くとM、閉じるときはM)

## MOUSE CONTROL: #########################
set -g mode-mouse off
set -g mouse-resize-pane off
set -g mouse-select-pane off
set -g mouse-select-window off

# Toggle mouse on 
bind m \
    set -g mode-mouse on \;\
    set -g mouse-resize-pane on \;\
    set -g mouse-select-pane on \;\
    set -g mouse-select-window on \;\
    display 'Mouse: ON'
    
# Toggle mouse off
bind M \
    set -g mode-mouse off \;\
    set -g mouse-resize-pane off \;\
    set -g mouse-select-pane off \;\
    set -g mouse-select-window off \;\
    display 'Mouse: OFF'

この構成はTmux 1.6〜1.9でテストされました。

関連情報