
Mark Signs.nvim
https://github.com/insanum/mark-signs.nvim- Category
- Developer Tools
- Rank
- No. 1849Tools index
Previous survey · No. 1857 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- insanum
- GitHub
- 5 stars
- Date
About
Neovim plugin that displays marks in the sign column for quick visual reference.
What it does
Mark Signs.nvim turns Neovim’s existing letter and selected built-in marks into persistent gutter labels. It periodically reads mark positions, places or removes signs as marks move, and supplies keyboard mappings for setting and deleting letter marks.
Why it's ranked here
This is a focused, understandable choice for users who want visible marks without adopting a broader marks system. Configuration covers refresh timing, sign priority, built-in mark selection, mappings, and highlights. The narrow scope keeps the mental model small, though periodic polling creates an explicit responsiveness versus performance compromise.
What's good
Lowercase, uppercase, and built-in marks can receive separate sign priorities, helping them coexist with other gutter indicators. Mappings can be replaced or disabled, and Vimscript plug mappings support configuration outside Lua. Signs are cached by name, while buffer-specific state tracks moved and deleted marks.
Tradeoffs
The plugin recomputes positions on a repeating timer, so faster visual updates may cost performance and slower settings may visibly lag. Built-in marks are hidden unless explicitly selected. Setting and deleting through its mappings accepts letters only. It requires Neovim and does not work with Vim.
How to use it well
Use it when native marks already fit your navigation habits but their invisible state makes them easy to forget. Tune refresh timing conservatively, choose priorities around existing gutter signs, and enable only useful built-in marks. Choose a richer marks plugin if you need broader mark management rather than focused display and basic editing.
Technical notes+
lua/mark-signs/init.lua holds the implementation. setup() creates per-buffer mark state, installs BufEnter and BufDelete autocommands, configures mappings and priorities, then starts a repeating vim.uv timer. do_refresh() reads global, buffer-local, and configured built-in marks through Neovim APIs, while add_sign() defines cached signs and places them in the MarkSigns group. plugin/mark-signs.vim guards loading, links highlight groups, and exposes two <Plug> mappings. doc/mark-signs-nvim.txt documents Neovim 0.5 support, options, mappings, highlights, and licensing. One documentation detail differs from runtime behavior: the help text says MarkSignsNumHL defaults to LineNr, while the plugin links it to CursorLineNr.
Observed
- License
- MIT License
- Primary language
- Lua, with a small Vimscript plugin loader
- Install surface
- Neovim plugin manager; lazy.nvim configuration is documented
- Interface
- Neovim plugin with Lua setup and Vimscript plug mappings
- Platform support
- Neovim 0.5 or higher; explicitly does not work with Vim
- Documentation
- Includes native Neovim help covering setup, mappings, highlights, and license
Read from README.md, LICENSE, plugin/mark-signs.vim, doc/mark-signs-nvim.txt, lua/mark-signs/init.lua.
What it can do
Display marks in the sign column
Vim marks set in buffers → Visual indicators in the sign column
Provide quick visual reference for marks
Active Neovim buffer with marks → Real-time visual display of mark positions
Show mark locations without manual lookup
Buffer containing named marks → Sign column indicators for each mark
Update mark display automatically
Changes to marks in current session → Updated sign column visualization
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.