Zsh

如何將別名設置為 cd 到帶有完成的子目錄?

  • October 3, 2019

我已經在我的~/.zshrc

cdp() {
 cd "/mnt/c/Users/Mark/PhpstormProjects/$1"
}

但我沒有得到它的標籤完成。有沒有辦法讓我在選項卡時自動完成目錄名稱?

為定義一個完成函式cdp。按照慣例,該函式被呼叫_cdp。您可以在您的中定義它.zshrc並使用compdef.

_cdp () {
 … # code goes here
}
compdef _cdp cdp

或者,使用完成自動載入指令將完成程式碼放入您$fpath呼叫的文件中。_cdp

#compdef cdp
… # code goes here

要完成目錄,請使用_files -/. 要完成與目前目錄不同的位置的目錄,請使用-W選項。由於這個函式只接受一個參數,所以只完成第一個參數

_cdp () {
 ((CURRENT == 2)) &&
 _files -/ -W /mnt/c/Users/Mark/PhpstormProjects
}

除了此功能,您可能更喜歡將目錄添加到cdpath.

cdpath+=/mnt/c/Users/Mark/PhpstormProjects

引用自:https://unix.stackexchange.com/questions/541900