GitHub - justinmk/vim-dirvish: Directory viewer for Vim
source link: https://github.com/justinmk/vim-dirvish
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
dirvish.vim
Path navigator designed to work with Vim's built-in mechanisms and complementary plugins.
Features
- 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+
Concepts
Lines are filepaths
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' -
Buffer name is the directory name
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!
Edit Dirvish buffers
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.
Work with the :args list
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.
Extensions
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
Credits
Dirvish was originally forked (and completely rewritten) from filebeagle by Jeet Sukumaran.
Copyright 2015 Justin M. Keyes.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK