应用 powerline 后 bash 中的 set-title 函数不起作用

应用 powerline 后 bash 中的 set-title 函数不起作用

设置标题??

我刚刚发现了一些用于更改终端上的 bash 终端标题的技巧。它的工作原理如下:

#function set-title() on terminal

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

我在 中写入了该代码~/.bashrc。因此我可以更改标题,并且不会混淆我使用的终端。

前期问题

我想定制bash vim他们的朋友的新外观,所以我使用这个家伙指导安装电力线并且它运行完美。

问题

我的set title功能现在不起作用。

我的尝试

将 set-title 代码置顶不起作用.bashrc。(我知道这种方法很蠢)

set-title在上面usr/share/powerline/bindings/bash/powerline.sh不起作用,我认为代码不同于.bashrc

那么如何恢复我的set-title功能?

答案1

您的方法 ( "\[\e]2;$*\a\]")(输出Esc];Your title^G(Bel))。这是一个“VT100 ESCape 序列”,并非所有终端仿真器都能正确处理。echo $TERM在两种环境中进行比较。

对于更便携的方法,请安装并使用xttitle - Changes X terminal emulator window titles。我已将其内置到我的~/.bashrccd命令调整标题):

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

相关内容