迁移到 UTF-8 后 SSH 下的 linux xterm/rxvt/console 出现问题

迁移到 UTF-8 后 SSH 下的 linux xterm/rxvt/console 出现问题

我使用 bash 并且一直使用 Latin1 编码,因为在尝试迁移到建议的 UTF-8 时我总是遇到问题。我最终放弃了,我正在将所有内容迁移到UTF-8。多么痛苦啊...

我在使用所有rxvt,urxvt和进行 SSH 时遇到了一个具体问题xterm。我的远程提示设置为:

 PS1="\033[32m\[\h:\W> \]\033[0m"

这显示了一个漂亮的绿色东西,例如

 MyBox:~> 

迁移到 utf-8(所有语言和区域设置从en_USen_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\]"

有关详细信息,请参阅PROMPTINGshell 手册中的部分(以我为例)。man bash

相关内容