Tela GNU: nova mudança de nome de janela

19

Eu posso mudar o nome de uma janela com Ctrl-a Shift-a. Em vez de editar vários nomes de janelas manualmente, existe uma maneira de tê-los automaticamente nomeados após o diretório atual?

    
por liewl 18.01.2011 / 20:15

2 respostas

21

Faça o seu shell mudar o título da janela toda vez que ele mudar de diretório, ou toda vez que ele exibir um prompt.

Para o seu ~/.bashrc :

if [[ "$TERM" == screen* ]]; then
  screen_set_window_title () {
    local HPWD="$PWD"
    case $HPWD in
      $HOME) HPWD="~";;
      $HOME/*) HPWD="~${HPWD#$HOME}";;
    esac
    printf '\ek%s\e\' "$HPWD"
  }
  PROMPT_COMMAND="screen_set_window_title; $PROMPT_COMMAND"
fi

Ou para o seu ~/.zshrc (para usuários do zsh):

precmd () {
  local tmp='%~'
  local HPWD=${(%)tmp}
  if [[ $TERM == screen* ]]; then
    printf '\ek%s\e\' $HPWD
  fi
}

Para mais informações, consulte títulos dinâmicos no manual Tela , ou em "Títulos (janelas de nomes)" na página do manual.

    
por 18.01.2011 / 22:45
0

Você pode colocar isso no .bashrc para alterar o nome do terminal (nome da janela) para o último diretório (ou nome do arquivo) em que você está (trabalhando).

case "$TERM" in xterm*|rxvt*) PROMPT_COMMAND='echo -ne "3]0;${PWD##*/}%code%7"' ;; *) ;; esac

mais descrito aqui: link

    
por 01.11.2014 / 13:17