如何在tmux中重命名窗格?

ovo*_*lax 75 tmux

如何重命名窗格tmux

ide*_*dej 112

你的意思是tmux窗口?Ctrl + b + ,如果你有Cb作为发送前缀(默认情况下)

C-b :rename-window <new name>tmux rename-window <new name>工作了.

据我所知,你无法重命名窗格

  • 当询问重命名窗格时,如何重命名窗口成为可接受的答案。 (4认同)
  • @anilbey 同样在这里。解决方案是 [`set-option -g allowed-rename off`](/sf/answers/2380317901/) (4认同)

Map*_*pad 25

是的,您可以重命名窗格名称,而不仅仅是以tmux> = 2.3开头的窗口名称.只需在shell中键入以下内容:

printf '\033]2;%s\033\\' 'title goes here'
Run Code Online (Sandbox Code Playgroud)

您可能需要将以下内容添加到.tmux.conf以显示窗格名称:

# Enable names for panes
set -g pane-border-status top
Run Code Online (Sandbox Code Playgroud)

您还可以自动指定名称:

set -g pane-border-format "#P: #{pane_current_command}"
Run Code Online (Sandbox Code Playgroud)


Den*_*and 11

对于那些脚本tmux,有一个命令rename-window ,例如

tmux rename-window -t <window> <newname>
Run Code Online (Sandbox Code Playgroud)

  • 不,这是针对 Linux 的 (2认同)

ram*_*man 11

对于那些想要轻松重命名窗格的人,这就是我的 .tmux.conf

set -g default-command '                      \
function renamePane () {                      \
  read -p "Enter Pane Name: " pane_name;      \
  printf "\033]2;%s\033\\r:r" "${pane_name}"; \
};                                            \
export -f renamePane;                         \
bash -i'
set -g pane-border-status top
set -g pane-border-format "#{pane_index} #T #{pane_current_command}"
bind-key -T prefix R send-keys "renamePane" C-m
Run Code Online (Sandbox Code Playgroud)

窗格会自动以其索引、机器名称和当前命令命名。要更改机器名称,您可以运行<C-b>R它会提示您输入新名称。

* 窗格重命名仅在您处于 shell 中时有效。


Tec*_*mad 6

您可以通过在 tmux.conf 中设置窗格边框来调整窗格标题,例如如下所示:

\n
###############\n# pane border #\n###############\nset -g pane-border-status bottom\n#colors for pane borders\nsetw -g pane-border-style fg=green,bg=black\nsetw -g pane-active-border-style fg=colour118,bg=black\nsetw -g automatic-rename off\nsetw -g pane-border-format ' #{pane_index} #{pane_title} : #{pane_current_path} '\n# active pane normal, other shaded out\xe2\x80\x8b\nsetw -g window-style fg=colour28,bg=colour16\nsetw -g window-active-style fg=colour46,bg=colour16\n
Run Code Online (Sandbox Code Playgroud)\n

其中pane_index、pane_title和pane_current_path是tmux本身提供的变量。

\n

重新加载配置或启动新的 tmux 会话后,您可以设置当前窗格的标题,如下所示:

\n
tmux select-pane -T "fancy pane title";\n#or\ntmux select-pane -t paneIndexInteger -T "fancy pane title";\n
Run Code Online (Sandbox Code Playgroud)\n

如果所有窗格都有一些进程正在运行,因此您无法使用命令行,您也可以在按前缀bind(默认为Cb)和冒号(:)后键入命令,而无需在前面添加“tmux”命令:

\n
select-pane -T "fancy pane title"\n#or:\nselect-pane -t paneIndexInteger -T "fancy pane title"\n
Run Code Online (Sandbox Code Playgroud)\n


rot*_*ial 5

同样在编写脚本时,您可以在使用-n <window name>. 例如:

# variable to store the session name
SESSION="my_session"

# set up session
tmux -2 new-session -d -s $SESSION

# create window; split into panes
tmux new-window -t $SESSION:0 -n 'My Window with a Name'
Run Code Online (Sandbox Code Playgroud)


Tod*_*odd 5

对我来说最简单的选择是重命名终端的标题。请参阅:https ://superuser.com/questions/362227/how-to-change-the-title-of-the-mintty-window

在这个答案中,他们提到修改 PS1 变量。注意:我的情况是 cygwin 特有的。

TL;DR 将其放入您的 .bashrc 文件中:

function settitle() {
      export PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
      echo -ne "\e]0;$1\a"
}
Run Code Online (Sandbox Code Playgroud)

将其放入您的 .tmux.conf 文件中,或类似的格式:

set -g pane-border-status bottom
set -g pane-border-format "#P #T #{pane_current_command}"
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过在控制台中键入以下内容来更改窗格的标题:

settitle titlename
Run Code Online (Sandbox Code Playgroud)