如何在拆分窗口中启动fzf
并vim
打开所选文件?我不想安装任何插件。
我试过
:!a=$(ls | fzf) && vsplit $a
答案1
由于fzf
需要访问控制台,因此您需要将其作为前台命令运行,并且实际上没有一个好方法可以做到这一点和fzf
通过管道捕获 Vim 中(文件名)的输出。因此,使用临时文件来存储文件名是这里最简单的方法。
一个简单的解决方案是:
function! SelectFile()
let tmp = tempname()
execute '!ls | fzf >'.tmp
let fname = readfile(tmp)[0]
silent execute '!rm '.tmp
execute 'vsplit '.fname
endfunction
然后将其与以下命令一起使用:
:call SelectFile()
(或者为其创建键映射或用户命令。)
使用 Vim在其中:terminal
运行fzf
(而不是用 Shell 退出:!
)也是一个不错的选择。
无论如何,真正最好的方法是只使用一个优秀的 Vim 插件,或者是包含在弗兹夫本身,也可能是更完整的fzf.vim它建立在低级插件的基础上,提供强大的功能,您将受益匪浅。