mini.cursorword documentation
Generated from the main
branch of ‘mini.nvim’
mini.cursorword Autohighlight word under cursor
MIT License Copyright (c) 2021 Evgeni Chasnovski
Module
Features:
Autohighlight word under cursor with customizable delay.
Current word under cursor can be highlighted differently.
Highlighting is triggered only if current cursor character is a [:keyword:].
Highlighting stops in insert and terminal modes.
“Word under cursor” is meant as in Vim’s <cword>: something user would get as ‘iw’ text object.
Setup
This module needs a setup with require('mini.cursorword').setup({})
(replace {}
with your config
table). It will create global Lua table MiniCursorword
which you can use for scripting or manually (with :lua MiniCursorword.*
).
See MiniCursorword.config for config
structure and default values.
You can override runtime config settings locally to buffer inside vim.b.minicursorword_config
which should have same structure as MiniCursorword.config
. See mini.nvim-buffer-local-config for more details.
Highlight groups
MiniCursorword
- highlight group of a non-current cursor word. Default: plain underline.MiniCursorwordCurrent
- highlight group of a current word under cursor. Default: links toMiniCursorword
(so:hi clear MiniCursorwordCurrent
will lead to showingMiniCursorword
highlight group). Note: To not highlight it, use the following Lua code:vim.api.nvim_set_hl(0, 'MiniCursorwordCurrent', {})
To change any highlight group, set it directly with nvim_set_hl().
Disabling
To disable core functionality, set vim.g.minicursorword_disable
(globally) or vim.b.minicursorword_disable
(for a buffer) to true
. Considering high number of different scenarios and customization intentions, writing exact rules for disabling module’s functionality is left to user. See mini.nvim-disabling-recipes for common recipes. Note: after disabling there might be highlighting left; it will be removed after next highlighting update.
Module-specific disabling:
Don’t show highlighting if cursor is on the word that is in a blocklist of current filetype. In this example, blocklist for “lua” is “local” and “require” words, for “javascript” - “import”:
_G.cursorword_blocklist = function() local curword = vim.fn.expand('<cword>') local filetype = vim.bo.filetype -- Add any disabling global or filetype-specific logic here local blocklist = {} if filetype == 'lua' then blocklist = { 'local', 'require' } elseif filetype == 'javascript' then blocklist = { 'import' } end vim.b.minicursorword_disable = vim.tbl_contains(blocklist, curword) end -- Make sure to add this autocommand *before* calling module's `setup()`. vim.cmd('au CursorMoved * lua _G.cursorword_blocklist()')
setup()
MiniCursorword.setup
({config})
Module setup
Parameters
{config} (table|nil)
Module config table. See MiniCursorword.config.
Usage
require('mini.cursorword').setup() -- use default config
-- OR
require('mini.cursorword').setup({}) -- replace {} with your config table
config
MiniCursorword.config
Defaults
MiniCursorword.config = {
-- Delay (in ms) between when cursor moved and when highlighting appeared
delay = 100,
}