使用鍵綁定任意 zsh 補全

使用鍵綁定任意 zsh 補全

有時,指令沒有安裝補全功能,或在語法上可以接受一大堆類型的參數,使補全功能幾乎毫無用處。例如,「git checkout」可以採用任何 git 追蹤檔案的名稱或者任何引用或其他樹的名稱。它還可以採用一些選項標誌。有很多可能的完成。

知道我想要完成(例如)一個分支名稱,有沒有辦法綁定一個鍵來完成或顯示分支名稱選單? (對於任何完成類別也是如此。)

這似乎是可能且有用的,但我還沒有看到它被完成。

答案1

是的,這是可以做到的。我最初從 zsh 郵件列表之一收到以下內容,但我不記得是誰發布的:

zle -C complete-file complete-word _generic
zstyle ':completion:complete-file::::' completer _files
bindkey '^x^f' complete-file

這可以很容易地適應使用不同的完成函數而不是_files.

第一行定義了一個名為的新完成小部件complete-file,其行為類似於內建小complete-word部件,並使用該_generic函數產生完成清單。

然後,第二行對其進行配置,以便在使用該自訂小工具時,完成器將僅用於_files取得完成清單。

然後第三行將新的小部件綁定到按鍵序列。

相關內容