Ranger is a really nice file explorer for the command line. If you have tried it once, you will never wanna miss it again. The coolest thing about ranger is its integrated file preview, which works similar to the OSX Finder. But for working CLI only, its most outstanding feature is the terminal picture preview. With that in mind you will at least need to give a try to use ranger as a file explorer in vim.
Ranger
Before you are going to integrate ranger in vim, you might want to have a look at ranger itself and see it in action to decide if it will suite your vim experience. The ranger file explorer is amazingly fast and can be controlled with hotkeys similar to vim. There is nothing you miss so far. It has file previews with syntax highlighting. It can even preview PDF’s and give information about multimedia files.
ranger
Features
- UTF-8 Support
- Multi-column display
- Preview of the selected file/directory
- Common file operations (create/chmod/copy/delete/…)
- VIM-like console and hotkeys
- Renaming multiple files at once
- Automatically determine file types and run them with correct programs
- Change the directory of your shell after exiting ranger
- Tabs, Bookmarks, Mouse support
- True Color Image previews
- Video thumbnails
Source: ranger homepage
Vim
So you also want it to open files from within vim? Here is a very simple version of how it can be done:
function RangerExplorer()
exec "silent !ranger --choosefile=/tmp/vim_ranger_current_file " . expand("%:p:h")
if filereadable('/tmp/vim_ranger_current_file')
exec 'edit ' . system('cat /tmp/vim_ranger_current_file')
call system('rm /tmp/vim_ranger_current_file')
endif
redraw!
endfun
map <Leader>x :call RangerExplorer()<CR>
The vim function is pretty basic and can definitely gain some improvements. The important part however is map <Leader>x :call RangerExplorer()<CR>
. This is where you map the call to the Ranger function. Map it to whatever command you desire or just pick the above one.
To get it working straight out of the box, just add the above snippet to your ~/.vimrc
, reload vim and hit Leader + X.
Further Readings
If you want to know how to setup ranger on iTerm2 properly including image preview, read the following step by step guide Ranger image preview on OSX with iTerm2
_
Pingback: Ranger image preview on OSX with iTerm2