This note summarizes the steps to install and use fzf.vim in Neovim for efficient file navigation. It's minimal, clean, and focused on key actions. Assumes Ubuntu-like system (e.g., using apt).
- Neovim installed:
sudo apt install neovim fzfinstalled:sudo apt install fzfripgrepfor faster searches (optional but recommended):sudo apt install ripgrepbatfor file previews (optional):sudo apt install bat
Run in terminal:
curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Open ~/.config/nvim/init.vim:
nvim ~/.config/nvim/init.vim
Add this content:
call plug#begin('~/.config/nvim/plugged')
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
call plug#end()
" Keybindings
nnoremap <C-p> :Files<CR> " Ctrl-p: File search
nnoremap <Leader>b :Buffers<CR> " \b: Buffer switch
nnoremap <Leader>f :Rg<CR> " \f: Content search
" Optional: Previews and ignores
let g:fzf_preview_window = ['right:50%', 'ctrl-/']
let $FZF_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!{.git,node_modules}"'
Save and exit (:wq).
Open Neovim:
nvim
Run:
:PlugInstall
Close the window (:q) when done.
In Neovim:
:source ~/.config/nvim/init.vim
Open Neovim in a project:
cd ~/myproject
nvim
-
File Search:
Ctrl-por:Files- Type partial name (e.g.,
mncformain.c). Enter: Open in current buffer.Ctrl-t: New tab.Ctrl-x: Horizontal split.Ctrl-v: Vertical split.Ctrl-/: Toggle preview (ifbatinstalled).
- Type partial name (e.g.,
-
Buffer Switch:
\bor:Buffers- Switch between open files.
-
Content Search:
\for:Rg pattern- Search text across files (e.g.,
:Rg function main).
- Search text across files (e.g.,
-
Git Files:
:GFiles(in Git repos, ignores untracked). -
Lines in Buffers:
:Lines(search open files).
- Fuzzy matching: Non-consecutive letters work.
- Previews: Press
Ctrl-/in search windows. - Troubleshooting:
:PlugStatusto check plugins.:help fzf-vimfor docs.
This setup makes navigating files fast and intuitive. Update init.vim and :source as needed.