Skip to content

File manager plugin for Vim and Neovim intended to be as straightforward as possible and never do anything unexpected

License

Notifications You must be signed in to change notification settings

ehhov/filemanager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

filemanager - file manager plugin for Vim and Neovim
====================================================

filemanager is a simple yet functional tree explorer and file manager plugin
for Vim and Neovim. filemanager is written from scratch to be as
straightforward as possible while providing a rich feature set to cover all
tasks of a file manager built into a text editor. Its main focus is to give
the user full control over all actions and never do anything unexpected.


Features
--------

 * Browse directories, open and fold them one-by-one, collectively,
   or recursively. The directory tree is automatically updated when entering
   filemanager buffers.

 * Open files from the directory tree, by name, or find them in 'path'.
   Window placement can be finely configured.

 * Open files in external programs (using xdg-open by default).
   Specify file names to always open in external programs.

 * File names of any complexity are always handled correctly.
   The same applies to syntax (file type) highlighting as well.

 * Run shell commands and open terminal windows in the tree root and in
   the directory under the cursor.

 * Select files and directories interactively or by regex/glob.
   Perform actions on selected items: copy, move, rename, delete, or use in
   an arbitrary shell command.

 * Rename files in bulk directly by editing buffer lines of the directory
   tree.

 * Finely configure sorting order for some directories specifically.

 * Hide files ignored by Git.

 * Filter the directory tree by regex/glob with support for nested and
   exclusive filters.

 * Save filemanager buffers in bookmarks that store all configuration options
   and the directory view. Bookmarks are saved and shared between Vim
   sessions.

 * Cursor position is maintained based on path during all actions.

 * filemanager allows independent buffers with the same tree root directory.

 * One primary filemanager buffer per tab and however many auxiliary ones are
   allowed.

However, there are some things filemanager is not:

  * It's not the fastest file manager in the world,

  * It's not the most portable one.

To open filemanager windows, use the global :L, :V, or :H commands or simply
edit a directory.


Installation
------------
filemanager has no dependencies apart from Vim or Neovim itself.
To install it, use a plugin manager of your choosing.

Alternatively, if you would like to manage the plugin yourself, run

    $ git clone --depth 1 https://github.com/ehhov/filemanager \
          ~/.vim/pack/user/start/filemanager
    $ vim -u NONE -c 'helptags ALL' -c 'quit'

for Vim or

    $ git clone --depth 1 https://github.com/ehhov/filemanager \
          ~/.local/share/nvim/site/pack/user/start/filemanager
    $ nvim -u NONE -c 'helptags ALL' -c 'quit'

for Neovim.


Quick start
-----------

The main filemanager mappings and commands include

   Mapping     Action
   ---------------- File operations & shell commands ----------------
     Enter     Open a file or fold/unfold a directory
         O     Open a file in a maximized window
         s     Open a file in a horizontal split
         a     Open a file in a vertical split
         f     Open a file/directory by name
         F     Find and open a file in 'path'
         x     Open a file in an external program
         T     Open terminal in the tree root directory
         U     Open terminal in the directory under the cursor
         c     Run a shell command in the directory under the cursor
   ---------------------- Directory navigation ----------------------
         d     Create a new directory
         l     Descend one directory deeper
         h     Go to the parent directory
        zc     Fold the directory under the cursor
        zm     Fold deepest unfolded directories
        zo     Unfold the directory under the cursor recursively
    CTRL-L     Refresh the directory tree manually
   ------------------ Buffer settings & operations ------------------
         S     Sort the directory tree by name or time
        gr     Toggle reverse sorting order
        gh     Toggle showing hidden files
        gG     Toggle showing files ignored by Git
   ------------------------ Selecting files -------------------------
         i     Mark/unmark items under the cursor
         I     Unmark everything
         y     Yank marked/visually selected items
         Y     Unyank marked/visually selected items
         D     Delete marked/visually selected items
         p     Paste marked items under the cursor
         P     Paste yanked items under the cursor
        Cp     Move marked items under the cursor
        CP     Move yanked items under the cursor
         r     Rename marked items
         R     Rename files by editing the directory tree
   ---------------------- Bookmark operations -----------------------
   b Enter     Print saved bookmarks
   b{name}     Restore bookmark {name}
   B{name}     Save current state to bookmark {name}


  Command                Action
  -------------------------- Global commands --------------------------
  :L :V :H               Place & resize the primary filemanager window
  :L :V :H {dir}         Open a directory in a new filemanager window
  :L! :V! :H!            Close the primary filemanager window
  ----------------------- Buffer-local commands -----------------------
  :Mark {regex}	         Mark items matching a regex (local to the buffer)
  :GMark {glob}          Mark items matching a glob (local to the buffer)
  :Yank {regex}          Yank items matching a regex (for all buffers)
  :GYank {glob}          Yank items matching a glob (for all buffers)
  :Filter {regex}        Filter the directory tree using a regex
  :GFilter {glob}        Filter the directory tree using a glob
  :Bookmark[!] {name}    Save or restore a bookmark by name


Major configuration options include

  g:filemanager_winsize           Size of filemanager windows (in percent)
  g:filemanager_vertical          Orientation of filemanager windows
  g:filemanager_settabdir         Set tab-local current directory
  g:filemanager_opencmd           Command to open files externally (xdg-open)
  g:filemanager_alwaysexternal    Regexes for files to always open externally
  g:filemanager_sortorder         Regex pattern order for sorting by name
  g:filemanager_sortrules         Special sorting rules for directories


For more information, please see the documentation.

About

File manager plugin for Vim and Neovim intended to be as straightforward as possible and never do anything unexpected

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published