【问题标题】:How to rename a pane in tmux?如何重命名 tmux 中的窗格?
【发布时间】:2016-10-25 08:04:08
【问题描述】:

如何重命名tmux 中的窗格?

【问题讨论】:

    标签: tmux


    【解决方案1】:

    你是说 tmux 窗口吗? Ctrl + b + , 如果你有 C-b 作为发送前缀(默认情况下)

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

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

    【讨论】:

    • 当我重命名当前窗口时,我看不到我在输入什么,这是默认的吗?还是因为我的配置?虽然我认为我的配置并没有阻止tmux 显示这一点。
    • 澄清一下,您可以重命名窗格,当二进制输出意外损坏窗格时,需要这样做。 @Mapad 的回答解决了这个问题。
    • 如何重命名窗口,当要求重命名窗格时 - 成为接受的答案。
    • 每当你ls时都会恢复原状
    • @anilbey 这里也一样。解决方案是set-option -g allow-rename off
    【解决方案2】:

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

    【讨论】:

    • 有没有办法将命令的 args 放入窗格边框格式?哦,github上有对应的issue
    【解决方案3】:

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

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

    【讨论】:

    • 在我的情况下是这样的:tmux rename-window -t 9 my-project.
    【解决方案4】:

    对于那些想在 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
    

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

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

    【讨论】:

    • 对此要非常小心。当我(?)错误地识别它时,这搞砸了我的 tmux。即使我在任何点文件中都找不到 renamePane 函数,但它在启动 tmux 时仍然存在错误:“zsh:export:1: invalid option(s)”。重启解决了这个问题。
    • 对不起,我没有在 zsh 上测试过这个,只有 bash shell。
    【解决方案5】:

    此外,在编写脚本时,您可以在创建窗口时使用-n &lt;window name&gt; 指定名称。例如:

    # 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'
    

    【讨论】:

      【解决方案6】:

      对我来说最简单的选择是重命名终端的标题。 请看: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
      

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-24
          相关资源
          最近更新 更多