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

Lunarvim

Updated: 11 March 2024

Notes

  • Configuration ~/.config/lvim/config.lua
  • On my system, plugins directories are in ~/.local/share/lunarvim/site/pack/lazy/opt
  • To turn off ShellCheck warnings in .env files, place at the top # shellcheck disable=SC2034

Keybindings

Toggle spelling on/off with a function:

lvim.keys.normal_mode["<leader>sp"] = function()
    if (true == vim.opt.spell:get()) then
        vim.opt.spell = false
        print("spell = false")
    else
        vim.opt.spell = true
        vim.opt.spelllang = "en_gb"
        print("spell = true")
    end
end

Resize splits with number keys:

lvim.keys.normal_mode["<A-8>"] = ":resize -1<CR>"
lvim.keys.normal_mode["<A-9>"] = ":resize +1<CR>"
lvim.keys.normal_mode["<A-7>"] = ":vertical resize -1<CR>"
lvim.keys.normal_mode["<A-0>"] = ":vertical resize +1<CR>"

Quick reference

Toggle floating terminal <C-\>
Show definition K
Clear cache whilst running :LvimCacheReset
Clear cache at startup lvim +LvimCacheReset

Neovim app image

Updated: 21 March 2024

How to install Neovim, from the App Image, on Ubuntu.

  1. Pick a stable release https://github.com/neovim/neovim/releases/tag/stable
  2. Download the nvim.appimage asset.
  3. Run chmod u+x nvim.appimage to make the nvim.appimage file executable.
  4. Start the neovim editor with ./nvim.appimage.
  5. If your system indicates that FUSE is missing, it can be installed (for Ubuntu >= 22.04) with sudo apt install libfuse2.
  6. Rename the executable and put it in a location on your PATH e.g. mv nvim.appimage /home/chris/.local/bin/nvim or sudo mv nvim.appimage /usr/bin/nvim
  7. Now start the neovim editor with nvim

Vim view

Updated: 01 July 2023

Write a Vim script that restores the contents of the current window

:mkview

Directory which stores files for :mkview

:set viewdir?

Load the view for the current file

:loadview