There is vifm.vim plugin, which provides a number of commands:
- :EditVifm -- select a file or files to open in the current buffer.
- :SplitVifm -- split buffer and select a file or files to open.
- :VsplitVifm -- vertically split buffer and select a file or files to open.
- :DiffVifm -- select a file or files to compare to the current file with :vert diffsplit.
- :TabVifm -- select a file or files to open in tabs.
vifm will be opened to pick the file (not in the buffer, Vim got support for this only recently, but this could be an option in the future).