An asynchronous fuzzy finder which is used to quickly locate files, buffers, mrus, tags, etc. in large project.
Python Vim script
Switch branches/tags
Nothing to show
Latest commit ec0ff8c Aug 18, 2017 @Yggdroot fix issue #54
Permalink
Failed to load latest commit information.
autoload fix issue #54 Aug 18, 2017
doc fix issue #54 Aug 18, 2017
plugin fix issue #54 Aug 18, 2017
syntax add helpExpl Jul 19, 2017
.gitignore ignore *.swp and doc/tags Jan 7, 2015
LICENSE change license to Apache License, Version 2.0 Jun 13, 2016
README.md add colorschemeExpl Jul 20, 2017

README.md

LeaderF

This plugin is mainly used for locating files, buffers, mrus, tags in large project.

  • Written in Python.
  • Support fuzzy and regex searching.
  • Manage buffers and mrus.
  • Open multiple files at once.
  • Extensible.

Screenshots

NameOnly Mode

FullPath Mode

Requirements

  • vim7.3 or higher. Only support vim7.4.330 or higher after v1.01.
  • vim compiled with Python support, you can check by using echo has('python') or echo has('python3') to see if the result is 1; Make sure that your python2 version is Python 2.7 or higher and python3 version is Python 3.1 or higher.

Installation

To install this plugin just put the plugin files in your ~/.vim (Linux) or ~/vimfiles (Windows).
For Vundle user, just add Plugin 'Yggdroot/LeaderF' to your .vimrc.

Usage

Command Description
:LeaderfFile
<leader>f
search files
:LeaderfFile [directory] search files under the directory specified
:LeaderfFileFullScreen search files, LeaderF window take up full screen
:LeaderfBuffer
<leader>b
search listed buffers
:LeaderfBufferAll search all buffers
:LeaderfMru search most recently used files
:LeaderfMruCwd search MRU in current working directory
:LeaderfTag navigate tags using the tags file
:LeaderfBufTag navigate tags in current buffer
:LeaderfBufTagAll navigate tags in all listed buffers
:LeaderfFunction navigate functions or methods in current buffer
:LeaderfFunctionAll navigate functions or methods in all listed buffers
:LeaderfLine search a line in current buffer
:LeaderfLineAll search a line in all listed buffers
:LeaderfHistoryCmd execute the command in the history
:LeaderfHistorySearch execute the search command in the history
:LeaderfSelf execute the commands of itself
:LeaderfHelp navigate the help tags
:LeaderfColorscheme switch between colorschemes

Once LeaderF is launched:

Command Description
<C-C> quit from LeaderF
<C-R> switch between fuzzy search mode and regex mode
<C-F> switch between full path search mode and name only search mode
<ESC> switch to normal mode
<C-V>
<S-Insert>
paste from clipboard
<C-U> clear the prompt
<C-J>
<Down>
move the cursor downward in the result window
<C-K>
<Up>
move the cursor upward in the result window
<2-LeftMouse>
<CR>
open the file under cursor or selected(when multiple files are selected)
<C-X> open in horizontal split window
<C-]> open in vertical split window
<C-T> open in new tabpage
<F5> refresh the cache
<C-LeftMouse>
<C-S>
select multiple files
<S-LeftMouse> select consecutive multiple files
<C-A> select all files
<C-L> clear all selections
<BS> delete the preceding character in the prompt
<Del> delete the current character in the prompt
<Home> move the cursor to the begin of the prompt
<End> move the cursor to the end of the prompt
<Left> move the cursor one character to the left in the prompt
<Right> move the cursor one character to the right in the prompt
<C-P> preview the result

Input formats:

  • In NameOnly mode (fuzzy)

    'abc' is interpreted as vim's regexp 'a.\{-}b.\{-}c'.
    If the first character you input is ';', then the searching will be the same as in FullPath mode.
    If you input string as 'abc;def', then 'abc' will match the file name and 'def' will match the directory name.

  • In FullPath mode (fuzzy)

    Same as in NameOnly mode except that the pattern will match the full path but not the file name only.

  • In Regexp mode

    The input string is the same as the Vim's regexp.

Customization

  • Change key bindings

    By default, <ESC> is the shortcut key to switch to normal mode, if you want to change it to be 'Quit from LeaderF':

    let g:Lf_CommandMap = {'<C-C>': ['<Esc>', '<C-C>']}

  • Customize the statusline

    Please refer to here.

  • Change the highlight of matched string

    highlight Lf_hl_match gui=bold guifg=Blue cterm=bold ctermfg=21
    highlight Lf_hl_matchRefine  gui=bold guifg=Magenta cterm=bold ctermfg=201
  • Change the default mapping of searching files command

    e.g. let g:Lf_ShortcutF = '<C-P>'

License

This plugin is released under the Apache License, Version 2.0 (the "License").