6
compctl -K _my_cpl ls
を使用して、自動完了機能をls
コマンドにフックします。この関数は、インデックスファイルから名前のリストを返します。zsh自動完了機能から追加スペースを削除するにはどうすればいいですか?
ただし、zshは完了するたびに常にスペースを追加します。私は複数のレベルのディレクトリを自動完成したい場合、私は毎回スペースを削除する必要があります。 bash completeコマンドで-o nospace
オプションのような追加スペースを削除する方法はありますか?
私はzstyle ':completion:*' add-space false
コマンドをテストしましたが、動作しません。ありがとうございました。
_my_cpl() {
local cur last opts
# current word in command line.
read -cA cur
last=$cur[-1]
# grep all directories and file names under current directory level.
opts=`egrep "${last}[^/]*[$|/]*" ~/index -o |uniq`
reply=($=opts)
}
compctl -K _my_cpl ls
zshにはbashcompinitモジュールがあります。私はbashの完全な機能をzshに移植して回避することができます。 自動ロードbashcompinit bashcompinit – leo