#zsh #oh-my-zsh
#zsh #oh-my-zsh
Вопрос:
Допустим, у меня есть следующее в моем .zshrc
:
hello() {
echo "Hello $1!"
}
hello_list() {
echo "${1}foo"
echo "${1}bar"
echo "foo${1}bar"
echo "foobar${1}"
}
_hello() {
compadd $(hello_list ${words[2]})
}
compdef _hello hello
если я набираю hello bob<TAB>
, я получаю:
bobbar bobfoo
Из моего чтения документов я думаю, это потому, что у меня есть zstyle ':completion:*' matcher-list ''
в одном из моих многочисленных ohmyzsh
конфигурационных файлов.
Как я могу получить список, который отображается на основе соответствия подстроки при нажатии tab? Я действительно изо всех сил пытаюсь понять документы.
Ответ №1:
Попробуйте изменить _hello
на это:
_hello() {
compadd -M 'l:|=* r:|=*' $(hello_list ${words[2]})
}
Я наткнулся на некоторые заметки в разделе 6.7.5 здесь: http://zsh.sourceforge.net/Guide/zshguide06.html это привело меня к этому. Эта ссылка указывает, что вы можете включить совпадение подстрок с zstyle
настройками, но я не смог заставить ни одну из них работать в моей системе.