
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
:!
いずれにせよ、ここでの本当の最善のアプローチは、優れたVimプラグインの1つを使用することです。フジフそれ自体、そしておそらくより完全な翻訳:これは低レベルのプラグインを基盤として構築されており、役に立つ強力な機能を提供します。