【发布时间】:2016-10-25 08:04:08
【问题描述】:
如何重命名tmux 中的窗格?
【问题讨论】:
标签: tmux
如何重命名tmux 中的窗格?
【问题讨论】:
标签: tmux
你是说 tmux 窗口吗? Ctrl + b + , 如果你有 C-b 作为发送前缀(默认情况下)
C-b :rename-window <new name> 和 tmux rename-window <new name> 也可以工作。
据我所知,您无法重命名窗格
【讨论】:
tmux 显示这一点。
ls时都会恢复原状
set-option -g allow-rename off
是的,您可以重命名窗格名称,而不仅仅是以 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}"
【讨论】:
对于那些脚本 tmux,有一个命令叫做rename-window
所以例如
tmux rename-window -t <window> <newname>
【讨论】:
tmux rename-window -t 9 my-project.
对于那些想在 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 中时有效。
【讨论】:
此外,在编写脚本时,您可以在创建窗口时使用-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'
【讨论】:
对我来说最简单的选择是重命名终端的标题。 请看: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.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"
【讨论】: