__git_ps1打破了bash的vi模式

时间:2013-08-29 03:50:08

标签: linux git bash ubuntu ps1

我正在运行ubuntu 13.04而且我有这样的PS1

PS1="\$(__git_ps1 '(%s) ')\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

我习惯使用set -o vi的bash vi模式。

但是,如果$PWD位于git根目录树的某个位置,并按ESC+/进行搜索,则缩进会被搞砸。随着树中的每个目录,它变得越来越糟。 搜索结果打印在“某处”,但不是它们应该在的位置。

在git root之外,直接在git root中或没有$(__git_ps1 '(%s) ')它完美地工作。

无论我在哪里,

ESC+k都在工作。

以下是一些例子:

(master) flx@t420:~/dev/somegitproject/subdir/subdir$ [press ESC+/]
(master) flx@t420:~/dev/somegitproject/subdir/subdi[type your search here]


(master) flx@t420:~/dev/somegitproject/subdir/subdir/subdir/subdir$ [press ESC+/]
(master) flx@t420:~/dev/somegitproject/subdir/subdir/subdi[type your search here]

一切都很好:

(master) flx@t420:~/dev/somegitproject$ [press ESC+/]
(master) flx@t420:~/dev/somegitproject$ /[type your search here]

我刚刚注意到,将搜索结果打印在git root中打破:

(master) flx@t420:~/dev/somegitproject$ [press ESC+/]
(master) flx@t420:~/dev/somegitproject$ /whateve[enter]
(master) flx@t420:~/dev/somegiwhateve                 tproject$ whatevercommand

在没有git的目录中,它按预期工作:

(master) flx@t420:~/dev$ [press ESC+/]
(master) flx@t420:~/dev$ /whateve[enter]
(master) flx@t420:~/dev$ whatevercommand

知道如何解决这个问题。这很烦人。

有趣的是,这个PS1在我的旧桌面上工作,运行旧的ubuntu安装更新到13.04。但是在这个全新的装置中它被打破了。

0 个答案:

没有答案