tmux split-window 不改变焦点
tmux split-window without changing focus
有没有办法在不改变当前焦点的情况下在 tmux 中拆分 window?
我是 运行 我的一个 tmux 窗格中的一个脚本,偶尔运行 "tmux split-window ..." 一些命令需要一分钟才能完成,并且可能会请求输入。
我最终可能会尝试在其中一个 tmux 窗格中键入输入,但在我键入的过程中,原始窗格执行 "tmux split-window ..." 并且(中间词)我的光标移动到新窗格,并且我最终将部分输入输入到错误的窗格中。
注意:这个答案是正确的,但是已经过时了。正确的方法是对 split-window
命令使用 -d
标志。我留下这个答案是为了演示如何使用 tmux 剃掉牦牛毛。
tmux 提供的 split-window
命令标志将是解决此问题的正确方法。 很遗憾,tmux 没有提供这样的命令标志。 更新:有一个 -d
split-window
标志可以做到这一点。
简单的解决方法是在split-window
:
之后立即切换到上一个面板
tmux split-window
tmux last-pane
这也可以写成一行:
tmux split-window\; last-pane
此解决方案的缺点是*理论上*如果您在 split-window
和 last-pane
命令之间的时间间隔内键入字符,您最终可能会在错误的 window 中写入字符执行.
这是另一种方法,缺点是它更复杂。
在后台新建一个window并得到这个window的pane_id
(注意这个命令是如何包裹在$(...)
中的,因为我们希望它在一个子进程:
pane_id=$(tmux new-window -d -P -F "#{pane_id}")
现在将我们刚刚创建的 window 与光标所在的 window 连接起来(不会改变光标焦点):
tmux join-pane -b -t "$pane_id"
如果您想要水平分割,请在上面的 join-pane
中添加 -h
。
我建议采用第一种方法,因为它很简单。您不太可能遇到任何实际问题。
有没有办法在不改变当前焦点的情况下在 tmux 中拆分 window?
我是 运行 我的一个 tmux 窗格中的一个脚本,偶尔运行 "tmux split-window ..." 一些命令需要一分钟才能完成,并且可能会请求输入。
我最终可能会尝试在其中一个 tmux 窗格中键入输入,但在我键入的过程中,原始窗格执行 "tmux split-window ..." 并且(中间词)我的光标移动到新窗格,并且我最终将部分输入输入到错误的窗格中。
注意:这个答案是正确的,但是已经过时了。正确的方法是对 split-window
命令使用 -d
标志。我留下这个答案是为了演示如何使用 tmux 剃掉牦牛毛。
tmux 提供的 split-window
命令标志将是解决此问题的正确方法。 很遗憾,tmux 没有提供这样的命令标志。 更新:有一个 -d
split-window
标志可以做到这一点。
简单的解决方法是在
之后立即切换到上一个面板split-window
:tmux split-window tmux last-pane
这也可以写成一行:
tmux split-window\; last-pane
此解决方案的缺点是*理论上*如果您在
split-window
和last-pane
命令之间的时间间隔内键入字符,您最终可能会在错误的 window 中写入字符执行.这是另一种方法,缺点是它更复杂。
在后台新建一个window并得到这个window的
pane_id
(注意这个命令是如何包裹在$(...)
中的,因为我们希望它在一个子进程:pane_id=$(tmux new-window -d -P -F "#{pane_id}")
现在将我们刚刚创建的 window 与光标所在的 window 连接起来(不会改变光标焦点):
tmux join-pane -b -t "$pane_id"
如果您想要水平分割,请在上面的
join-pane
中添加-h
。
我建议采用第一种方法,因为它很简单。您不太可能遇到任何实际问题。