如何在tmux
中重命名窗格?
Ctrl-b
,
其中Ctrl-b
是默认的前缀键。
或者,运行:
tmux rename-window <new name>
或者使用 Ctrl-b
:
rename-window <新窗口名称>
命令来重命名一个窗格。
在较新的版本中,您可以使用以下命令重命名一个窗格:
tmux select-pane -T <title>
你可以键入 Ctrl-b
:
select-pane -T <pane_name>
来选择特定的面板。
另外,在~/.tmux.conf
中添加以下两行代码,可以在相关面板的顶部查看面板标题并重新格式化标题。
set -g pane-border-status top
set -g pane-border-format " [ ###P #T ] "
是的,您可以重命名窗格名称,而不仅仅是在tmux版本>=2.3中重命名窗口名称。只需在shell中键入以下内容:
printf '\033]2;%s\033\\' 'title goes here'
如果你想显示面板名称,可能需要在你的 .tmux.conf 文件中添加以下内容:
# Enable names for panes
set -g pane-border-status top
您还可以自动分配一个名称:
set -g pane-border-format "#P: #{pane_current_command}"
setw -g automatic-rename off
但没有成功。 - Elijah Lynn对于编写tmux脚本的人,有一个名为rename-window
的命令可供使用,例如:
tmux rename-window -t <window> <newname>
tmux rename-window -t 9 my-project
。 - borracciaBlu如果您想在bash shell中轻松重命名窗格,这是我在.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
窗格会自动以它们的索引、机器名称和当前命令命名。
要更改机器名称,您可以运行<C-b>R
,然后提示您输入新名称。
*仅在shell中才能重命名窗格。
您可以通过在tmux.conf中设置面板边框来调整面板标题,例如像这样:
###############
# pane border #
###############
set -g pane-border-status bottom
#colors for pane borders
setw -g pane-border-style fg=green,bg=black
setw -g pane-active-border-style fg=colour118,bg=black
setw -g automatic-rename off
setw -g pane-border-format ' #{pane_index} #{pane_title} : #{pane_current_path} '
# active pane normal, other shaded out
setw -g window-style fg=colour28,bg=colour16
setw -g window-active-style fg=colour46,bg=colour16
pane_index、pane_title和pane_current_path是由tmux自身提供的变量。
在重新加载配置或启动新的tmux会话后,您可以像这样设置当前窗格的标题:
tmux select-pane -T "fancy pane title";
#or
tmux select-pane -t paneIndexInteger -T "fancy pane title";
如果所有窗格都有一些进程在运行,那么您无法使用命令行。此时,您也可以在按下前缀绑定键(默认为C-b)和冒号(:)之后输入命令,而无需在命令前加上“tmux”:
select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"
tmux
进程,以确保配置文件重新加载。仅仅重新加载它是不够的,因为即使我将其注释并重新加载后仍然可以看到窗格标题。 - Elijah Lynnbind-key -n M-p command-prompt "set -p @custom_pane_title '%%'"
.
希望这有所帮助。 - FullStack Alexalt + p
时,在底部栏中会出现一个 (set)
,可以接受文本输入,当我按下回车键后它就会消失,但什么也没有发生。我会继续尝试调整它。我想这一定是我的配置问题。 - Elijah Lynn在编写脚本时,您可以使用 -n <窗口名称>
指定创建窗口的名称。例如:
# 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'
对我来说最简单的选择是重命名终端的标题。
请参见: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"
}
将以下代码添加到您的.tmux.conf文件中,或类似格式的配置文件中:
set -g pane-border-status bottom
set -g pane-border-format "#P #T #{pane_current_command}"
settitle titlename
要重命名窗格,请在tmux命令提示符中输入以下内容:
select-pane -T 'NEW PANE NAME'
如果要将其绑定到一个键(例如:u),请在您的~/.tmux.conf
文件中编写以下内容:
bind u command-prompt "select-pane -T '%%'"
然后你可以通过<prefix>u
来重命名面板。
顺便说一下:
<prefix>:
<prefix>
默认为C-b
(可以使用set -g prefix NEW_KEY
更改)
tmux
显示该内容。 - zyyls
时就会被还原的内容 - anilbeyset-option -g allow-rename off
。 - joeytwiddle