Bash

遷移到 UTF-8 後 SSH 下 linux xterm/rxvt/console 中的問題

  • October 3, 2020

我使用 bash 並且一直在使用 Latin1 編碼我的一生,因為我在嘗試遷移到建議的 UTF-8 時總是遇到問題。我終於放棄了,我正在將所有東西都遷移到 UTF-8。多麼痛苦……

rxvt在使用 all和urxvt進行SSH 時我遇到了一個特定問題xterm。我的遠端提示設置為:

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

這顯示了一個很好的綠色東西,比如

MyBox:~> 

en_US遷移到 utf-8(從to的所有語言和語言環境en_US.UTF-8)、my UPDOWN箭頭(後退/前進歷史記錄)後,DEL不要BS跟踪行中的位置(破壞提示、刪除錯誤的字母等)。一團糟。例子:

Orion:~> ssh me@MyBox.mydomain...
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 機器中的文件,但沒有運氣。看來捷徑是正確的。

有任何想法嗎?

您錯誤地設置了提示。\[\]段應包含列印字元,但在您的段中,它僅包含列印字元。(這與 Latin1 與 UTF-8 無關,您會放心知道。)

試試這個

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

有關詳細資訊,請參閱PROMPTINGshell 手冊中的部分(man bash在我的情況下)。

引用自:https://unix.stackexchange.com/questions/612751