为什么 tmux 不会调整终端窗口大小来遵守 vi 行设置?

为什么 tmux 不会调整终端窗口大小来遵守 vi 行设置?

假设我打开一个终端

$ echo $LINES
25
$ vi
:set lines?
25
:set lines=50
:!echo $LINES
50

-正如我所料(终端窗口调整大小,一切正常)。但如果我从一个新的(未调整大小的)终端启动 tmux

$ tmux new -s resize_for_crying_out_loud
$ echo $LINES
25
$ vi
:set lines?
25
:set lines=50
:!echo $LINES
25

并且 vi 无法使用,因为它会混淆并且无法正确渲染。我可以用鼠标调整窗口大小,这样 :set lines? 和 :!echo $LINES 命令就会一致。此外,tmux 中的 TERM=screen-256color-it 和普通终端中的 TERM=rxvt-unicode-256color。

$ tmux new -s this_is_how_the_manual_says_to_resize -y 50

也不起作用。

答案1

我需要(安装并使用)wmctrl 程序。首先,打开并放置一个足够大的终端,以容纳我想要在 tmux 中看到的所有窗格,然后

wmctrl -l -G

查看该终端窗口的几何形状,然后在 tmuxinator 中使用该几何信息,如下所示:

pre: "wmctrl -r :ACTIVE: -e [my geometry goes here]"

我仍然不明白为什么终端 vi 能够扩展窗口(如果它是直接从终端打开的)但却不能从 tmux 内部打开,或者为什么 tmux 本身显然无法扩展窗口以符合我尝试提供给它的自定义布局,但我很乐意不知道。

相关内容