完了時にサブディレクトリにcdするエイリアスをどのように設定しますか?

完了時にサブディレクトリにcdするエイリアスをどのように設定しますか?

私はこの機能を設定しました~/.zshrc

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

しかし、私はそれのタブの完成を得ることはできません。 Tabキーを押したときにディレクトリ名を自動補完する方法はありますか?

ベストアンサー1

定義する完全な機能のためのcdp。慣例的にこの関数と呼ばれます_cdp。で定義.zshrcし、明示的に割り当てることができます。compdef

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

または、$fpath呼び出す_cdpファイルに完了コードを入れます。自動読み込み指示の完了

#compdef cdp
… # code goes here

目次を完成させるには、次を使用します。_files -/。現在のディレクトリに関連する他の場所でディレクトリを完成させるには、次のようにします。-Wオプション。この関数は1つのパラメータしか受け入れないので、最初のパラメータのみを完了してください。

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

この機能に加えて、ディレクトリの追加を好むかもしれないし、好まないかもしれません。cdpath

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

おすすめ記事