我有一个目录,其中包含一组用于技术编写的模板,并与其他人共享(他们将其作为sublime包的一部分使用)。由于我使用的是nvim,我经常打开一个单独的tmux窗格,使用:fzf.vim中的文件打开模板,复制其内容,然后将其粘贴到我的缓冲区中。
或者,我可以从模板目录中读取:r,但这并不是模糊搜索,因此很难在数百个选项中找到正确的文件。 gotbletu的https://www.youtube.com/watch?v=Zew0mgJwAh8将是一个完美的解决方案,除了我不能在他的脚本需要的每个模板的顶部添加标签(同样,模板与其他人共享)。
我试图在shell函数中将f与fzf结合起来,但到目前为止没有任何效果。有关如何完成这项工作的任何想法?
答案 0 :(得分:1)
您可以尝试在init.vim中添加以下内容
let g:pathToTemplates='/tmp/'
function! GoSink(file)
execute ':r '.g:pathToTemplates.a:file
endfunction
command! Go call fzf#run({
\ 'source': 'ls '.g:pathToTemplates,
\ 'sink': function('GoSink')})
然后输入:Go
如果你真的想从终端上做这个,那么你在bashrc / zshrc /...中需要这个。>
function fzfreadtemplate(){
local templatedir='/tmp/'
filename="$templatedir"$(ls "$templatedir" | fzf)
if [[ -f "$filename" ]]; then
vim -c ':r '"$filename"
fi
}