Заполнение табуляции, как вы описали, по крайней мере для каталогов, должно быть выполнимо zsh
без необходимости писать функцию zsh
.
Эта ссылка , например, отмечает, что при наборе /u/l/b
затем tab в приглашении открывается /usr/local/bin
.
Это работает для меня - если я сделаю каталог ~/code/rails-app
такой:
zsh% ls ~/code
another-app another-dir rails-app
zsh% ls ~/code/rails-app
one two
, то:
zsh% cd c/ra<TAB> # this expands to 'cd code/rails-app'
zsh% cd c/<TAB><TAB> # Double tab, one to expand "c" to "code",
zsh% # # second gives me the zsh-completion menu
Я не могу указать, какой вариант zsh
это - я использую довольно сильно модифицированный ~/.zshrc
и биты oh-my-zsh
. Это может быть функциональностью, предоставленной zsh
без необходимости включения; если нет, то подробности в первой ссылке или где-то в oh-my-zsh
или даже в какой-то версии руководства по ZSH должны помочь. (Я считаю руководство немного ... подавляющим, если не сказать больше).
Я не верю, что вам нужно написать функцию для достижения такого поведения - zsh
определенно может это сделать.