如何在 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它建立在低階插件的基礎上,提供強大的功能,您將受益匪淺。

相關內容