Path navigator designed to work with Vim's built-in mechanisms and complementary plugins.
- Simple: Each line is just a filepath
- Flexible: Mash up the buffer with
:g, automate it withg:dirvish_mode - Safe: Never modifies the filesystem
- Non-intrusive: Impeccable defaults. Preserves original/alternate buffers
- Fast: 2x faster than netrw
- Intuitive: Visual selection opens multiple files
- Powerful:
:Shdo[!]generates shell script - Reliable: Less code, fewer bugs (96% smaller than netrw). Supports Vim 7.2+
Each Dirvish buffer contains only filepaths, hidden by conceal.
- Use plain old
yto yank a path, then feed it to:ror:eor whatever. - Sort with
:sort, filter with:global. HitRto reload. - Append to quickfix (
:'<,'>caddb), iterate with:cdo. - Script with
:Shdo[!]. :set ft=dirvishon any buffer to enable Dirvish features:git ls-files | vim +'setf dirvish' -
So commands and plugins that work with @% and @# do the Right Thing.
- Create directories:
:!mkdir %foo - Create files:
:e %foo.txt - Use
@#to get the Dirvish buffer from a:Shdobuffer::Shdo mkdir <C-R>#.bk Z!
For any purpose. It's safe and reversible.
- Use
:sortor:globalto re-arrange the view, delete lines withd, etc. Then:%Shdothe result. - Pipe to
:!to see inline results::'<,'>!xargs du -hs - Type
uto undo, orRto reload.
The arglist is an ad-hoc list of filepaths.
- Type
xto add files to the (window-local) arglist. - Iterate with standard commands like
:argdo, or plugin features like]a. - Run
:Shdo!(mapping:[count].) to generate a shell script from the arglist.
Some people have created plugins that extend Dirvish:
- remote-viewer - Browse
ssh://and other remote paths - vim-dirvish-git - Show git status of each file
- vim-dirvinist - List files defined by projections
Dirvish was originally forked (and completely rewritten) from filebeagle by Jeet Sukumaran.
Copyright 2015 Justin M. Keyes.