A lightweight Neovim plugin for enhanced Markdown editing with smart list continuation and indentation management. This plugin aims to make writing Markdown documents in Neovim more efficient and enjoyable.
- Smart list continuation for various types of Markdown lists:
- Bullet points (
-
,+
,*
)
- Bullet points (
dot.list.mov
- Numbered lists (auto-incrementing)
numbered.mov
- Checkboxes (
- [ ]
,+ [ ]
,* [ ]
)
checkbox.mov
- Callouts (
>
)
callout.mov
- Intelligent indentation handling:
- Tab and Shift-Tab support for list indentation
- Preserves existing indentation levels
- Works with all list types
indenting.mov
-
Auto-termination of empty lists:
- Automatically breaks list sequence when pressing Enter on an empty list item
- Removes empty markers to maintain clean document structure
-
Markdown-specific functionality:
- All features are scoped to Markdown files only
- Preserves default behavior for non-list lines
Using lazy.nvim:
{
'username/keepin-md.nvim',
config = function()
require('keepin-md').setup()
end
}
AI said this can get some configuration options, but it was not. I tested. Just setup, and checkbox toggle key set as your own.
vim.keymap.set('n', '<leader>ic', require('keepin-md').checktoggle)
While keepin-md.nvim
shares some functionality with the established bullets.vim, and that has more fluent features, it takes a different approach:
-
Modern Neovim Architecture:
- Built specifically for Neovim using Lua
- More efficient implementation using Neovim's native API
- Better integration with Neovim's ecosystem
-
Focus on Markdown:
- Specialized for Markdown syntax
- Support for Markdown-specific features like callouts
- Cleaner implementation for Markdown use cases
-
Simplified Design:
- Focuses on core functionality without feature bloat
- More maintainable codebase
Feature | keepin-md.nvim | bullets.vim |
---|---|---|
Basic list continuation | ✓ | ✓ |
Checkbox support | ✓ | ✓ |
Bullet variations support | ✓ | ✓ |
Numbered lists | ✓ | ✓ |
Indentation in insert mode | ✓ | ✓ |
Empty list termination | ✓ | ✓ |
Markdown callouts | ✓ | ✗ |
Checkbox toggle keymap support | ✓ | ✗ |
Alphabetic lists | ✗ | ✓ |
Roman numerals | ✗ | ✓ |
Nested numerical bullets | ✗ | ✓ |
This plugin was developed with assistance from Claude AI (Anthropic). The implementation draws inspiration from the Markdown editing ecosystem while providing a modern, Neovim-native solution.
MIT
Contributions are welcome! Please feel free to submit a Pull Request. I will not be accepting any feature requests or bug reports at this time, though I don't know any programming knowledge.