为什么CTRL-r在OS X上表现得很奇怪(只显示命令的一部分)

Modified on: Fri, 19 Jul 2019 17:20:02 +0800

Ctrl + r 是一个很棒的小工具,用于搜索.bash_history以查找以前运行的命令。

然而,当我在OS X Terminal.app中使用它时,我看到了奇怪的行为,我想知道是否有其他人看到同样的事情或知道如何解决它。

  1. 控制 + - [R
  2. 输入find
  3. 之类的内容
  4. 哦,很酷,看......这是我想要find . -exec grep -q "hello world" '{}' \; -print
  5. 我想运行该命令,但将hello world更改为其他内容。
  6. 所以我点击
  7. 现在该命令在命令行上是SORTA,但它总是看起来像命令的一些trunctated版本,如下所示:-q "blog_posts_by" '{}' \; -print,其中包含整个命令,我可以使用光标键在该行上移动,但不是所有的都打印出来。线路上显示的内容与终端实际认为我正在编辑的内容之间存在脱节。
  8. 醇>

    有没有人知道为什么会发生这种情况?搜索网页并不容易。

最佳答案

您的提示中可能有颜色的转义序列没有正确分隔。它们需要包含在\[\]中。

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

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


相关问答

添加新评论