0

予想される補完を提供するZSHコンプリータがありますが、それらが追加された順序とは対照的に、辞書順に提供しますcompadd:

_matcher_complete() {
  (git ls-files 2>/dev/null || find .) | /usr/local/bin/matcher -l20 ${words[CURRENT]} | while read line; do
    compadd -U "$line"
  done
  compstate[insert]=menu
}

zle -C matcher-complete complete-word _generic
zstyle ':completion:matcher-complete:*' completer _matcher_complete
zstyle ':completion:matcher-complete:*' menu-select

bindkey '^X^T' matcher-complete

広告掲載順で補完を注文するにはどうすればよいですか?

4

1 に答える 1

2

インスピレーションのために別の ZSH 補完スクリプトを使用して、_matcher_complete関数を次のように変更しました。

_matcher_complete() {
  integer i=1
  (git ls-files 2>/dev/null || find .) | /usr/local/bin/matcher --limit 20 ${words[CURRENT]} | while read line; do
    compadd -U -2 -V $i -- "$line"
    i=$((i+1))
  done
  compstate[insert]=menu
}

の引数が異なることに注意してくださいcompadd。各フラグが何をしているのかを実際に理解するのに十分な時間はありませんでしたが ( man zshcompwidを参照)、順序を明示的に指定する必要があるようです (したがって、$i上記の関数で を使用します)。

インストールしていると仮定するとmatcher、このコードはあいまいなパス補完 ala Command-T/を提供しますCtrlP

于 2013-03-04T16:40:42.313 に答える