小编Exi*_*tMe的帖子

只有在ZLE处于活动状态时才能调用小部件

我已经处理了这个问题差不多一个月了,我感到很沮丧,任何帮助都会非常感激.

我正在尝试为我的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处于活动状态时才能调用小部件

zsh widget completion fzf zsh-zle

18
推荐指数
2
解决办法
914
查看次数

标签 统计

completion ×1

fzf ×1

widget ×1

zsh ×1

zsh-zle ×1