Linux
如何在遠端 ssh 伺服器上停止自動完成
當我從 Linux (Mint) 筆記型電腦 ssh 進入遠端伺服器 (macOS) 時,遠端自動完成功能會在每次擊鍵時啟動並完成。這是最近才開始的,但我無法確定確切的時間。成功登錄後,當我嘗試列出目前目錄的內容時,一旦按“l”,螢幕上就會出現“ls”。當我鍵入“s”來完成列表命令時,它現在顯示為“lss”(但仍以“ls”執行)。更長的命令變得非常奇怪,非常快。鍵入“exit”顯示為“exitxititt”。同樣,命令仍然執行,但命令行一團糟。
我不知道這裡發生了什麼——我什至不知道如何提出一個簡潔或連貫的問題。只有當我從 Linux 客戶端登錄 macOS 時才會發生這種情況;Linux-Linux 連接很好(都使用相同的基本 shell 配置;zsh 使用 Oh-My-Zsh)。知道發生了什麼嗎?更好的是,我如何讓它停止?
我想出了一個簡單的解決方法,但問題仍未解決。如果我直接訪問它(沒有 ssh),遠端機器上不會出現自動完成問題。如果我在 ssh 進入後立即從 zsh 更改為 bash,也不會發生這種情況(因此這是 macOS 主機上的 .zshrc 問題——即使在我關閉 zsh-autosuggestions 外掛之後也是如此)。解決方法是簡單地 ssh 直接進入 bash:
ssh user@host -t bash
。