1

zsh プロファイルにいくつかの関数を設定して、その場でエイリアスをディレクトリに保存できるようにしました。それは非常に簡単です - cd へのエイリアスを dir の ~/.dirs ファイルに追加するだけです。

zsh で、このファイルからのエイリアスを提案されたタブ補完で優先させることは可能ですか? たとえば、「printeffect」というエイリアスがあります。「printe」と入力してタブを押すと、最初の補完候補は「printenv」です。「printeffect」にしたいです。

4

1 に答える 1

0

これはうまくいくはずです:

  • 現在の特別なエイリアスを保持する配列。ディレクトリを切り替えるときに配列を再定義するだけで済みます

    typeset -U MY_DIR_ALIASES
    MY_DIR_ALIASES=(foo1 foo2 foo3 foo-etc)
    
  • カーソルが位置にあるときに完了するカスタム コンプリータ関数_foo(ファイル名は) :_foo-commands-

    _foo() {
      cmds=( $MY_DIR_ALIASES )
     _describe -commands- cmds
    }
    

    または、これを次の名前のファイルに保存する場合_foo:

    #compdef -command-
    # -*-shell-script-*-
    cmds=( $MY_DIR_ALIASES )
    _describe -commands- cmds
    
  • このコンプリーター関数を他の関数の前に実行する:

    zstyle ':completion:::::' completer _foo _complete _approximate
    
于 2012-12-11T12:28:38.417 に答える