MRU plugin build for speed with async IO operation
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
autoload
bin
doc
plugin
rplugin/python3/denite/source
LICENSE
Readme.md
package.json

Readme.md

Redismru.vim

Most recently used files plugin for vim8 & Neovim using Redis and job-control feature.

Redismru also perform MRU list load on CursorHold, this makes work with multiply vim instances easier.

Why Redismru?

  • No performance influence on startup, very fast async load.
  • Sync file list across all vim instance.
  • Ignore pattern support.
  • Support limit results to specific directory and record remove.
  • Automatic file existing validation on vim leave (default).

Usage

You can also limit the files shown by Redismru by pass a directory as first unite argument, like:

Unite redismru

Or use denite.nvim

" Search all recently files
Denite redis_mru
" Search recently files of current CWD
Denite redis_mru:.

Note, async file load at startup and would cost 10~100ms, you can't get the list before it finish.

🔍Install

  • install redis and nodejs with command like:

      brew install redis
      brew install node
    

node script is used for async file validate (started on vim leave)

  • install this plugin and denite.nvim/unite.vim with plugin manager like vim-plug by:

      Plug 'Shougo/unite.vim'
        Plug 'neoclide/redismru.vim', {do: 'npm install'}
    
  • CD to the project root and run:

      npm install
    

🚧Configuration

  • g:redismru_disable_auto_validate set to 1 if you want to disable validation on vim leave.
  • g:redismru_disable_sync set to 1 if you want to disable automatic sync on CursorHold event.
  • g:redismru_ignore_pattern vim regex for ignored files, default see :h g:redismru_ignore_pattern.
  • g:redismru_host for redis host to connent (default 127.0.0.1).
  • g:redismru_port for redis port to connent (default 6379).
  • g:redismru_key for redis key to use for MRU list (default 'vimmru').
  • g:redismru_limit for limit the count for MRU list load and validation (should no more than 2000).

🍚Usage

If you use denite.nvim, you can add keymap like:

  nnoremap <silent> <space>r  :<C-u>Denite redis_mru<cr>
  nnoremap <silent> \r        :<C-u>Denite redis_mru:.<cr>
  • Open unite source with redismru source like:

      Unite redismru
    
  • Open unite redismru source with files limit in current cwd:

      Unite redismru:.
    
  • Validate all mru files manully:

      :MruValidate
    

validation would start async when vim exit, so you normally don't need this

see h:redismru to learn more.