Skip to content

2.Features

yousefhadder edited this page Dec 28, 2025 · 3 revisions

Features

List Management

Made with VHS
  • Auto-create next list item: Press Enter to automatically continue lists
  • Normal mode list creation: Use o/O in normal mode to create new list items
  • Smart list indentation: Use Tab/Shift+Tab to indent/outdent list items
  • Auto-renumber ordered lists: Automatically renumber when items are added/deleted
  • Smart backspace: Remove list markers when backspacing on empty items
  • List breaking: Press Enter twice on empty list items to break out of lists
  • Checkbox support: Works with all list types (e.g., - [ ], 1. [ ], a. [x])
  • Checkbox toggling: Toggle checkboxes on/off with <leader>mx in normal/visual mode or <C-t> in insert mode
  • Multiple list types: Supports unordered (-, *, +), ordered (1., 2.), letter-based (a., A.), and parenthesized variants (1), a), A))
  • Nested lists: Full support for nested lists with proper renumbering
  • Checkbox completion timestamps: Automatically add completion dates when checking tasks (Obsidian-style), with multiple format options (emoji, comment, dataview, parenthetical)

Text Formatting

Made with VHS
  • Toggle bold: <leader>mb to toggle **bold** formatting on selection or word
  • Toggle italic: <leader>mi to toggle *italic* formatting on selection or word
  • Toggle strikethrough: <leader>ms to toggle ~~strikethrough~~ formatting on selection or word
  • Toggle inline code: <leader>mc to toggle `code` formatting on selection or word
  • Toggle highlight: <leader>mh to toggle ==highlight== formatting (Obsidian style)
  • Toggle underline: <leader>mu to toggle ++underline++ formatting (Extended Markdown)
  • Convert to code block: <leader>mw to convert the selected text into a code block
  • Clear all formatting: <leader>mC to remove all markdown formatting from selection or word
  • Smart word detection: Works with words containing hyphens (test-word), dots (file.name), and underscores (snake_case)
  • Visual and normal mode: All formatting commands work in both visual selection and normal mode (on current word)
  • Dot-repeat support: Normal mode formatting actions are dot-repeatable - press . to apply the same format to another word
    • Example: <leader>mb on "word1" to make it bold, then move to "word2" and press . to make it bold too
    • Note: Visual mode formatting does not support dot-repeat

Headers & Table of Contents

Made with VHS
  • Header navigation: Jump between headers with ]] (next) and [[ (previous)
  • Promote/demote headers: Increase/decrease header importance with <leader>h+ and <leader>h-
  • Set header level: Quickly set header level 1-6 with <leader>h1 through <leader>h6
  • Generate TOC: Auto-generate table of contents with <leader>ht (uses HTML markers to prevent duplicates)
  • Update TOC: Refresh existing TOC with <leader>hu after modifying headers
  • Follow TOC links: Press gd on a TOC link to jump to that header
  • Smart TOC placement: TOC appears right before first section (after introduction text)
  • Code block aware: Headers inside code blocks are correctly ignored
  • GitHub-compatible slugs: Anchor links work correctly on GitHub (handles Q&A, C++, etc.)

Links & References

Made with VHS
  • Insert link: <leader>ml to insert a new markdown link with text and URL
  • Convert selection to link: Select text and <leader>ml to convert it to a link
  • Edit link: <leader>me on a link to edit its text and URL
  • Open links: Use gx (native Neovim) to open links in your browser
  • Auto-convert URL: <leader>ma on a URL to convert it to a markdown link
  • Reference-style links: Convert between inline [text](url) and reference [text][ref] styles
  • Convert to reference: <leader>mR to convert inline link to reference-style
  • Convert to inline: <leader>mI to convert reference link to inline
  • Smart URL detection: Works with bare URLs and properly formatted links

Image Links

  • Insert image link: <leader>mL to insert a new markdown image with alt text and URL
  • Convert selection to image: Select text and <leader>mL to convert it to an image link
  • Edit image link: <leader>mE on an image to edit its alt text, URL, and optional title
  • Toggle link/image: <leader>mA to convert between regular links [text](url) and image links ![text](url)
  • Title attribute support: Optional title attribute for images: ![alt](url "title")
  • Smart detection: Accurately detects images with or without title attributes
  • Visual and normal mode: All commands work in both visual selection and normal mode

Quotes Management

Made with VHS
  • Toggle blockquote: Use <leader>mq to toggle > blockquote formatting on the current line or visual selection
  • Empty line creation: On empty lines, creates blockquote and enters insert mode for quick typing
  • Visual and normal mode: Works in both visual selection and normal mode

Callouts/Admonitions (GitHub Flavored Markdown)

Made with VHS
  • Insert callouts: <leader>mQi to insert a callout block with type selection (NOTE, TIP, IMPORTANT, WARNING, CAUTION)
  • Wrap selection: Select text in visual mode and <leader>mQi to wrap it in a callout
  • Toggle type: <leader>mQt to cycle through callout types (NOTE → TIP → IMPORTANT → WARNING → CAUTION)
  • Convert blockquote: <leader>mQc to convert a regular blockquote to a callout
  • Convert to blockquote: <leader>mQb to remove callout markers and convert back to regular blockquote
  • Custom types: Configure custom callout types beyond the standard GFM types
  • Preserves indentation: Works correctly with nested/indented content
  • GitHub compatible: Uses official GitHub Flavored Markdown callout syntax > [!TYPE]

Table Support

Made with VHS

Basic Operations:

  • Create tables: <leader>tc to interactively create a new table with custom dimensions
  • Format tables: <leader>tf to auto-format and align columns
  • Normalize tables: <leader>tn to fix malformed tables
  • Smart cursor positioning: Cursor automatically positioned after all operations

Row & Column Operations:

  • Insert rows: <leader>tir (below) / <leader>tiR (above)
  • Delete row: <leader>tdr (protects header/separator)
  • Duplicate row: <leader>tyr
  • Move rows: <leader>tmk (up) / <leader>tmj (down)
  • Insert columns: <leader>tic (right) / <leader>tiC (left)
  • Delete column: <leader>tdc (protects last column)
  • Duplicate column: <leader>tyc
  • Move columns: <leader>tmh (left) / <leader>tml (right)

Cell Operations:

  • Toggle alignment: <leader>ta cycles through left → center → right → left
  • Clear cell: <leader>tx clears content while preserving structure
  • Insert mode navigation: <A-h>, <A-l>, <A-j>, <A-k> (circular wrapping)

Advanced Operations:

  • Transpose table: <leader>tt swaps rows and columns (with confirmation)
  • Sort by column: <leader>tsa (ascending) / <leader>tsd (descending), numeric & alphabetic
  • CSV conversion: <leader>tvx (to CSV) / <leader>tvi (from CSV)
  • Alignment support: Left (:---), center (:---:), right (---:)

Footnotes Support

Made with VHS

Comprehensive footnote support for managing markdown footnotes:

  • Insert footnotes: <leader>mfi to create new footnote references and definitions with auto-generated IDs
  • Edit footnotes: <leader>mfe to modify existing footnote definitions
  • Delete footnotes: <leader>mfd to remove references and definitions with optional confirmation
  • Navigate: Jump between references and definitions bidirectionally
    • <leader>mfg to go to footnote definition
    • <leader>mfr to go to footnote reference(s)
  • Sequential navigation: <leader>mfn (next) and <leader>mfp (previous) to jump between footnotes
  • List footnotes: <leader>mfl to browse all footnotes with status indicators
  • Code block awareness: Ignores footnote syntax inside fenced code blocks and inline code
  • Configurable section header: Customize the footnotes section header text
  • Orphan detection: Visual indicators for footnotes without definitions or references
# Example Document

Some text with a footnote[^1] and another[^example].

## Footnotes

[^1]: This is the first footnote.

[^example]: Named footnotes work too!
    Multi-line content is supported with indentation.

Clone this wiki locally