我已经处理了这个问题差不多一个月了,我感到很沮丧,任何帮助都会非常感激.
我正在尝试为我的takenote命令编写一个小部件.小部件的目的是将文件~/notes夹中的所有markdown文件提供fzf给用户,以便用户可以选择其中一个并开始编辑它.在用户输入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
Run Code Online (Sandbox Code Playgroud)
不幸的是,上面的代码不起作用,因为zle reset-prompt,如果我删除它然后结果将是这样的:
选择文件后,它将变成:
如您所见,将破坏提示和命令本身.在我看来,我需要做的是zle reset-prompt
在调用之前做一个compadd但这只有在我将函数绑定到一个键时才能工作,否则,我将得到以下错误:
只有在ZLE处于活动状态时才能调用小部件