如何解决fzf.vim自定义FilesUnrestrict命令打开文件报错问题
问题解决方法
你的问题出在使用了错误的fzf.vim函数:fzf#vim#grep()是为文本内容搜索设计的,它默认会将输出解析成文件名:行号:内容的格式,但你的fd命令输出的是纯文件路径,导致fzf错误地把路径当成带行号的格式处理,最终打开文件时路径解析失败。
正确的做法是使用专门用于文件选择的fzf#vim#files()函数,修改后的命令如下:
command! -bang -nargs=? FilesUnrestrict \ call fzf#vim#files(<q-args>, fzf#vim#with_preview({ \ 'source': 'fd -tf -tl -i -u --exclude ".git" ' . shellescape(<q-args>) \ }), <bang>0)
关键说明:
fzf#vim#files()函数会正确识别fd输出的纯文件路径,选中文件后能直接正常打开- 保留了
fzf#vim#with_preview()来维持预览功能,和你原本的需求一致 - fd的参数
-u已经包含了--no-ignore --hidden,参数无需调整
如果不需要预览功能,也可以简化成:
command! -bang -nargs=? FilesUnrestrict \ call fzf#vim#files(<q-args>, { \ 'source': 'fd -tf -tl -i -u --exclude ".git" ' . shellescape(<q-args>) \ }, <bang>0)
内容的提问来源于stack exchange,提问作者linrongbin
相关产品推荐
相关产品推荐

