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
y
to yank a path, then feed it to:r
or:e
or whatever. - Sort with
:sort
, filter with:global
. HitR
to reload. - Append to quickfix (
:'<,'>caddb
), iterate with:cdo
. - Script with
:Shdo[!]
. :set ft=dirvish
on 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:Shdo
buffer::Shdo mkdir <C-R>#.bk Z!
For any purpose. It's safe and reversible.
- Use
:sort
or:global
to re-arrange the view, delete lines withd
, etc. Then:%Shdo
the result. - Pipe to
:!
to see inline results::'<,'>!xargs du -hs
- Type
u
to undo, orR
to reload.
The arglist is an ad-hoc list of filepaths.
- Type
x
to 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
- vim-dirvish-dovish - Add vim-style file manipulation commands
Dirvish was originally forked (and completely rewritten) from filebeagle by Jeet Sukumaran.
Copyright 2015 Justin M. Keyes.