/fm.vim

Hyper-extensible minimal file manager for vim

Primary LanguageVim ScriptMIT LicenseMIT

Fm

Demo

An extensible and minimalistic file manager for Vim.

Install

Use your plugin manager of choice to install this plugin.

Plugin manager Command
Vim Plug Plug 'shoumodip/fm.vim'
Vundle Plugin 'shoumodip/fm.vim'
Dein call dein#add('shoumodip/fm.vim')
Minpac call minpac#add('shoumodip/fm.vim')

Or use the builtin packages feature.

Editor Path
Vim cd ~/.vim/pack/plugins/start
NeoVim cd ~/.config/nvim/pack/plugins/start
$ git clone https://github.com/shoumodip/fm.vim

Usage

Run :Ex and press C-h. It should display a help window. Here is the online version.

Actions Others
D Delete x Mark/unmark item
R Rename X Toggle marks
c Copy to a directory l Open item
m Move to a directory h Go up one directory
p Change permissions i Start edit mode
s Execute shell commands q Quit
g Run the next action globally r Refresh
f Create a file Enter Open item
d Create a directory BackSpace Go up one directory
  • Selected Items: The marked items or the items under the cursor
  • Action: Operation on selected items in the current directory
  • Global Action: Operation on all selected items in the current buffer

Ex-mode API

Same as Netrw.

Command Description
Ex[plore] Open Fm in the current window
Sex[plore] Open Fm in a split
Vex[plore] Open Fm in a vertical split
Tex[plore] Open Fm in a new tab

Configuration

Global Fm options follow the naming scheme of g:fm#OPTION. When a Fm buffer is opened, the state of the global options at that instant is copied over to buffer local variables. The global option ceases to have any effect in that particular buffer, it is now the job of the buffer level options. They follow the naming scheme of b:fm_OPTION. Even though the global options don't have any effect on already open buffers, they will affect the subsequent Fm buffers.

g:fm#ls_arguments

The arguments supplied to ls.

  • Type: string
  • Default: -vp --group-directories-first

g:fm#hidden

Whether dotfiles are hidden.

  • Type: boolean
  • Default: v:false

Fm API

Check out autoload/fm.vim. Every single function is documented with jsdoc style parameter annotations.

Plugins

The shell command (s) feature of Fm has support for vim-dispatch and asyncrun.vim

See also