Mkdx
A vim plugin that adds some nice extra's for working with markdown documents
Install / Use
/learn @SidOfc/MkdxREADME
mkdx.vim

888b d888 888 d8P 8888888b. Y88b d88P 888 888 8888888 888b d888
8888b d8888 888 d8P 888 "Y88b Y88b d88P 888 888 888 8888b d8888
88888b.d88888 888 d8P 888 888 Y88o88P 888 888 888 88888b.d88888
888Y88888P888 888d88K 888 888 Y888P Y88b d88P 888 888Y88888P888
888 Y888P 888 8888888b 888 888 d888b Y88b d88P 888 888 Y888P 888
888 Y8P 888 888 Y88b 888 888 d88888b Y88o88P 888 888 Y8P 888
888 " 888 888 Y88b 888 .d88P d88P Y88b d8b Y888P 888 888 " 888
888 888 888 Y88b 8888888P" d88P Y88b Y8P Y8P 8888888 888 888
mkdx.vim is a markdown plugin that aims to reduce the time you spend formatting your
markdown documents. It does this by adding some configurable mappings for files with a
markdown filetype. Functions are included to handle lists, checkboxes (even lists of checkboxes!), fenced code blocks,
shortcuts, headers and links. In addition to that, this plugin provides a mapping to convert a selection
of CSV data to a markdown table. And there's a lot more :D
Visit :h mkdx or :h mkdx-helptags for more information.
A copy can be found on vim.org.
This plugin is also compatible with repeat.vim by Tim Pope.
Every normal mode mapping can be repeated with the . command. Below you will find configurable
settings and examples with default mappings.
Honorable mentions
Before we dive in I'd like to give a special thanks to the following contributors for posting issues and PRs:
- @Ginner
- Fixing a confusing typo in the README
- idea to conceal markdown links (inspired by vim-pandoc-syntax functionality)
- @victorkristof
- idea to make text wrap mappings "toggleable"
- idea to allow text wrap mappings to be preceded with a count
- idea to enhance <kbd>g</kbd><kbd>f</kbd> and <kbd>g</kbd><kbd>x</kbd>
- @samarulmeu
- idea to mark every line with a quote mark
- idea to allow middle-of-list-item <kbd>enter</kbd> to create a new list item
- discovering an edge case when wrapping near end of line would not work correctly
- discovering a bug with double insertion of quote marks
- finding duplicate helptag
- his critical thinking on enhancing <kbd>g</kbd><kbd>f</kbd> and <kbd>g</kbd><kbd>x</kbd>
- @yous
- discovering a bug when using unicode characters in list items
- @marcdeop (Erasys)
- discovering and fixing a bug when using
&swwith a value of0
- discovering and fixing a bug when using
- @totpet
- idea to compress GIFs to greatly reduce repository size
- idea for <strike>strikethrough</strike> highlighting
- Allowing header titles to contain non-ascii characters for various checks and TOC generation
- @toffalori
- discovering an indent bug in Vim due to
autoindentdifferent default value
- discovering an indent bug in Vim due to
- @paxtemper
- idea for list / checklist / checkbox toggles and checkbox highlight states
- discovering two bugs
Thank you for making this plugin better!
Table of Contents
<details> <summary>Click to expand Table of Contents</summary> <ul> <li><a href="#mkdxvim--">mkdx.vim</a></li> <li><a href="#honorable-mentions">Honorable mentions</a></li> <li><a href="#table-of-contents">Table of Contents</a></li> <li><a href="#install">Install</a></li> <li><a href="#quick-start">Quick start</a></li> <li><a href="#examples">Examples</a><details><summary>show 24 items</summary><ul> <li><a href="#folds">Folds</a></li> <li><a href="#insert-mode-fragment-completion">Insert mode fragment completion</a></li> <li><a href="#dead-link-detection">Dead link detection</a></li> <li><a href="#insert-fenced-code-block">Insert fenced code block</a></li> <li><a href="#insert-kbdkbd-shortcut">Insert <code><kbd></kbd></code> shortcut</a></li> <li><a href="#inserting-list-items">Inserting list items</a></li> <li><a href="#indenting--unindenting-numbered-list-items">Indenting / unindenting numbered list items</a></li> <li><a href="#toggling-lines-from--to-task-items">Toggling lines from / to task items</a></li> <li><a href="#toggling-lines-from--to-list-items">Toggling lines from / to list items</a></li> <li><a href="#toggling-lines-from--to-checklist-items">Toggling lines from / to checklist items</a></li> <li><a href="#completing-checkboxes--checklists">Completing Checkboxes / Checklists</a></li> <li><a href="#toggling-and-promoting--demoting-headers">Toggling and promoting / demoting Headers</a></li> <li><a href="#toggling-kbd--shortcuts">Toggling <kbd /> shortcuts</a></li> <li><a href="#toggling-quotes">Toggling Quotes</a></li> <li><a href="#toggle-links">Toggle links</a></li> <li><a href="#toggle-as-bold--italic--inline-code--strikethrough">Toggle as bold / italic / inline-code / strikethrough</a></li> <li><a href="#convert-csv-to-table-and-back">Convert CSV to table (and back)</a></li> <li><a href="#jump-to-header">Jump to header</a></li> <li><a href="#jump-to-next--previous-header">Jump to next / previous header</a></li> <li><a href="#generate-or-update-toc">Generate or update TOC</a></li> <li><a href="#generate-or-update-toc-as-details">Generate or update TOC as <code><details></code></a></li> <li><a href="#open-toc-in-quickfix-window">Open TOC in quickfix window</a></li> <li><a href="#open-toc-using-fzf-instead-of-quickfix-window">Open TOC using fzf instead of quickfix window</a></li> <li><a href="#using-the-menu">Using the menu</a></li> </ul></details></li> <li><a href="#gmkdxsettings"><code>g:mkdx#settings</code></a><details><summary>show 54 items</summary><ul> <li><a href="#gmkdxsettingsinsert_indent_mappings"><code>g:mkdx#settings.insert_indent_mappings</code></a></li> <li><a href="#gmkdxsettingsgf_on_steroids"><code>g:mkdx#settings.gf_on_steroids</code></a></li> <li><a href="#gmkdxsettingslinksexternalenable"><code>g:mkdx#settings.links.external.enable</code></a></li> <li><a href="#gmkdxsettingslinksexternaltimeout"><code>g:mkdx#settings.links.external.timeout</code></a></li> <li><a href="#gmkdxsettingslinksexternalhost"><code>g:mkdx#settings.links.external.host</code></a></li> <li><a href="#gmkdxsettingslinksexternalrelative"><code>g:mkdx#settings.links.external.relative</code></a></li> <li><a href="#gmkdxsettingslinksexternaluser_agent"><code>g:mkdx#settings.links.external.user_agent</code></a></li> <li><a href="#gmkdxsettingslinksconceal"><code>g:mkdx#settings.links.conceal</code></a></li> <li><a href="#gmkdxsettingslinksfragmentjumplist"><code>g:mkdx#settings.links.fragment.jumplist</code></a></li> <li><a href="#gmkdxsettingslinksfragmentcomplete"><code>g:mkdx#settings.links.fragment.complete</code></a></li> <li><a href="#gmkdxsettingslinksfragmentpumheight"><code>g:mkdx#settings.links.fragment.pumheight</code></a></li> <li><a href="#gmkdxsettingslinksfragmentcompleteopt"><code>g:mkdx#settings.links.fragment.completeopt</code></a></li> <li><a href="#gmkdxsettingsimage_extension_pattern"><code>g:mkdx#settings.image_extension_pattern</code></a></li> <li><a href="#gmkdxsettingsrestore_visual"><code>g:mkdx#settings.restore_visual</code></a></li> <li><a href="#gmkdxsettingsmapprefix"><code>g:mkdx#settings.map.prefix</code></a></li> <li><a href="#gmkdxsettingsmapenable"><code>g:mkdx#settings.map.enable</code></a></li> <li><a href="#gmkdxsettingscheckboxtoggles"><code>g:mkdx#settings.checkbox.toggles</code></a></li> <li><a href="#gmkdxsettingscheckboxupdate_tree"><code>g:mkdx#settings.checkbox.update_tree</code></a></li> <li><a href="#gmkdxsettingscheckboxinitial_state"><code>g:mkdx#settings.checkbox.initial_state</code></a></li> <li><a href="#gmkdxsettingscheckboxmatch_attrs"><code>g:mkdx#settings.checkbox.match_attrs</code></a></li> <li><a href="#gmkdxsettingstokensheader"><code>g:mkdx#settings.tokens.header</code></a></li> <li><a href="#gmkdxsettingstokensenter"><code>g:mkdx#settings.tokens.enter</code></a></li> <li><a href="#gmkdxsettingstokensfence"><code>g:mkdx#settings.tokens.fence</code></a></li> <li><a href="#gmkdxsettingstokensitalic"><code>g:mkdx#settings.tokens.italic</code></a></li> <li><a href="#gmkdxsettingstokensbold"><code>g:mkdx#settings.tokens.bold</code></a></li> <li><a href="#gmkdxsettingstokensstrike"><code>g:mkdx#settings.tokens.strike</code></a></li> <li><a href="#gmkdxsettingstokenslist"><code>g:mkdx#settings.tokens.list</code></a></li> <li><a href="#gmkdxsettingstableheader_divider"><code>g:mkdx#settings.table.header_divider</code></a></li> <li><a href="#gmkdxsettingstabledivider"><code>g:mkdx#settings.table.divider</code></a></li> <li><a href="#gmkdxsettingstablealign"><code>g:mkdx#settings.table.align</code></a></li> <li><a href="#gmkdxsettingstabenable"><code>g:mkdx#settings.tab.enable</code></a></li> <li><a href="#gmkdxsettingsenterenable"><code>g:mkdx#settings.enter.enable</code></a></li> <li><a href="#gmkdxsettingsenterclosRelated Skills
node-connect
337.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
337.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.3kCommit, push, and open a PR
