我最近升级到 Debian 10,其中 tmux 版本为 2.8-3。我复制了旧的 tmux conf 文件。对于未命名的窗口,行为是显示带有参数的进程名称,即“vim foo.txt”。现在不幸的是它只显示进程名称,即“vim”,所以我无法区分当前打开的数十个窗口。 (同时处理很多项目,tmux 对我的工作流程至关重要)我如何恢复到旧的行为?
此外,它还显示每个窗口的主机名。有什么办法可以隐藏它,除非该窗口通过 sshed 到另一台机器?我不需要一遍又一遍地查看自己的主机名数百次。
我对 Windows 重命名没有任何问题,所以不用担心。
.tmux.conf:
unbind C-b
# Are both of these next two lines necessary?
set -g prefix C-a
bind C-a send-prefix
set -g default-terminal "screen-256color"
set-option -g visual-bell off
set -g base-index 1
# Keep original window selection behavior but commented out for now
# bind-key -r -T prefix w run-shell 'tmux choose-tree -Nwf"##{==:##{session_name},#{session_name}}"'
bind-key W command-prompt -p "Switch to pane with pid:" "run-shell 'pane=\$(ps eww %% | sed \"1d; s/^.*TMUX_PANE=//;s/ .*//\"); [[ -z \$pane ]] && tmux display-message \"could not find pid\" || tmux switch-client -t \$pane'"
bind r source-file ~/.tmux.conf
set -g pane-active-border-style fg=green,bg=green
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @resurrect-strategy-vim 'session'
set-option -g renumber-windows on
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
答案1
tmux 永远不会重命名窗口以包含进程参数,因此您的 shell 必须执行此操作。
allow-rename
从 tmux 2.7 开始默认关闭,因此您的 shell 将无法重命名它们。尝试再次打开它。
我不明白你在哪里看到主机名,你在谈论树模式吗?主机名是默认的窗格标题,但多年来一直如此。您可以通过指定替代格式以树模式删除它choose-tree -F
。如果升级到2.9或更高版本,您可以看到默认格式tmux display -p "#{tree_mode_format}"
并删除该"#{pane_title}"
位。无论如何,这就是:
$ tmux display -p "#{tree_mode_format}"
#{?pane_format,#{pane_current_command} "#{pane_title}",#{?window_format,#{window_name}#{window_flags} (#{window_panes} panes)#{?#{==:#{window_panes},1}, "#{pane_title}",},#{session_windows} windows#{?session_grouped, (group #{session_group}: #{session_group_list}),}#{?session_attached, (attached),}}}
或者,您可以尝试通过使用 tmux 中的钩子来设置不同的默认窗格标题selectp -T
(例如https://unix.stackexchange.com/a/564690/341374)或将printf "\033]2;title\007
“放入您的 PS1.