Foo*_*Bar 59 vim gnu-screen tmux configuration
我认为将 tmux 窗格移动到窗口是同一个问题,但似乎并非如此。
由于经常使用 GNU screen,我正在寻找 tmux 来做同样的事情。我经常做的事情之一是打开几个不同的窗口,一个在 vim 中打开一些代码,并打开几个终端窗口来测试代码,有时还有一两个窗口用于其他各种事情。我垂直拆分屏幕,通常会在顶部窗格中显示 vim 窗口,然后在底部窗格中显示其他窗口之一。
然后我使用的主要命令是Ctrla,Tab在窗格之间旋转和Ctrla,n在窗格内的窗口之间旋转。例如,在顶部窗格中使用 vim,我切换到底部窗格,然后在其他终端之间旋转,做我需要的任何事情。屏幕始终保持分割状态。
问题是我无法找到可比的能力,屏幕的Ctrla,n在TMUX。在窗格内切换窗口似乎不起作用,但完全跳转。如果屏幕被拆分,唯一的两个选项似乎是跳转到某个未拆分的窗口然后拆分它或对窗格进行子拆分。也不是我要找的。
建议(除了坚持屏幕)?
spa*_*cvs 56
我相信你正在寻找的是Ctrlb+( →, ←, ↑, ↓)。这些将允许您在窗格之间移动。
Chr*_*sen 38
tmux和screen有不同的模型,所以没有确切的等价物。
在屏幕方面,拆分可让您同时显示多个窗口。next( C-a n) 通过拆分的活动部分旋转窗口;这使您可以通过拆分的活动区域旋转“隐藏”窗口。
在tmux术语中,拆分将窗口划分为一个或多个窗格。拆分窗口的每一部分都是一个单独的窗格,窗格永远不会隐藏(如果一个窗口被选中(可见),它的所有窗格也是如此),并且一个窗格只能在一个窗口的单个拆分中使用(一个窗格可以不能在多个窗口中,也不能在同一个窗口的多个拆分中)。有一些命令可以在窗口中(或之间)移动窗格,但与nextin screen 的方式不同。
您可以使用如下绑定来安排类似的效果:
bind-key C-n swap-pane -s :+.top \; rotate-window -Ut :+
Run Code Online (Sandbox Code Playgroud)
您可能希望将其放入您的~/.tmux.conf文件中,但您只需键入/粘贴它Prefix :即可将其绑定到您当前的服务器实例中。
要使用绑定,请选择您的“主窗口”,将其拆分,在“主窗口”之后立即创建一个“窗格容器”窗口,然后使用绑定在“主窗口”组中旋转“主窗口”中的任何窗格窗格容器”窗口。
以下是您可以如何创建设置:
选择一个窗口作为您的“主窗口”。在其中启动(例如)Vim。
将“主窗口”拆分为两个窗格。
例如Prefix "( :split-window)
您可以将此窗格用作测试窗口(或日志查看器,或其他)。
在主窗口之后立即创建一个新窗口(“窗格容器”)。
例如Prefix c( :new-window)
重要的是,在“主窗口”和“窗格容器”窗口的索引之间没有其他窗口(+在绑定命令中使用的窗口说明符表示“下一个更高编号的窗口”)。
将此窗口拆分为多个窗格。要旋转三个窗格,将此窗口拆分为两个窗格(第三个窗格是“主窗口”中的一个)。
也许您需要一个用于git的外壳,以及一个用于运行数据库接口的外壳。将每个放在此“窗格容器”窗口中的单独窗格中。
切换回您的“主窗口”。选择要“旋转出”的窗格。
您可以使用Prefix Up/ Down/ Left/Right该窗格之间移动。
调用绑定以将当前窗格与“窗格容器”窗口中的第一个窗格交换,并(“幕后”)旋转“窗格容器”窗口内的窗格(以便下次运行绑定时,第一个命令与序列中的“下一个”窗格交换)。
Prefix Control- n(绑定使用 Cn,但您可以将其更改为您喜欢的任何内容)。
要在窗格中向后滚动,您可以使用以下命令:
绑定键 Cp 交换窗格 -s :+.bottom \; 旋转窗口 -Dt :+
小智 14
使用bind -r,因此您可以按prefix一次,然后按顺序按其他键来定位您的窗格。超时时间可以调整repeat-time。查看man tmux
bind -r Tab select-pane -t :.+
Run Code Online (Sandbox Code Playgroud)
如果你愿意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
Run Code Online (Sandbox Code Playgroud)
ALT这是一个小conf,允许您使用快捷键或SHIFT+移动到另一个窗格或窗口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
Run Code Online (Sandbox Code Playgroud)
您可能还对以下允许通过鼠标导航窗格的代码感兴趣。(用法:按键前缀 + 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'
Run Code Online (Sandbox Code Playgroud)
此配置已在 Tmux 1.6 至 1.9 上进行了测试。
将以下代码放入您的.tmux.conf:
# cycle prev/next pane\nbind -n S-right select-pane -t :.+\nbind -n S-left select-pane -t :.-\nRun Code Online (Sandbox Code Playgroud)\n\n重新加载配置,然后您可以按(直接无前缀键)Shift+\xe2\x86\x92顺时针方向循环窗格,按Shift+\xe2\x86\x90逆时针方向循环。
\n\n在 Tmux 2.8 中测试。
\n\n如果您不想编辑配置,prefix+o是顺时针循环的默认键绑定。我偶尔会发现这个键绑定,然后我从中获取命令tmux list-keys并将其用于我自己的键绑定:
bind-key -T prefix o select-pane -t :.+\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
80546 次 |
| 最近记录: |