A fast, fuzzy file finder for Neovim with smart filtering and beautiful highlighting.
- Fast fuzzy matching powered by fzf
- Smart filtering: Excludes
node_modulesand other build directories by default - Shows hidden files: Includes
.env,.gitignore, and other dotfiles - Bottom split interface: Clean, non-intrusive UI
- Filename-first matching: Better results for partial filename searches
- Colorscheme integration: Automatically adapts to your current theme
- Lightweight: No preview window, focuses on speed
Required:
fzf- Fuzzy finder
Optional:
fd- Faster file listing (falls back tofindif not available)
# Ubuntu/Debian
sudo apt install fzf fd-find
# Arch Linux
sudo pacman -S fzf fd
# macOS
brew install fzf fdUsing lazy.nvim
{
'enheit/mlfs',
dependencies = {
-- Optional: only if you want to ensure fzf is installed via vim plugin
'junegunn/fzf',
},
config = function()
require('mlfs').setup({
-- Optional: customize configuration
exclude_patterns = {
'node_modules',
'.git',
'dist',
'build',
},
show_hidden = true,
window_height = 15,
})
-- Set keybinding
vim.keymap.set('n', '<leader><leader>', ':MLFSFind<CR>', { desc = 'Find Files' })
end,
}Using packer.nvim
use {
'enheit/mlfs',
config = function()
require('mlfs').setup()
end,
}Using vim-plug
Plug 'enheit/mlfs'
" In your init.vim or after plug#end()
lua require('mlfs').setup()Press <leader><leader> to open the file selector.
:MLFSFind " Open file selector- Type to search files
Enter- Open selected fileTab- Select multiple filesEscorCtrl-c- Close without selecting
require('mlfs').setup({
-- Directories/patterns to exclude from search
exclude_patterns = {
'node_modules',
'.git',
'dist',
'build',
'target',
'.next',
'coverage',
},
-- Whether to show hidden files (files starting with .)
show_hidden = true,
-- Height of the fzf window (in lines)
window_height = 15,
})
-- Set keybinding
vim.keymap.set('n', '<leader><leader>', ':MLFSFind<CR>', { desc = 'Find Files' })require('mlfs').setup({
-- your config here
})
-- Use any keybinding you prefer
vim.keymap.set('n', '<C-p>', ':MLFSFind<CR>', { desc = 'Find files' })require('mlfs').setup({
exclude_patterns = {
'node_modules',
'.git',
'vendor', -- Add vendor directory
'*.pyc', -- Add Python bytecode
'__pycache__', -- Add Python cache
},
})- File listing: Uses
fd(orfindas fallback) to list all files in your project - Smart filtering: Automatically excludes common build/dependency directories
- Includes hidden files: Shows
.env,.gitignore, etc. (configurable) - Fuzzy search: Uses fzf for fast, fuzzy matching with highlighting
- Path display: Shows relative paths from project root
MLFS is designed to work alongside:
All plugins follow the same naming convention and code style.
MIT
- Built with fzf for fuzzy finding
- Inspired by telescope.nvim and fzf.vim