如何在 tmux 中重命名窗格?

问题描述 投票:0回答:10

如何重命名

tmux
中的窗格?

tmux
10个回答
356
投票

重命名窗口

Ctrl-b
,

其中

Ctrl-b
是默认前缀键。

或者,运行:

tmux rename-window <new name>

或输入

Ctrl-b
:
rename-window <new name>


重命名窗格

在较新的版本中,您可以使用以下方法重命名窗格:

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 ] "


59
投票

是的,您可以重命名窗格名称,而不仅仅是以 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}"

26
投票

对于那些编写 tmux 脚本的人,有一个名为

rename-window
的命令 所以例如

tmux rename-window -t <window> <newname>

13
投票

对于那些想要在 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 中时才有效。


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'

5
投票

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

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

TL;博士 将其放入您的 .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

5
投票

您可以通过在 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";

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

select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"

2
投票

我使用

byobu
tmux
作为后端,并希望提供另一种方法:如果您打开了 鼠标模式(对我来说
Alt+F12
),您只需右键单击窗格并选择 重命名。看来您只能重命名当前选定的窗格。


1
投票

要重命名窗格,请在 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
    更改)

0
投票

重命名窗格

bind p 命令提示符 -p "(重命名窗格)" -I "#T" "select-pane -T '%%'"

© www.soinside.com 2019 - 2024. All rights reserved.