为什么CTRL-r在OS X上奇怪地显示(只显示一部分命令)

Ctrl + r是search以前运行命令的.bash_history一个很好的小工具。

但是,当我在我的OS X Terminal.app中使用它时,我看到了奇怪的行为,而且我想知道是否有其他人看到相同的东西,或者知道如何解决这个问题。

  1. Ctrl + r
  2. input类似于find东西
  3. 哦,很酷,看…这是我想find . -exec grep -q "hello world" '{}' \; -print的命令find . -exec grep -q "hello world" '{}' \; -print find . -exec grep -q "hello world" '{}' \; -print
  4. 我想运行该命令,但改变你好世界到别的东西。
  5. 所以我打
  6. 现在命令行是SORTA,但它总是看起来像命令的一些trunctated版本,如下所示: -q "blog_posts_by" '{}' \; -print -q "blog_posts_by" '{}' \; -print ,其中整个命令在那里,我可以使用光标键在行上移动,但不是所有的都打印。 线路上显示的内容与terminal实际上​​认为我正在编辑的内容之间存在脱节。

有没有人有一个线索为什么会发生这种情况? search网站并不容易。

您的提示中颜色的转义序列可能没有正确分隔。 他们需要被封闭在\[\]

 PS1='\[\033[1;36m\]\u\[\033[0m\]@\[\033[1;34m\]\h\[\033[0m\]\$ ` 

非打印字符序列的长度在封闭时并不包含在提示的长度内,并且在打包时需要计算先前命令的位置以便正确显示。

这可能是由于您的terminal上configuration了退出键的方式,我通常使用iTerm或Terminal.app上的左或右箭头,因为我不是立即返回的粉丝,是否适合您?