Vibeleaderboard
Index / tool
Visit github.com
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 buffersVisual indicators in the sign column

  • Provide quick visual reference for marks

    Active Neovim buffer with marksReal-time visual display of mark positions

  • Show mark locations without manual lookup

    Buffer containing named marksSign column indicators for each mark

  • Update mark display automatically

    Changes to marks in current sessionUpdated sign column visualization

Tags

neovimvimpluginmarkslua

Tech Stack

LuaVim Script

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.