SkillAgentSearch skills...

Mkdx

A vim plugin that adds some nice extra's for working with markdown documents

Install / Use

/learn @SidOfc/Mkdx
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

mkdx.vim GitHub tag GitHub issues

        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 &sw with a value of 0
  • @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 autoindent different default value
  • @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>&lt;kbd&gt;&lt;/kbd&gt;</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 &lt;kbd /&gt; 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>&lt;details&gt;</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="#gmkdxsettingsenterclos

Related Skills

View on GitHub
GitHub Stars485
CategoryDevelopment
Updated1mo ago
Forks13

Languages

Vim Script

Security Score

100/100

Audited on Feb 19, 2026

No findings