Lean mean Neovim machine, 30-45ms startup time.
Works best with Neovim 0.5.x 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)
- Fast startup time
- Robust, yet light-weight
- Lazy-load 95% of plugins with Shougo/dein.vim
- LSP installers (
:LspInstall <server>
) - Custom side-menu (try it! Space+l)
- Custom context-menu (try it! ;+c)
- Auto-complete extensive setup with nvim-lspconfig and nvim-cmp (try Tab in insert-mode)
- telescope.nvim centric work-flow with lists (try ;+fβ¦)
- Structure view with simrat39/symbols-outline.nvim
- Git features using lambdalisue/gina.vim and lewis6991/gitsigns.nvim
- Auto-save and restore sessions with rmagatti/auto-session.
- Light-weight but informative status & tab lines
- Easy customizable theme
- Premium color-schemes
- Neovim
(
brew install neovim
) β₯ v0.5.0 - Plugins are parsed from YAML and cached. Ensure one of these tools is installed:
1. Let's clone this repo! Clone to ~/.config/nvim
mkdir ~/.config
git clone git://github.com/hzcheney/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! π
To leverage LSP auto-completions and other functionalities, once you open a
file in Neovim, run :LspInstall <server>
to use
williamboman/nvim-lsp-installer installation feature.
Use Tab to list available servers.
Here are some useful LSP server installations:
:LspInstall html cssls jsonls yamlls
:LspInstall gopls
:LspInstall pylsp
:LspInstall bashls vimls sumneko_lua
:LspInstall diagnosticls
- and moreβ¦
See lua/plugins/lspconfig.lua and lua/lsp/* for built-in
mapping and configuration for several language-servers. You'll need utilities
like npm
and curl
to install some extensions. For more information, see:
- Plugin used for installation: williamboman/nvim-lsp-installer and supported language-servers.
- Plugin used for configuration: neovim/nvim-lspconfig
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()
).
- Pragmata Pro (β¬19 β β¬1,990): My preferred font
- Any of the Nerd 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
- 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
- ripgrep: BurntSushi/ripgrep
(macOS:
brew install rg
) - Jump around with zoxide: ajeetdsouza/zoxide
(macOS:
brew install zoxide
) - Fuzzy file finders:
fzf, or
fzy,
(macOS:
brew install fzf
)
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,
}
lua/lsp/go.lua
.
- after/ - Language specific custom settings
- autoload/ - Action-menu and badge functions
- config/ - Configuration
- plugins/ - Plugin configurations
- 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
- plugin/ - Custom written plugins
- snippets/ - Personal code snippets
- themes/ - Colorscheme overrides
- filetype.vim - Custom filetype detection
- Plugin management with cache and lazy loading for speed
- Auto-completion with Language-Server Protocol (LSP)
- Project-aware tabline
- Fern as file-manager + Git status icons
- Extensive syntax highlighting with nvim-treesitter.
Note that 95% of the plugins are lazy-loaded.
List (π Click to expand/collapse)
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 |
christoomey/tmux-navigator | Seamless navigation between tmux panes and vim splits |
tpope/vim-sleuth | Heuristically set buffer indent options |
folke/lsp-colors.nvim | LSP diagnostics highlight groups for colorschemes |
nvim-lua/plenary.nvim | Lua functions library |
nvim-lua/popup.nvim | An implementation of the Popup API from vim in Neovim |
kyazdani42/nvim-web-devicons | Lua fork of vim-devicons |
sgur/vim-editorconfig | EditorConfig plugin written entirely in Vimscript |
Name | Description |
---|---|
b3nj5m1n/kommentary | Commenting plugin, 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 |
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 |
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 |
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 |
rcarriga/nvim-notify | Fancy notification manager for NeoVim |
rafi/vim-sidemenu | Small side-menu useful for terminal users |
hoob3rt/lualine.nvim | statusline plugin written in pure lua |
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 |
Name | Description |
---|---|
williamboman/nvim-lsp-installer | Provides the missing :LspInstall for nvim-lspconfig |
kosayoda/nvim-lightbulb | VSCode π‘ for neovim's built-in LSP |
neovim/nvim-lspconfig | Quickstart configurations for the Nvim LSP client |
ray-x/lsp_signature.nvim | LSP signature hint when you type |
folke/lua-dev.nvim | Dev setup for Lua |
folke/todo-comments.nvim | Highlight, list and search todo comments in your projects |
hrsh7th/nvim-cmp | Completion plugin for neovim written in Lua |
andersevenrud/compe-tmux | Tmux completion source for nvim-compe/cmp |
windwp/nvim-autopairs | autopairs for neovim written by lua |
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 easily 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 |
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 |
mattn/emmet-vim | Provides support for expanding abbreviations alΓ‘ emmet |
Name | Description |
---|---|
lambdalisue/fern.vim | General purpose asynchronous tree viewer in pure vim |
lambdalisue/nerdfont.vim | Fundemental plugin to handle Nerd Fonts |
lambdalisue/fern-git-status.vim | Fern git status badge integration |
lambdalisue/fern-mapping-git.vim | Fern git related mappings |
lambdalisue/fern-bookmark.vim | Fern bookmark plugin |
yuki-yano/fern-preview.vim | File preview window to fern.vim |
lambdalisue/fern-renderer-nerdfont.vim | Fern nerdfont integration |
lambdalisue/glyph-palette.vim | Universal nerdfont palette |
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 |
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) |
mboughaba/i3config.vim | i3 window manager config syntax |
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 |
chr4/nginx.vim | Improved nginx 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 |
plasticboy/vim-markdown | Markdown syntax highlighting |
pearofducks/ansible-vim | Improved YAML support for Ansible |
hashivim/vim-terraform | Base Terraform integration |
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 |
Note that,
- Leader key set as Space
- Local-Leader key set as ; and used for navigation and search (Telescope and Fern)
- Disable β β β β in normal mode by enabling
g:elite_mode
in.vault.vim
Key-mappings (π Click to expand/collapse)
Modes: π=normal π=visual π=select π=insert π=commandKey | 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 |
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 |
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 |
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 |
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 |
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 |
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 |
Key | Mode | Action | Plugin or Mapping |
---|---|---|---|
;+c | π | Open context-menu | plugin/actionmenu.vim |
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+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 |
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 β¦ |
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 |
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 |
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) |
Key | Mode | Action |
---|---|---|
;e | π | Open file-explorer (toggle) |
;a | π | Focus current file in file-explorer |
Within Fern 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 |
Key | Mode | Action |
---|---|---|
Tab / Shift-Tab | π | Navigate completion-menu |
Enter | π | Select completion or expand snippet |
Ctrl+j/k/d/u | π | Movement in completion pop-up |
Ctrl+Return | π | Expand Emmet sequence |
Ctrl+Space | π | Refresh and show candidates |
Ctrl+y | π | Close pop-up |
Ctrl+e | π | Cancel selection and close pop-up |
Ctrl+l | π | Expand snippet at cursor |
Tab / Shift-Tab | π π | Navigate snippet placeholders |
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 |
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. |