我一直在使用 ZSH 來完成主機名稱補全,並且想要更改預設行為。當我有多個具有相似名稱的主機時,完成會執行我不關心的操作。最好舉個例子:
假設我有這些主機:
host01.stage.example.com
host02.stage.example.com
host01.prod.example.com
host02.prod.example.com
現在,在我的提示中,我將輸入:
$ ssh hos<tab>
zsh 會告訴我:
$ ssh host..example.com
將遊標放在「主機」後面,並顯示一個包含主機名稱的選單。我喜歡顯示主機名稱的選單,我只是不希望它完成一切。奇怪的事情發生了。大多數時候,我透過選項卡瀏覽,要么必須刪除主機名,要么必須刪除行上的額外內容。
首選方法是不填寫主機名稱的其餘部分。就像是:
$ ssh hos<tab>
zsh 希望能告訴我:
$ ssh host
host01.stage.example.com host01.prod.example.com
host02.stage.example.com host02.prod.example.com
有什麼想法嗎?
答案1
您是否更改了 .zshrc 檔案中的任何內容?因為當我這樣做時
ssh 127<tab>
它給了我正確的建議...遊標移動到正確的位置:
ssh 127.0.<cursor>.1
127.0.0.1 127.0.1.1
(第二行是得到的建議)