Tmux: How to configure tmux to display the current working directory of a pane on the status bar?

后端 未结 3 2060
伪装坚强ぢ
伪装坚强ぢ 2021-02-04 03:14

I am new to tmux and I am trying to edit my tmux.conf file to have the left side of the status bar reflect:

[SessionName] [CurrentPane] [CurrentWorkingDirectory]

相关标签:
3条回答
  • 2021-02-04 03:21

    There is a variable for that, which doesn't seem to be in the manpage but is mentioned in the development version. For me, it works in the 1.8 release of tmux.

    set -g status-left "#{pane_current_path}"
    

    Note that it also works when you put it in the window-status. Each window status will mention respective working directories.

    setw -g window-status-format "#{pane_current_path}".
    
    0 讨论(0)
  • 2021-02-04 03:42

    I'm not sure how to do this in bash, but in zsh, there's a hook that gets run before every command. In your .zshrc:

    precmd () {
        tmux set -qg status-left "#S #P $(pwd)"
    }
    

    This will run that tmux command everytime you run a command. Hope this helps. Since bash doesn't have a precmd, I'm not sure how to do this.

    0 讨论(0)
  • 2021-02-04 03:45

    Unfortunately, the proposed solution does not work for version 1.7 - "official version" for OpenSuse 12.3, but I managed to find a solution:
    In /etc/tmux.conf:

    setw -g window-status-current-format "#T(#I:#W#F)"  
    setw -g window-status-format "#T(#I:#W#F)"  
    

    Here #T - tells to display current pane title, which can be set with some escape sequence. For doing this at each shell command, put somewhere in .bashrc:

    [[ -n "$TMUX" ]] && PROMPT_COMMAND='echo -n -e "\e]2;${PWD/${HOME}/~}\e\\"'  
    

    This works for me on OpenSuse 12.3, tmux 1.7, bash 4.2.53.

    0 讨论(0)
提交回复
热议问题