如何在 vim 中启动 fzf 并在拆分窗口上打开所选文件?

如何在 vim 中启动 fzf 并在拆分窗口上打开所选文件?

如何在拆分窗口中启动fzfvim打开所选文件?我不想安装任何插件。

我试过

:!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它建立在低级插件的基础上,提供强大的功能,您将受益匪浅。

相关内容