Skip to content
No description, website, or topics provided.
Branch: master
Clone or download

VS Code Markdown Notes

Use [[wiki-links]] and #tags for fast-navigation between notes kept in in a VS Code workspace. Quickly create new notes from a Tilte Case Note Name.

There are many great note-taking applications (Notational Velocity, nvalt, Bear, FSNotes), but few of them offer the extensibility of VS Code and the ability to use Vim bindings for editing notes.

This extension provides a number of the best features invented by these other great apps.

You can install it from the VSCode Marketplace.


A popular feature in Roam Research and Bear is the ability to quickly reference other notes using "Cross-Note Links" in the [[wiki-link]] style.

VS Code Markdown notes provides syntax highlighting, auto-complete, Go to Definition (editor.action.revealDefinition), and Peek Definition (editor.action.peekDefinition) support for wiki-links to notes in a workspace.

By default, the extension assumes each markdown file in a workspace has a unique name, so that will resolve to the file with this name, regardless of whether or not this file exists in any subdirectory path. This tends to be a bit cleaner, but if you want support for multiple files with the same name, in settings.json set "vscodeMarkdownNotes.workspaceFilenameConvention": "relativePaths", and you'll get completions like note1/ and ../note2/


Syntax highlighting for #tags.

New Note command

Provides a command for quickly creating a new note.

You can bind this to a keyboard shortcut by adding to your keybindings.json:

        "key": "alt+n",
        "command": "vscodeMarkdownNotes.newNote",


Intellisense Completion for Wiki Links, uniqueFilenames


Intellisense Completion for Wiki Links, relativePaths


Syntax Highlighting for Tags and Wiki Links


Peek and Go to Definition for Wiki Links


cmd+shift+f to Search Workspace for Notes with #tag


New Note Command



Run npm install first.

Known Issues

  • Filename completion seems to be triggering when not in the [[ context.
  • The ctrl+o VSCodeVim jumplist shortcut does not return you to the correct place after using "Go to Definition" (ctrl+]): (The VSCode Go Back command (ctrl+-) does work, however.)
  • This extension sets the wordPattern for 'markdown' in order to (1) enable proper completion of relative paths and (2) make it such that if you cmd+shift+f on a #tag the search will prefill with "#tag" and not just "tag":
    vscode.languages.setLanguageConfiguration('markdown', { wordPattern: /([\#\.\/\\\w_]+)/ });


  • Add command to create file based on name in the wiki-link under the cursor
  • Add command to create new note with name + heading
  • Provide better support for ignore patterns, eg, don't complete if it is within ignored_dir/
  • Should we support filename without extension, eg, assume [[file]] is a reference to
  • Should we support links to headings? eg,
  • Add syntax highlighting and search for #tags. See also

Development and Release

To create a new release,

npm install
# bump version number in package.json
npm run vpackage # package the release, creates ,vsix
npm run vpublish # publish to store, see
# Will prompt for Azure Devops Personal Access Token, get fresh one at:
# On "Error: Failed Request: Unauthorized(401)"
# see:
# The reason for returning 401 was that I didn't set the Accounts setting to all accessible accounts.

To install the vsix locally:

  1. Select Extensions (Ctrl + Shift + X)
  2. Open More Action menu (ellipsis on the top) and click Install from VSIX…
  3. Locate VSIX file and select.
  4. Reload VSCode.
Helpful Links
You can’t perform that action at this time.