Bash
遷移到 UTF-8 後 SSH 下 linux xterm/rxvt/console 中的問題
我使用 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
)、myUP
、DOWN
箭頭(後退/前進歷史記錄)後,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\]"
有關詳細資訊,請參閱
PROMPTING
shell 手冊中的部分(man bash
在我的情況下)。