- Simple: Each line is just a filepath
- Flexible: Mash up the buffer with
:g, automate it with
- Safe: Never modifies the filesystem
- Non-intrusive: Impeccable defaults. Preserves original/alternate buffers
- Fast: 2x faster than netrw
- Intuitive: Visual selection opens multiple files
:Shdo[!]generates shell script
- Reliable: Less code, fewer bugs (96% smaller than netrw). Supports Vim 7.2+
Lines are filepaths
Each Dirvish buffer contains only filepaths, hidden by conceal.
- Use plain old
yto yank a path, then feed it to
- Sort with
:sort, filter with
- Append to quickfix (
:'<,'>caddb), iterate with
- Script with
:set ft=dirvishon any buffer to enable Dirvish features:
git ls-files | vim +'setf dirvish' -
Buffer name is the directory name
So commands and plugins that work with
@# do the Right Thing.
- Create directories:
- Create files:
@#to get the Dirvish buffer from a
:Shdo mkdir <C-R>#.bk Z!
Edit Dirvish buffers
For any purpose. It's safe and reversible.
:globalto re-arrange the view, delete lines with
d, etc. Then
- Pipe to
:!to see inline results:
:'<,'>!xargs du -hs
uto undo, or
Work with the :args list
The arglist is an ad-hoc list of filepaths.
xto add files to the (window-local) arglist.
- Iterate with standard commands like
:argdo, or plugin features like
[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.