我使用 bash 并且一直使用 Latin1 编码,因为在尝试迁移到建议的 UTF-8 时我总是遇到问题。我最终放弃了,我正在将所有内容迁移到UTF-8。多么痛苦啊...
我在使用所有rxvt
,urxvt
和进行 SSH 时遇到了一个具体问题xterm
。我的远程提示设置为:
PS1="\033[32m\[\h:\W> \]\033[0m"
这显示了一个漂亮的绿色东西,例如
MyBox:~>
迁移到 utf-8(所有语言和区域设置从en_US
到en_US.UTF-8
)后,我的UP
,DOWN
箭头(后退/前进历史记录),DEL
并且BS
不跟踪行中的位置(破坏提示、删除错误的字母等)。一团糟。例子:
Orion:~> ssh [email protected]...
Last login: Sat Oct 3 13:47:42 2020 from NNN.NNN.NNN.NNN
MyBox:~> ls
amp/ ap/ bin/ phantomjs/ varios/
MyBox:~>
UP
多次点击历史倒退后,上面写着:
MyBox:~vi .basrc
代替
MyBox:~> vi .basrc
所以有些角色消失了。例如,这会使编辑命令行变得一团糟。
我尝试摆弄~/.inputrc
远程 SSH 机器中的文件,但没有成功。看来快捷键是正确的。
有任何想法吗?
答案1
您错误设置了提示。\[
...段\]
应包含非- 打印字符,但在你的中它只包含打印字符。 (这与 Latin1 和 UTF-8 无关,您可以放心知道。)
试试这个
PS1="\[\033[32m\]\h:\W> \[\033[0m\]"
有关详细信息,请参阅PROMPTING
shell 手册中的部分(以我为例)。man bash