Я имею дело с этой проблемой почти месяц, и я чувствую себя расстроенным, Любая помощь будет очень признательна.
Я пытаюсь написать виджет для моей команды takenote
. Цель виджета - fzf
все файлы fzf
в папку ~/notes
в fzf
чтобы пользователь мог выбрать один из них и fzf
редактирование. После того, как пользователь takenote
и takenote
<tab>
я ожидаю, что виджет будет запущен.
Вот определение виджета _takenote.zsh
:
#compdef takenote
local file=$( find -L "$HOME/notes/" -print 2> /dev/null | fzf-tmux +m )
zle reset-prompt
compadd $file
return 1
К сожалению, приведенный выше код не работает из zle reset-prompt
, если я удалю его, результат будет таким:
И после выбора файла он превратился бы в:
Это, как вы видите, приведет к повреждению подсказки и самой команды. Мне кажется, что мне нужно сделать вызов zle reset-prompt
перед вызовом compadd
но это может работать только тогда, когда я привязываю функцию к ключу, иначе я получу следующую ошибку:
виджеты можно вызывать только при активном ZLE