我尝试在 MacOSX 上从命令行调整终端窗口的大小
我可以使用以下命令调整终端的宽度和高度(Control Sequence Introducer CSI)
printf '\e[8;100;200t' "resize to 200x100
但是当我在终端中使用 tmux 时,命令(printf '\e[8;100;200t' ) 不再起作用
任何建议将不胜感激。
这是我的 tmux 配置文件:
bind r source-file ~/.tmux.conf \; display "Reloaded!" #Reload with ctrl-r
set-window-option -g mode-keys vi #copy-mode vim-like
set -g prefix ` #prefix from ctrl-b to ctrl-a
unbind C-b #allow ctrl-b for other things
set -sg escape-time 1 #quicker responses
bind ` send-prefix #Pass on ctrl-a for other apps
set -g base-index 1 #Numbering of windows
setw -g pane-base-index 1 #Numbering of Panes
bind \ split-window -v #Split panes horizontal
bind v split-window -h #Split panes vertically
unbind-key j
bind-key j select-pane -D # Similar to 'C-w j' to navigate windows in Vim
unbind-key k
bind-key k select-pane -U
unbind-key h
bind-key h select-pane -L
unbind-key l
bind-key l select-pane -R
unbind-key Left
bind-key Left resize-pane -L 10
unbind-key Right
bind-key Right resize-pane -R 10
unbind-key Up
bind-key Up resize-pane -U 10
unbind-key Down
bind-key Down resize-pane -D 10
set -g window-status-current-style fg=red
set -g default-command "reattach-to-user-namespace -l /bin/bash"
答案1
转义序列由 tmux 解释,并且不会传递到 tmux 正在运行的终端程序。要让它通过,您需要包装转义序列以告诉 tmux 将其传递:
printf '\ePtmux;\e%s\e\\' "${escape_sequence}"
其中变量$escape_sequence
是您希望 tmux 传递到终端的序列。例如,原始问题中的序列将变为
printf '\ePtmux;\e\e[8;100;200t\e\\'
关于这一点没有太多的文档,但可以在 1.5 版本的 CHANGES 文件中找到证据:https://github.com/tmux/tmux/blob/1.5/CHANGES#L33