Awesome Open Source
Awesome Open Source

Rafael Bodill's Neovim Config

Lean mean Neovim machine, 30-45ms startup time.

Works best with Neovim ≥0.7 ⚠️ For Vim 8.x, use the vim git tag.

I encourage you to fork this repo and create your own experience. Learn how to tweak and change Neovim to the way YOU like it. This is my cultivation of years of tweaking, use it as a git remote and stay in-touch with upstream for reference or cherry-picking.

Table of Contents (🔎 Click to expand/collapse)

Features

Screenshot

Vim screenshot

Prerequisites

  • Neovim (brew install neovim) ≥ v0.7.0
  • Plugins are parsed from YAML and cached. Ensure one of these tools is installed:
    • yj (brew install yj)
    • yq (brew install yq)
    • yaml2json
    • Ruby
    • Python with PyYAML (pip install PyYAML)

Install

1. Let's clone this repo! Clone to ~/.config/nvim

mkdir ~/.config
git clone [email protected]:rafi/vim-config.git ~/.config/nvim
cd ~/.config/nvim

2. Run make test to test your nvim version and capabilities.

3. Run make to install all plugins.

4. If you are experiencing problems, run and read nvim -c checkhealth

Enjoy! 😄

Language-Server Protocol (LSP)

To leverage LSP auto-completions and other functionalities, run :LspInstall <server> to use williamboman/nvim-lsp-installer installation feature. Use Tab to list available servers.

Instead, you can use the UI with ':LspInstallInfo'.

Here's some popular servers to install:

  • :LspInstall html cssls jsonls yamlls
  • :LspInstall gopls
  • :LspInstall pylsp
  • :LspInstall bashls vimls sumneko_lua
  • :LspInstall tsserver
  • and more

See lua/plugins/lspconfig.lua and lua/lsp/* for built-in mapping and configuration for some language-servers. You'll need utilities like npm and curl to install some extensions. For more information, see:

Upgrade

cd ~/.config/nvim
make update

This will run git pull --ff --ff-only and update all plugins using Shougo/dein.vim package-manager (:call dein#update()).

Recommended Fonts

On macOS with Homebrew, choose one of the Nerd Fonts, for example, here are some popular fonts:

brew tap homebrew/cask-fonts
brew search nerd-font
brew install --cask font-victor-mono-nerd-font
brew install --cask font-iosevka-nerd-font-mono
brew install --cask font-hack-nerd-font
brew install --cask font-fira-code

Recommended Linters

  • macOS with Homebrew:
brew install vint shellcheck jsonlint yamllint
brew install tflint ansible-lint tidy-html5 proselint write-good
  • Node.js based linters:
yarn global add markdownlint-cli eslint jshint stylelint sass-lint
  • Python based linters:
pip3 install --user pycodestyle pyflakes flake8

Recommended Tools

User Custom Config

For custom configuration, create the config/local.vim file and add your personal vimscript there.

For installing plugins, create a config/plugins.local.yaml file and manage your own plugin collection. If you want to disable some of the plugins I use, you can overwrite them, e.g.:

- { repo: shadmansaleh/lualine.nvim, if: 0 }

Using config/plugins.local.yaml you can install any plugin you want, e.g.:

# Choose only ONE of these statuslines ;)
- repo: itchyny/lightline.vim
- repo: vim-airline/vim-airline
- repo: glepnir/galaxyline.nvim
- repo: glepnir/spaceline.vim
- repo: liuchengxu/eleline.vim

You can set global specific features by defining in your local config/local.vim:

let g:elite_mode = 1                     " Set arrow-keys to window resize
let g:global_symbol_padding = '  '       " Padding after nerd symbols
let g:tabline_plugin_enable = 0          " Disable built-in tabline
let g:enable_universal_quit_mapping = 0  " Disable normal 'q' mapping
let g:disable_mappings = 0               " Disable config/mappings.vim

To override LSP configurations, create a lua/lsp-local/<server_name>.lua file. Must return a table with config function. For example, create lua/lsp-local/go.lua:

local config = {
  settings = {
    gopls = {
      staticcheck = true
    }
  }
}

return {
  config = function(_) return config end,
}

⚠️ This will completely overwrite built-in lua/lsp/go.lua.

Structure

  • after/ - Language specific custom settings and plugins
  • config/ - Configuration
    • general.vim - General configuration
    • init.vim - Package-manager initialization
    • plugins.local.yaml - Custom user plugins
    • local.vim - Custom user settings
    • mappings.vim - Key-mappings
    • plugins.yaml - My favorite Plugins!
    • vimrc - Initialization
  • lua/ - Lua plugin configurations
    • lsp/ - LSP configurations
    • lsp-local - Custom user LSP configurations
    • plugins/ - Plugins configurations
    • badge.lua - Badges for status lines
    • user.lua - Custom functions
  • snippets/ - Personal code snippets
  • themes/ - Colorscheme overrides
  • filetype.vim - Custom filetype detection

Plugin Highlights

  • Plugin management with cache and lazy loading for speed
  • Auto-completion with Language-Server Protocol (LSP)
  • Project-aware tabline
  • Extensive syntax highlighting with nvim-treesitter.

Note that 95% of the plugins are lazy-loaded.

Plugins Included

List (🔎 Click to expand/collapse)

Non Lazy-Loaded Plugins

Name Description
Shougo/dein.vim Dark powered Vim/Neovim plugin manager
thinca/vim-localrc Enable configuration file of each directory
rafi/awesome-colorschemes Awesome color-schemes
folke/lsp-colors.nvim LSP diagnostics highlight groups for colorschemes
nvim-lua/plenary.nvim Lua functions library
kyazdani42/nvim-web-devicons Lua fork of vim-devicons
nathom/filetype.nvim A faster version of filetype.vim
christoomey/tmux-navigator Seamless navigation between tmux panes and vim splits
tpope/vim-sleuth Heuristically set buffer indent options
sgur/vim-editorconfig EditorConfig plugin written entirely in Vimscript

Lazy-Loaded Plugins

Commands

Name Description
kyazdani42/nvim-tree.lua File explorer written in Lua
mbbill/undotree Ultimate undo history visualizer
tweekmonster/helpful.vim Display vim version numbers in docs
lambdalisue/suda.vim An alternative sudo.vim for Vim and Neovim
b3nj5m1n/kommentary Commenting plugin, written in Lua
TimUntersberger/neogit Magit clone for Neovim
lambdalisue/gina.vim Asynchronously control git repositories
folke/zen-mode.nvim Distraction-free coding for Neovim
folke/which-key.nvim Create key bindings that stick
tversteeg/registers.nvim Preview the contents of the registers
NTBBloodbath/rest.nvim A fast Neovim http client written in Lua
pechorin/any-jump.vim Jump to any definition and references without overhead
windwp/nvim-spectre Find the enemy and replace them with dark power
kana/vim-niceblock Make blockwise Visual mode more useful
t9md/vim-choosewin Choose window to use, like tmux's 'display-pane'
mzlogin/vim-markdown-toc Generate table of contents for Markdown files
Ron89/thesaurus_query.vim Multi-language thesaurus query and replacement

Interface

Name Description
itchyny/vim-gitbranch Lightweight git branch detection
romainl/vim-cool Simple plugin that makes hlsearch more useful
haya14busa/vim-asterisk Improved * motions
rhysd/accelerated-jk Up/down movement acceleration
haya14busa/vim-edgemotion Jump to the edge of block
t9md/vim-quickhl Highlight words quickly
rafi/vim-sidemenu Small side-menu useful for terminal users
hoob3rt/lualine.nvim statusline plugin written in pure lua
rcarriga/nvim-notify Fancy notification manager for NeoVim
itchyny/cursorword Underlines word under cursor
lewis6991/gitsigns.nvim Git signs written in pure lua
chentau/marks.nvim Interacting with and manipulating marks
nathanaelkane/vim-indent-guides Visually display indent levels in code
kevinhwang91/nvim-bqf Better quickfix window in Neovim
norcalli/nvim-colorizer.lua The fastest Neovim colorizer
rmagatti/goto-preview Preview definitions using floating windows
rhysd/committia.vim Pleasant editing on Git commit messages
itchyny/calendar.vim Calendar application
deris/vim-shot-f Highlight characters to move directly with f/t/F/T
kristijanhusak/orgmode.nvim Orgmode clone written in Lua
vimwiki/vimwiki Personal Wiki for Vim

Completion & Code-Analysis

Name Description
neovim/nvim-lspconfig Quickstart configurations for the Nvim LSP client
williamboman/nvim-lsp-installer Provides the missing :LspInstall for nvim-lspconfig
kosayoda/nvim-lightbulb VSCode 💡 for neovim's built-in LSP
ray-x/lsp_signature.nvim LSP signature hint when you type
folke/lua-dev.nvim Dev setup for Lua
jose-elias-alvarez/null-ls.nvim Inject LSP diagnostics, code actions, and more
folke/todo-comments.nvim Highlight, list and search todo comments in your projects
windwp/nvim-autopairs autopairs for neovim written by lua
hrsh7th/nvim-cmp Completion plugin for neovim written in Lua
hrsh7th/cmp-nvim-lsp nvim-cmp source for neovim builtin LSP client
hrsh7th/cmp-nvim-lua nvim-cmp source for nvim lua
hrsh7th/cmp-buffer nvim-cmp source for buffer words
hrsh7th/cmp-vsnip nvim-cmp source for vim-vsnip
hrsh7th/cmp-path nvim-cmp source for path
hrsh7th/cmp-emoji nvim-cmp source for emoji
andersevenrud/compe-tmux Tmux completion source for nvim-compe/cmp
hrsh7th/vim-vsnip Snippet plugin for vim/nvim that supports LSP/VSCode's snippet format
hrsh7th/vim-vsnip-integ vim-vsnip integrations to other plugins
rafamadriz/friendly-snippets Preconfigured snippets for different languages
folke/trouble.nvim Pretty lists to help you solve all code diagnostics
sindrets/diffview.nvim Tabpage interface for cycling through diffs
nvim-telescope/telescope.nvim Find, Filter, Preview, Pick. All lua, all the time
rmagatti/session-lens Session-switcher extension for rmagatti/auto-session
nvim-telescope/telescope-ui-select.nvim Sets vim.ui.select to telescope
jvgrootveld/telescope-zoxide Telescope extension for Zoxide
simrat39/symbols-outline.nvim Tree like view for symbols using LSP
rmagatti/auto-session Automated session manager for Neovim
sbdchd/neoformat Plugin for formatting code
SmiteshP/nvim-gps Shows context of the current cursor position in file
mattn/emmet-vim Provides support for expanding abbreviations alá emmet

Syntax

Name Description
nvim-treesitter/nvim-treesitter Nvim Treesitter configurations and abstraction layer
nvim-treesitter/nvim-treesitter-textobjects Textobjects using treesitter queries
JoosepAlviste/nvim-ts-context-commentstring Set the commentstring based on the cursor location
windwp/nvim-ts-autotag Use treesitter to auto close and auto rename html tag
monkoose/matchparen.nvim Alternative to matchparen built-in plugin
iloginow/vim-stylus Better vim plugin for stylus
chrisbra/csv.vim Handling column separated data
tpope/vim-git Git runtime files
dag/vim-fish Fish shell edit support
towolf/vim-helm Syntax for Helm templates (yaml + gotmpl + sprig)
mustache/vim-mustache-handlebars Mustache and handlebars syntax
digitaltoad/vim-pug Pug (formerly Jade) syntax and indentation
keith/swift.vim Swift support
lifepillar/pgsql.vim PostgreSQL syntax and indent
vim-jp/syntax-vim-ex Improved Vim syntax highlighting
MTDL9/vim-log-highlighting Syntax highlighting for generic log files
tmux-plugins/vim-tmux Plugin for tmux.conf
reasonml-editor/vim-reason-plus Reason syntax and indent
preservim/vim-markdown Markdown syntax highlighting
pearofducks/ansible-vim Improved YAML support for Ansible
hashivim/vim-terraform Base Terraform integration

Operators & Text Objects

Name Description
machakann/vim-sandwich Search, select, and edit sandwich text objects
mfussenegger/nvim-ts-hint-textobject Region selection with hints on the AST nodes
AndrewRadev/sideways.vim Match function arguments
AndrewRadev/linediff.vim Perform diffs on blocks of code
AndrewRadev/splitjoin.vim Transition code between multi-line and single-line
AndrewRadev/dsf.vim Delete surrounding function call

Custom Key-mappings

Note that,

  • Leader key set as Space
  • Local-Leader key set as ; and used for navigation and search (Telescope and Tree)
  • Disable in normal mode by enabling g:elite_mode in .vault.vim
Key-mappings (🔎 Click to expand/collapse)
Modes: 𝐍=normal 𝐕=visual 𝐒=select 𝐈=insert 𝐂=command

Navigation

Key Mode Action Plugin or Mapping
j / k 𝐍 𝐕 Cursor moves through display-lines g j/k
g+j / k 𝐍 𝐕 𝐒 Jump to edge upward/downward haya14busa/vim-edgemotion
gh / gl 𝐍 𝐕 Easier line-wise movement g ^/$
Space+Space 𝐍 𝐕 Toggle visual-line mode V / Escape
zl / zh 𝐍 Scroll horizontally and vertically wider z4 l/h
Ctrl+j 𝐍 Move to split below christoomey/tmux-navigator
Ctrl+k 𝐍 Move to upper split christoomey/tmux-navigator
Ctrl+h 𝐍 Move to left split christoomey/tmux-navigator
Ctrl+l 𝐍 Move to right split christoomey/tmux-navigator
Return 𝐍 Toggle fold za
Shift+Return 𝐍 Focus the current fold by closing all others zMzvzt
]q or ]q 𝐍 Next/previous on quickfix list :cnext / :cprev
]a or ]a 𝐍 Next/previous on location-list :lnext / :lprev
]w or ]w 𝐍 Next/previous whitespace error plugin/whitespace.vim
]g or ]g 𝐍 Next/previous Git hunk lewis6991/gitsigns.nvim
]d or ]d 𝐍 Next/previous LSP diagnostic lua/plugins/lspconfig.lua
Ctrl+f 𝐂 Move cursor forwards in command Right
Ctrl+b 𝐂 Move cursor backwards in command Left
Ctrl+h 𝐂 Move cursor to the beginning in command Home
Ctrl+l 𝐂 Move cursor to the end in command End

File Operations

Key Mode Action Plugin or Mapping
Space+cd 𝐍 Switch to the directory of opened buffer :lcd %:p:h
gf 𝐍 Open file under the cursor in a vsplit :rightbelow wincmd f
Space+w 𝐍 Write buffer to file :write
Ctrl+s 𝐍 𝐕 𝐂 Write buffer to file :write

Edit

Key Mode Action Plugin or Mapping
Ctrl+y 𝐈 Expand emmet abbreviation mattn/emmet-vim
Q 𝐍 Start/stop macro recording q
gQ 𝐍 Play macro 'q' @q
Shift+Return 𝐈 Start new line from any cursor position <C-o>o
< 𝐕 Indent to left and re-select <gv
> 𝐕 Indent to right and re-select `>gv
Tab 𝐕 Indent to right and re-select `>gv
Shift+Tab 𝐕 Indent to left and re-select <gv
gc 𝐍 𝐕 Comment prefix b3nj5m1n/kommentary
gcc 𝐍 𝐕 Toggle comments b3nj5m1n/kommentary
Space+v 𝐍 𝐕 Toggle single-line comments b3nj5m1n/kommentary
Space+V 𝐍 𝐕 Toggle comment block b3nj5m1n/kommentary
Space+j or k 𝐍 𝐕 Move lines down/up :m
Space+d 𝐍 𝐕 Duplicate line or selection
Space+cn / cN 𝐍 𝐕 Change current word in a repeatable manner
Space+cp 𝐍 Duplicate paragraph yap<S-}>p
Space+cw 𝐍 Remove all spaces at EOL :%s/\s\+$//e
sj / sk 𝐍 Join/split arguments AndrewRadev/splitjoin.vim
dsf / csf 𝐍 Delete/change surrounding function call AndrewRadev/dsf.vim

Search & Replace

Key Mode Action Plugin or Mapping
* / # 𝐍 𝐕 Search selection forward/backward haya14busa/vim-asterisk
g* / g# 𝐍 𝐕 Search whole-word forward/backward haya14busa/vim-asterisk
Backspace 𝐍 Match bracket %
gpp 𝐍 Select last paste
sg 𝐕 Replace within selected area :s/⌴/gc
Ctrl+r 𝐕 Replace selection with step-by-step confirmation :%s/\V/⌴/gc

Clipboard

Key Mode Action Plugin or Mapping
p or P 𝐕 Paste without yank s:visual_paste
Y 𝐍 Yank to the end of line y$
Space+y 𝐍 Copy relative file-path to clipboard
Space+Y 𝐍 Copy absolute file-path to clipboard

Command & History

Key Mode Action Plugin or Mapping
! 𝐍 Shortcut for shell command :!
g! 𝐍 Read vim command into buffer :put=execute('⌴')
Ctrl+n / p 𝐂 Switch history search pairs /
/ 𝐂 Switch history search pairs Ctrl n/p

Editor UI

Key Mode Action Plugin or Mapping
Space+ts 𝐍 Toggle spell-checker :setlocal spell!
Space+tn 𝐍 Toggle line numbers :setlocal nonumber!
Space+tl 𝐍 Toggle hidden characters :setlocal nolist!
Space+th 𝐍 Toggle highlighted search :set hlsearch!
Space+tw 𝐍 Toggle wrap :setlocal wrap!
Space+ti 𝐍 Toggle indentation lines nathanaelkane/vim-indent-guides
Space+tt 𝐍 Show highlight groups for word
g1 𝐍 Go to first tab :tabfirst
g9 𝐍 Go to last tab :tablast
g5 𝐍 Go to previous tab :tabprevious
Ctrl+Tab 𝐍 Go to next tab :tabnext
Ctrl+ShiftTab 𝐍 Go to previous tab :tabprevious
Alt+j 𝐍 Go to next tab :tabnext
Alt+k 𝐍 Go to previous tab :tabprevious
Alt+{ 𝐍 Move tab backward :-tabmove
Alt+} 𝐍 Move tab forward :+tabmove

Custom Tools & Plugins

Key Mode Action Plugin or Mapping
gCtrl+o 𝐍 Navigate to previous file on jumplist s:jump_buffer
gCtrl+i 𝐍 Navigate to next file on jumplist s:jump_buffer
- 𝐍 Choose a window to edit t9md/vim-choosewin
Space+- 𝐍 Switch editing window with selected t9md/vim-choosewin
Space+l 𝐍 Open side-menu helper rafi/vim-sidemenu
Space+o 𝐍 Open structure window simrat39/symbols-outline.nvim
Space+f 𝐍 Show current structure scope SmiteshP/nvim-gps
Space+S 𝐍 𝐕 Source selection y:execute @@
Space+? 𝐍 Open the macOS dictionary on current word :!open dict://
Space+P 𝐍 Use Marked 2 for real-time Markdown preview Marked 2
Space+ml 𝐍 Append modeline to end of buffer config/mappings.vim
Space+mda 𝐕 Sequentially mark region for diff AndrewRadev/linediff.vim
Space+mdf 𝐕 Mark region for diff and compare if more than one AndrewRadev/linediff.vim
Space+mds 𝐍 Shows the comparison for all marked regions AndrewRadev/linediff.vim
Space+mdr 𝐍 Removes the signs denoting the diff regions AndrewRadev/linediff.vim
Space+mt 𝐍 𝐕 Toggle highlighted word t9md/vim-quickhl
Space+z 𝐍 Toggle distraction-free writing folke/zen-mode.nvim
Space+gu 𝐍 Open undo-tree mbbill/undotree
Space+K 𝐍 Thesaurus Ron89/thesaurus_query.vim
Space+W 𝐍 VimWiki vimwiki/vimwiki

Window Management

Key Mode Action Plugin or Mapping
q 𝐍 Quit window (and Vim, if last window) :quit
Ctrl+x 𝐍 Rotate window placement C-w x
sv 𝐍 Horizontal split :split
sg 𝐍 Vertical split :vsplit
st 𝐍 Open new tab :tabnew
so 𝐍 Close other windows :only
sb 𝐍 Previous buffer :b#
sc 𝐍 Close current buffer :close
sd 𝐍 Delete buffer :bdelete
sq 𝐍 Quit window :quit
sx 𝐍 Delete buffer, leave blank window :enew │ bdelete
sz 𝐍 Toggle window zoom :vertical resize │ resize
ssv 𝐍 Split with previous buffer :split │ wincmd p │ e#
ssg 𝐍 Vertical split with previous buffer :vsplit │ wincmd p │ e#
sh 𝐍 Toggle colorscheme background=dark/light :set background

Plugin: Sandwich

Key Mode Action
ds 𝐍 Delete around with query
dss 𝐍 Delete around automatically
cs 𝐍 Change around with query
css 𝐍 Change around automatically
sa 𝐍 𝐕 𝐎 Trigger add operator
sd 𝐍 𝐕 Trigger delete operator
sdb 𝐍 Delete around automatically
sr 𝐍 𝐕 Trigger replace operator
srb 𝐍 Replace around automatically
ir 𝐕 𝐎 Inner automatically
ab 𝐕 𝐎 Around automatically

Plugin: Gitsigns

Key Mode Action
]g or ]g 𝐍 Next/previous Git hunk
gs 𝐍 Preview hunk
Space+hp 𝐍 Preview hunk
Space+hb 𝐍 Blame line
Space+hs 𝐍 𝐕 Stage hunk
Space+hu 𝐍 Undo stage hunk
Space+hr 𝐍 𝐕 Reset hunk
Space+hR 𝐍 Reset buffer
Space+hl 𝐍 Publish hunks to location-list

Plugin: Gina

Key Mode Action
Space+ga 𝐍 Git add current file
Space+gd 𝐍 Git diff
Space+gc 𝐍 Git commit
Space+gb 𝐍 Git blame
Space+gs 𝐍 Git status -s
Space+gl 𝐍 Git log --graph --all
Space+gF 𝐍 Git fetch
Space+gp 𝐍 Git push
Space+go 𝐍 𝐕 Open SCM detailed URL in browser

Plugin: Telescope

Key Mode Action
;r 𝐍 Results of the previous picker
;R 𝐍 List of the previous pickers
;f 𝐍 File search
;g 𝐍 Grep search
;b 𝐍 Buffers
;x 𝐍 Old files
;v 𝐍 𝐕 Yank history
;m 𝐍 Marks
;n 𝐍 Dein plugin list
;j 𝐍 Jump points
;u 𝐍 Spelling suggestions
;o 𝐍 Vim options
;s 𝐍 Sessions
;t 𝐍 LSP workspace symbols
;h 𝐍 Highlights
;w 𝐍 Memo list
;z 𝐍 Zoxide directories
;; 𝐍 Command history
;/ 𝐍 Search history
Space+gt 𝐍 Find symbols matching word under cursor
Space+gf 𝐍 Find files matching word under cursor
Space+gg 𝐍 𝐕 Grep word under cursor
Within Telescope window
? 𝐍 Keymaps help screen
jj or Escape 𝐈 Leave Insert mode
i 𝐍 Enter Insert mode (filter input)
q or Escape 𝐍 Exit denite window
Tab or Shift+Tab 𝐍 𝐈 Next/previous candidate
Ctrl d/u 𝐍 𝐈 Scroll down/upwards
Ctrl f/b 𝐍 𝐈 Scroll preview down/upwards
J or K 𝐍 Select candidates up/downwards
st 𝐍 Open in a new tab
sg 𝐍 Open in a vertical split
sv 𝐍 Open in a split
w 𝐍 Smart send to quickfix list
e 𝐍 Send to quickfix list
dd 𝐍 Delete entry (buffer list)

Plugin: Nvim-Tree

Key Mode Action
;e 𝐍 Open file-explorer (toggle)
;a 𝐍 Focus current file in file-explorer
Within Nvim-Tree window
j or k 𝐍 Move up and down the tree
J or K or Space 𝐍 Select entries up/downwards
l or Return 𝐍 Toggle collapse/expand directory or open file
h 𝐍 Collapse directory tree
Ctrl+Return 𝐍 Choose window to edit entry
a 𝐍 Select entry action
p 𝐍 Preview entry
Ctrl+p 𝐍 Toggle auto-preview
Ctrl+f or b 𝐍 Preview scroll up/down
gr 𝐍 Grep in current position
gf 𝐍 Find files in current position
! 𝐍 Toggle hidden files
^ 𝐍 Change into project root directory
Backspace 𝐍 Change into parent directory
o 𝐍 Open bookmarks
B 𝐍 Save location as bookmark
st 𝐍 Open file in new tab
sv 𝐍 Open file in a horizontal split
sg 𝐍 Open file in a vertical split
N 𝐍 Create new directories and/or files
Ctrl+n 𝐍 Create new directory
c / m 𝐍 Copy/move
C / M / P 𝐍 Clipboard copy/move/paste
R 𝐍 Rename file or directory
D 𝐍 Trash selected files and directories
fi / fe 𝐍 Include/exclude
yy 𝐍 Yank path to clipboard
w 𝐍 Toggle window size
x 𝐍 Execute associated system application

Plugin: LSP

Key Mode Action
Tab / Shift-Tab 𝐈 Navigate completion-menu
Tab / Shift-Tab 𝐈 𝐒 Navigate snippet placeholders
Ctrl+Space 𝐈 Open completion menu
Enter 𝐈 Select completion or expand snippet
Ctrl+p/n 𝐈 Movement in completion pop-up
Ctrl+b/f 𝐈 Scroll documentation
Ctrl+y 𝐈 Expand Emmet sequence
Ctrl+e 𝐈 Abort selection and close pop-up
Ctrl+l 𝐈 Expand snippet at cursor

Plugin: Spectre

Key Mode Action
Space+so 𝐍 Open spectre window
Space+sw 𝐍 Open spectre window with current word
Space+s 𝐕 Open spectre window with visual selection
Space+sp 𝐍 Search in current file

Plugin: Any-Jump

Key Mode Action
Space+ii 𝐍 Jump to definition under cursor
Space+ii 𝐕 Jump to selected text in visual mode
Space+ib 𝐍 Open previous opened file (after jump)
Space+il 𝐍 Open last closed search window again

Plugin: Marks

Key Mode Action
m, 𝐍 Set the next available alphabetical (lowercase) mark
m; 𝐍 Toggle the next available mark at the current line
m a-z 𝐍 Set mark
dm a-z 𝐍 Remove mark
dm- 𝐍 Delete all marks on the current line
dm 𝐍 Delete all marks in the current buffer
m] 𝐍 Move to next mark
m[ 𝐍 Move to previous mark
m: 𝐍 Preview mark, prompts you for a specific mark.
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,049,307
Python (796,774
Php (284,659
Html (237,779
Golang (156,215
Css (140,420
Plugin (113,976
Vim (18,647
Vim Script (11,477
Dotfiles (10,714
Linter (9,521
Ide (8,888
Neovim (3,947
Vimrc (2,253
Nvim (1,440
Neo (1,415
Lsp (964
Language Server Protocol (330
Nvim Lua (59
Nvim Lsp (14
Nvim Telescope (11