Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

Dirvish key mappings that are <silent> prevent
Vim from asking the user to enter an encryption key when an encrypted
file is opened from Dirvish (`:help encryption`).

Remove <silent> from the key mappings that call
'dirvish#open()' and replace ':call' with '<cmd>call'.

Git stats


Failed to load latest commit information.
Latest commit message
Commit time
September 1, 2020 08:51
October 25, 2015 19:05
September 7, 2020 16:11


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 with g: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+


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. Hit R 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:
    mkdir <C-R>#.bk

Edit Dirvish buffers

For any purpose. It's safe and reversible.

  • Use :sort or :global to re-arrange the view, delete lines with d, etc. Then :%Shdo the result.
  • Pipe to :! to see inline results:
    :'<,'>!xargs du -hs
  • Type u to undo, or R 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.


Some people have created plugins that extend Dirvish:


Dirvish was originally forked (and completely rewritten) from filebeagle by Jeet Sukumaran.

Copyright 2015 Justin M. Keyes.