diff options
author | hut <hut@lepus.uberspace.de> | 2015-04-14 01:46:12 +0200 |
---|---|---|
committer | hut <hut@lepus.uberspace.de> | 2015-04-14 01:46:12 +0200 |
commit | eb9a75caa91f9315d14b17db14af4dfdd71fa82e (patch) | |
tree | 26e2d4002756a20666c6a2e6f8d148aafc990afe /examples/vim_file_chooser.vim | |
parent | 09b0f2f1044025c8d14d5f7296f43b495cf75ec3 (diff) | |
parent | 89146651e07830f15b59b5f076d61741747a0bea (diff) | |
download | ranger-1.7.0-emacs.tar.gz |
Merge branch 'master' into emacs v1.7.0-emacs
Diffstat (limited to 'examples/vim_file_chooser.vim')
-rw-r--r-- | examples/vim_file_chooser.vim | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/vim_file_chooser.vim b/examples/vim_file_chooser.vim new file mode 100644 index 00000000..fb9b7e1b --- /dev/null +++ b/examples/vim_file_chooser.vim @@ -0,0 +1,36 @@ +" Compatible with ranger 1.4.2 through 1.7.* +" +" Add ranger as a file chooser in vim +" +" If you add this code to the .vimrc, ranger can be started using the command +" ":RangerChooser" or the keybinding "<leader>r". Once you select one or more +" files, press enter and ranger will quit again and vim will open the selected +" files. + +function! RangeChooser() + let temp = tempname() + " The option "--choosefiles" was added in ranger 1.5.1. Use the next line + " with ranger 1.4.2 through 1.5.0 instead. + "exec 'silent !ranger --choosefile=' . shellescape(temp) + exec 'silent !ranger --choosefiles=' . shellescape(temp) + if !filereadable(temp) + redraw! + " Nothing to read. + return + endif + let names = readfile(temp) + if empty(names) + redraw! + " Nothing to open. + return + endif + " Edit the first item. + exec 'edit ' . fnameescape(names[0]) + " Add any remaning items to the arg list/buffer list. + for name in names[1:] + exec 'argadd ' . fnameescape(name) + endfor + redraw! +endfunction +command! -bar RangerChooser call RangeChooser() +nnoremap <leader>r :<C-U>RangerChooser<CR> |