我已经快一个月处理这个问题了,感到很沮丧。非常感谢任何帮助。
我正在尝试为我的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
很不幸,由于zle reset-prompt
的存在,上述代码无法正常工作,如果我将其删除,结果会变成这样:
在选择文件后,结果会变成:
正如您所看到的那样,这将破坏提示符和命令本身。
在调用compadd
之前,我需要执行zle reset-prompt
,但这只能在我将函数绑定到按键时才起作用,否则我将会得到以下错误:
ZLE处于非活动状态时无法调用小部件
vim
做的,你可能能够适应它到你的环境中。请参见 https://github.com/junegunn/fzf/issues/227 - Tarun Lalwanizle
和它的状态一无所知。我认为这主要是一个zle widget
的问题,而不是fzf
。 - ExistMe