Vim search

Updated: 30 June 2024

Magic

\v characters which follow, except a-zA-Z0-9_, have special meaning.
\V characters which follow have their literal meaning and must be preceded by \ to activate their special meaning.

Neovim kickstart.nvim

Updated: 10 May 2024

https://github.com/nvim-lua/kickstart.nvim

LSP key maps

-- Jump to the definition of the word under your cursor.
--  This is where a variable was first declared, or where a function is defined, etc.
--  To jump back, press .
map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')

-- Find references for the word under your cursor.
map('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')

-- Jump to the implementation of the word under your cursor.
--  Useful when your language has ways of declaring types without an actual implementation.
map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')

-- Jump to the type of the word under your cursor.
--  Useful when you're not sure what type a variable is and you want to see
--  the definition of its *type*, not where it was *defined*.
map('D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')

-- Fuzzy find all the symbols in your current document.
--  Symbols are things like variables, functions, types, etc.
map('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')

-- Fuzzy find all the symbols in your current workspace.
--  Similar to document symbols, except searches over your entire project.
map('ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')

-- Rename the variable under your cursor.
--  Most Language Servers support renaming across files, etc.
map('rn', vim.lsp.buf.rename, '[R]e[n]ame')

-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map('ca', vim.lsp.buf.code_action, '[C]ode [A]ction')

-- Opens a popup that displays documentation about the word under your cursor
--  See `:help K` for why this keymap.
map('K', vim.lsp.buf.hover, 'Hover Documentation')

-- WARN: This is not Goto Definition, this is Goto Declaration.
--  For example, in C this would take you to the header.
map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')

Neovim auto commands

Updated: 25 March 2024

Flash yanked text

autocmd("TextYankPost", {
    pattern = "*",
    desc = "Highlight text on yank.",
    callback = function ()
        vim.highlight.on_yank { higroup = "Search", timeout = 150 }
    end,
})

nvim-tree.lua

Updated: 23 March 2024

View default key mappings

:help nvim-tree-mappings-default
a Create a new file.
d Delete file.
<C-r> Rename: Omit Filename
e Rename: Basename
r Rename
W Collapse all
E Expand all
R Refresh
BS Close a directory, whilst inside of it.
I Toggle git ignored files.
H Toggle dot files.

Vim diff

Updated: 20 October 2023

Start vim with the -d option

vim -d feedback-form-a.xml feedback-form-b.xml

Move forwards and backwards through each difference with ]c and [c.

Neovim

Updated: 08 April 2024

Light themes

Some popular themes with a light variant.

GitHub stars Feb 24 Repository
4.8K https://github.com/folke/tokyonight.nvim
3.3K https://github.com/rebelot/kanagawa.nvim
4.3K https://github.com/catppuccin/nvim
582 https://github.com/Mofiqul/vscode.nvim
1.9K https://github.com/projekt0n/github-nvim-theme

Error reading ShaDa

Resolution of Error while reading ShaDa file: there is an item at position …

Find all ShaDa related directories and files

find ~ -iname '*shada*'

Example list of folders returned by the find command above

/home/chris/.local/state/lvim/shada/
/home/chris/.local/state/nvim/shada/
/home/chris/.local/share/nvim/shada/
/home/chris/.cache/lvim/

Delete all shada files in these directories.

rm -rf ~/.local/state/lvim/shada
rm -rf ~/.local/state/nvim/shada
rm -rf ~/.local/share/nvim/shada
rm -rf ~/.cache/lvim

Swap files

Delete all swap files

rm -rf ~/.local/state/nvim/swap/*

Start cli arguments

Mimics a fresh install of Nvim

nvim --clean