Я использую compctl -K _my_cpl ls
, чтобы подключить свою функцию автозаполнения к команде ls
. Функция возвращает список имен из индексного файла.
Однако zsh всегда добавляет пробел после каждого завершения. Если я хочу автоматически заполнить многоуровневую директорию, мне нужно каждый раз удалять пробел. Есть ли способ удалить дополнительное пространство, как опция -o nospace
в команде bash complete?
Я протестировал команду 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