很多时候,当我在 bash 或 zsh 中输入一个长命令时(这是我肯定见过的仅有的两个 shell),光标会扭曲到我输入的字符串中间的某个位置,谁能解释为什么会这样,如果可以做些什么呢?
我注意到,当我浏览 shell 的历史记录(使用箭头键)时,经常会发生这种情况,当我遇到一个很长的条目时,新的长条目会与之前的条目混淆,从而导致文本出现乱码。
我有一个短字符串的例子,我刚刚注意到:
历史包含:
mkdir sune1
mkdir sune2
Run Code Online (Sandbox Code Playgroud)
如果我导航到mkdir sune1,然后导航到,mkdir sune2我希望我的命令行是mkdir sune2(因为这是我现在导航到的) - 但我得到mkdir1sune2.
多年来我经常注意到这一点,但不要让它太困扰我,但我认为是时候改变了!那么,有什么想法吗?
您的提示字符串可能错误地转义了非打印字符。如果您的提示中有任何类似颜色更改的内容,您需要在终端转义序列周围放置\[和\]周围,以便 bash 可以告诉它们不占用屏幕上的空间 - 否则它会错误地计算实际命令在屏幕上的位置,并更新它在错误的地方。请参阅TLDP 中的此部分。在 zsh 中,放置%{并%}绕过转义序列。
| 归档时间: |
|
| 查看次数: |
1430 次 |
| 最近记录: |