
我通常有很長的終端命令,每當我嘗試使用命令歷史記錄(通過按向上箭頭)時,文字格式都會變成亂碼,並且遊標出現在錯誤的位置。此時編輯命令變得不可能,且遊標的實際位置無法在螢幕上正確表示。
如果我調整終端機視窗的大小以允許整個命令適合一行,那麼格式就會得到糾正,但有時我沒有足夠的螢幕空間來完成此操作。有任何想法嗎?
答案1
您是否自訂了 shell 提示字元(例如著色或類似的內容)?發生這種情況的通常原因是提示符號中包含非列印字元(例如顏色變更序列),它們使 shell 混淆提示符的寬度,以及如何換行命令行。
假設您使用 bash 作為 shell,正確的解決方案是將非列印序列包裝起來,\[...\]
讓 shell 知道它們是非列印序列。例如,如果您希望提示符號為藍色(\e[0;34m
將其變為藍色,\e[m
恢復正常),您可以使用:
PS1='\[\e[0;34m\]your prompt text here\[\e[m\]'
答案2
這是否發生在您的本機電腦上 - 我的意思是您還沒有透過 SSH 連接到另一台電腦?如果這是本地的,請嘗試退出 Terminal.app,刪除 .plist 文件,然後重新開啟 Terminal.app。