2014-03-06 122 views
2

我決定試一試zsh。首先,我將描述現在的情況,然後介紹我希望他們如何工作。自定義zsh自動完成

可以說我有2個子文件夾在當前文件夾中,第一個「文檔」,第二個「下載」。

  1. 如果我輸入「cd D」並按Tab鍵,它將自動完成「Do」。

  2. 再按一次TAB,它會自動完成「Documents」。

  3. 再按一次TAB,它會自動完成「下載」。

  4. 再次按TAB,它會自動完成「文檔」(我明白,它不會像Bash那樣回到「Do」)。

  5. 在這一點上,我必須按兩次Enter鍵來更改目錄。 (先輸入選擇「文件」,然後輸入命令執行命令)。

我多麼想zsh來表現:

  1. 如果我鍵入 「cd d」,按TAB,我想自動完成與 「文檔」。
  2. 再次按TAB,應該自動完成「下載」。
  3. 再次按TAB,應該自動完成「文檔」。
  4. 按Enter鍵一次,目錄應該變爲「Documents」。

我該怎麼做? :-)

回答

3

哇,一年沒有回覆。我希望你發現瞭如何,但對於其他人誰可能通過搜索遇到這個...

首先確保你有裝入該行

zmodload zsh/complist 

然後,你可以綁定輸入完成模塊,又名^M,在menuselect的功能accept-line - 這是正常的行爲 - 而是通過以點前綴它,如果迫使其功能之前離開menuselect模式執行

bindkey -M menuselect '^M' .accept-line