set-title function no bash não funciona depois de aplicar powerline

1

set-title ??

Acabei de descobrir algum truque que eu uso para alterar um título bash-terminal no terminal. Veja como funciona:

#function set-title() on terminal

function set-title() {
  if [[ -z "$ORIG" ]]; then
  ORIG=$PS1
  fi
  TITLE="\[\e]2;$*\a\]"
PS1=${ORIG}${TITLE}
}

Eu escrevo esse código em ~/.bashrc . Então eu posso mudar o título, e não confundi qual terminal eu uso.

PRÉ-PROBLEMA

Eu quero personalizar bash vim e seu amigo com o novo visual, então eu uso esse cara guia para instalar o powerline e funciona perfeitamente.

PROBLEMA

Minha função set title não está funcionando agora.

O QUE TENTO

Faça o código do conjunto de títulos para o início de .bashrc não funcionar. (Eu sei que isso é estúpido)

Escreva que set-title on usr/share/powerline/bindings/bash/powerline.sh não funciona, acho que o código é diferente de .bashrc

Então, como recuperar minha função set-title ?

    
por Cahyo Manda Saputro 01.04.2018 / 18:21

1 resposta

1

O seu método ( "\[\e]2;$*\a\]" ) (saídas Esc) ; (Bel) ). Esta é uma "seqüência de ESCAPTE VT100" e não é tratada corretamente por todos os emuladores de terminal. Compare echo $TERM em ambos os ambientes.

Para uma abordagem mais portátil, instale e use xttitle - Changes X terminal emulator window titles . Eu tenho isso embutido no meu ~/.bashrc (o comando cd ajusta o título):

# from the "xttitle(1)" man page - put info in window title
update_title()
{
    [[ $TERM = xterm ]] || [[ $TERM = xterm-color ]]  && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}

cd()
{
    [[ -z "$*" ]] && builtin cd $HOME
    [[ -n "$*" ]] && builtin cd "$*"
    update_title
}
    
por waltinator 01.04.2018 / 18:36