It’s broader than a Neovim specific mapping, I’ve changed the system keyboard mapping of <Caps Lock>
to <Esc>
and <F9>
to <Caps Lock>
.
I think mapping <Caps Lock>
to <Esc>
isn’t uncommon for Neovim users. But I like having <Caps Lock>
available for non Neovim purposes.
Here’s what I do. Any search key will turn hlsearch on and <Esc> will turn it off.
vim.on_key(function(char) if vim.fn.mode() == "n" then local new_hlsearch = vim.tbl_contains({ "<CR>", "n", "N", "*", "#", "?", "/" }, vim.fn.keytrans(char)) local esc = vim.tbl_contains({ "<Esc>" }, vim.fn.keytrans(char)) if new_hlsearch then vim.opt.hlsearch = true elseif esc then vim.opt.hlsearch = false end end end, vim.api.nvim_create_namespace("auto_hlsearch"))