如何在tmux中重命名窗格?


119

如何重命名窗格tmux

Answers:


186

您是说tmux视窗吗?Ctrl + b + ,如果您将Cb作为发送前缀(默认情况下)

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

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


重命名当前窗口时,看不到键入的内容,默认情况下是这样吗?还是由于我的配置?尽管我认为我的配置并不能阻止tmux这一点。
zyy

为了明确起见,您可以重命名窗格,当意外的二进制输出损坏它时,需要使用此名称。@Mapad的答案解决了这个问题。
FuzzyTew19年

当重命名窗格被询问时,如何重命名窗口-成为公认的答案。
XMAN


2
@anilbey在这里也一样。解决方案是set-option -g allow-rename off
joeytwiddle

36

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

有没有办法将命令的参数放入窗格边框格式?哦,github上有一个相应的问题
konstunn

15

对于那些脚本化tmux,有一个名为rename-window so 的命令,例如

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

在我的情况是这样的:tmux rename-window -t 9 my-project
borracciaBlu

8

对于那些想要轻松重命名窗格的人,这就是我的想法 .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,这将提示您输入新名称。

*窗格重命名仅在您位于外壳中时有效。


4

同样,在编写脚本时,您可以在创建窗口时指定名称-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'

3

对我而言,最简单的选择是重命名终端的标题。请参阅: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

0

您可以通过在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(默认情况下为Cb)和冒号(:)之后键入命令,而不必在命令行的前面加上“ tmux”命令:

select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.