vimでfzfを起動し、ペインで選択したファイルを開く方法は?

vimでfzfを起動し、ペインで選択したファイルを開く方法は?

ペインで選択したファイルを起動し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()

(またはそのためのキーマップまたはユーザーコマンドを作成します。)

Shellで終了するのではなく、Vimを使用して:terminal実行するのも良い選択です。fzf:!

とにかく最善の方法は、良いVimプラグインまたはVimに含まれているプラ​​グインを使用することです。富士それ自体がより完全かもしれません。fzf.vimこれは低レベルのプラグインに基づいて構築され、大きな利点を得るための強力な機能を提供します。

関連情報