Vim

如何在 tmux 中的視窗內像在螢幕中一樣循環瀏覽窗格?

  • May 11, 2021

我認為將 tmux 窗格移動到視窗是同一個問題,但似乎不是。

由於經常使用 GNU screen,我正在尋找 tmux 來做同樣的事情。我經常做的事情是打開幾個不同的視窗,一個在 vim 中打開一些程式碼,打開幾個終端視窗來測試程式碼,有時一兩個視窗用於各種其他事情。我垂直分割螢幕,通常在頂部窗格中有 vim 視窗,然後在底部窗格中有其他視窗之一。

然後我使用的主要命令是Ctrl``a,Tab在窗格之間旋轉和Ctrl``a,n在窗格內的視窗之間旋轉。例如,在頂部窗格中使用 vim,我切換到底部窗格,然後在其他終端中旋轉,做任何我需要的事情。螢幕一直保持分裂狀態。

問題是我在 tmux 中Ctrl``a找不到與 screen 類似的功能。n切換視窗似乎在窗格內不起作用,但完全跳轉。如果螢幕被拆分,唯一的兩個選項似乎是跳轉到某個未拆分的視窗然後拆分它或對窗格進行子拆分。我要找的也不是。

建議(除了堅持使用螢幕)?

tmuxscreen有不同的模型,所以沒有完全相同的模型。

螢幕而言,拆分可讓您同時顯示多個視窗。next( C-a n) 通過拆分的活動部分旋轉視窗;這使您可以通過拆分的活動區域旋轉“隱藏”視窗。

tmux術語中,拆分將一個視窗分成一個或多個窗格。拆分視窗的每個部分都是一個單獨的窗格,窗格永遠不會隱藏(如果一個視窗被選中(可見),它的所有窗格也是如此),並且一個窗格只能在一個視窗的單個拆分中使用(一個窗格可以不能在多個視窗中,也不能在同一個視窗的多個拆分中)。有一些命令可以在視窗中(或之間)移動窗格,但與nextscreen中的方式不同。


您可以使用如下綁定來安排類似的效果:

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

您可能希望將其放入您的~/.tmux.conf文件中,但您只需鍵入/粘貼它Prefix :即可將其綁定到您目前的伺服器實例中。

要使用綁定,請選擇您的“主視窗”,將其拆分,在“主視窗”之後立即創建一個“窗格容器”視窗,然後使用綁定在“主視窗”組中旋轉“主視窗”中的任何窗格窗格容器”視窗。

以下是創建設置的方法:

  • 選擇一個視窗作為“主視窗”。在其中啟動(例如)Vim
  • 將您的“主視窗”分成兩個窗格。

例如Prefix "( :split-window)

您可以將此窗格用作您的測試視窗(或日誌查看器,或其他)。

  • 在主視窗之後立即創建一個新視窗(“窗格容器”)。

例如Prefix c( :new-window)

重要的是,在“主視窗”和“窗格容器”視窗的索引之間沒有其他視窗(+在綁定命令中使用的視窗說明符中表示“下一個更高編號的視窗”)。

  • 將此視窗拆分為多個窗格。要在三個窗格中旋轉,請將此視窗拆分為兩個窗格(第三個窗格是“主視窗”中的那個)。

也許您需要一個用於git的 shell ,以及一個用於執行數據庫介面的 shell。將每個放在此“窗格容器”視窗中的單獨窗格中。

  • 切換回“主視窗”。選擇要“輪換”的窗格。

您可以使用Prefix Up/ Down/ Left/Right在窗格之間移動。

  • 呼叫綁定以將目前窗格與“窗格容器”視窗中的第一個窗格交換,並(“幕後”)旋轉“窗格容器”視窗內的窗格(以便下次執行綁定時,第一個命令與序列中的“下一個”窗格交換)。

Prefix Control- n(綁定使用 Cn,但您可以將其更改為您喜歡的任何內容)。

  • 要向後滾動窗格,您可以使用以下命令:
綁定鍵 Cp 交換窗格 -s :+.bottom \; 旋轉視窗-Dt:+

我相信您正在尋找的是Ctrl``b+( , , , )。這些將允許您在窗格之間移動。

引用自:https://unix.stackexchange.com/questions/53154