VS NOTES
VS Notes is a simple tool that takes care of the creation and management of plain text notes and harnesses the power of VS Code via the Command Palette.
- Demo Video
- Repository
- Features
- Quick Start
- Taking Notes
- Settings
- Tips and tricks
- Roadmap & Features
- Change log
- Contributing
- Reviews
Demo Video
Click to watch 1 min demo video.
Repository
VS Notes is MIT Licensed and available on Github
Features
- Access commands quickly from the VS Code command palette
Ctrl/Cmd + Shift + p
. - Set a base folder for your notes and all notes created will be saved in that folder.
- Easily access latest notes with
List Recent Notes
command. - Retrieve notes via tags in YAML encoded frontmatter on your notes.
- Open your note folder in a new window.
- View your notes and tags in your filebar.
- Automatically insert a VS Code snippet upon creation of a new note.
- Commit and push to your upstream repository with a single command.
Quick Start
- Install the extension from the VS Code Extension menu or click install on this page..
- Open the command palette
Ctrl/Cmd + Shift + p
and typevsnotes
. Select Run Setup. - Click start and then select a directory to save your notes to.
To modify other settings, open the VS Code settings
Preferences > Settings
or hitCtrl/Cmd + ,
and type in vsnotes in the search bar. To override the setting, copy it over to your user settings file and modify.
- Access VSNotes commands in the command pallette by pressing
ctrl/cmd + shift + p
and typing vsnotes.
Taking Notes
VSNotes is just a quick way to create files in a single location and retrieve them later. Harness the power of VSCode and the extension ecosystem to customize your note taking workflow. The default file type is markdown and features are built around taking markdown notes. However if you want to save your notes as other types of plain text files, you can change the settings to append a different file extension.
Note Filename
When creating a new note, VS Notes will look at the vsnotes.defaultNoteTitle
setting to grab the format for the file name. This string contains several tokens that is converted by VS Notes when a note is created. Tokens can be modified in the vsnotes.tokens
setting, but shouldn't be modified unless necessary. When asked to input a title for your new note, VSNotes can detect file paths and will create subfolders as necessary.
Filename Tokens
Tokens are added to the defaultNoteTitle
setting and will automatically insert desired data into the file name of the note. This gives us the ability to specify a simple title for a note and have additional metadata added to the file name.
-
datetime: Inserts the current date time in a format specified by the format key. Formatting options. Don't modify type or token keys unless you know what you're doing.
{ "type": "datetime", "token": "{dt}", "format": "YYYY-MM-DD_HH-mm", "description": "Insert current datetime" }
-
title: When you create a new note, VS Notes will ask you for a title for the note. After entering a title, it will replace this token with the input text. There shouldn't be any need to modify this setting.
{ "type": "title", "token": "{title}", "description": "Insert note title", "format": "Untitled" },
-
extension: The file extension for the file. Defaults to markdown but you can change it to whatever you want. For example, if you prefer plain text notes, change it to
.txt
.{ "type": "extension", "token": "{ext}", "description": "Insert file extension", "format": "md" }
File Path Detection
VSNotes understands file paths and will create folders as necessary. When prompted for a note title, inputting a path will nest the new note under the folders designated in the path. All paths are generated from the main notes folder.
Input text delimited by your system's file path separator. Windows: \
Mac/Linux: /
VSCode generates necessary subfolders and places the new note inside
Snippets
[New in 0.2.0] VS Notes will automatically execute a snippet after creating a note to pre-populate the note with a handy form template. The default snippet is called vsnotes and created for the markdown language. You can override it by adding this option to your settings.json file and pointing it to a custom snippet you've created.
"vsnotes.defaultSnippet": {
"langId": "markdown",
"name": "vsnotes"
},
- Set
langId
to the desired language andname
to a snippet's name. - Set
langId
to a language andname
tonull
and a menu will open with all available snippets for your chosen language. - Set both
langId
andname
to null to disable automatic snippet insertion.
Tags
[New in 0.2.0] VS Notes adds the ability to pull tags out of documents containing a YAML frontmatter block (a la jekyll's frontmatter). YAML frontmatter is a way to encode machine parsable data in a way that is friendly to read and write.
If a file in your note folder has YAML frontmatter with a tag array, VS Notes will extract the tags from the note and show you all notes with specific tags.
Example YAML frontmatter
// file.md
---
tags:
- tag1
- tag2
---
The rest of the document goes here
...
VS Notes ships with a default YAML encoded snippet that it will insert on creation of a new note.
Explorer View
[New in 0.3.0] VS Notes adds a tree view to the explorer.
Access your notes no matter what you're doing. This new treeview adds a quick way to access your tags or files at any time by placing a small window in your explorer (file bar) that displays your tags and the contents of your note folder. Now you don't have to navigate away from a project or open a new window to reference your notes. Quick and easy.
Commit and Push
[New in 0.4.0] The Commit and Push command is a simple way to add all changes, commit, and push your changes if a version control system like Git is set up in your notes folder. The default command is set up for *nix style systems and requires the git command be accessible.
To customize the command and the default command and commit message, update the settings: vsnotes.commitPushShellCommand
and vsnotes.commitPushDefaultCommitMessage
.
Note that this has not been tested on windows machines and may not work without modifying the command. Please test before using.
Settings
Available settings
// Path to directory to save notes.
"vsnotes.defaultNotePath": "",
// Tokens used to replace text in file name.
"vsnotes.tokens": [
{
"type": "datetime",
"token": "{dt}",
"format": "YYYY-MM-DD_HH-mm",
"description": "Insert formatted datetime"
},
{
"type": "title",
"token": "{title}",
"description": "Insert note title from input box",
"format": "Untitled"
},
{
"type": "extension",
"token": "{ext}",
"description": "Insert file extension",
"format": "md"
}
],
// Default note title. Utilizes tokens set in vsnotes.tokens
"vsnotes.defaultNoteTitle": "{dt}_{title}.{ext}",
// Number of recent files to show when running command `List Notes`
"vsnotes.listRecentLimit": 15,
// Automatically convert blank spaces in title to character. To disable set to `null`
"vsnotes.noteTitleConvertSpaces": "_",
// Default vscode snippet to execute after creating a note. Set both langId and name to null to disable
"vsnotes.defaultSnippet": {
"langId": "markdown",
"name": "vsnotes"
},
// Regular expressions for file names to ignore when parsing documents in note folder
"vsnotes.ignorePatterns": [
"^\\."
],
// Shell command to execute in the note directory when the Commit and Push command is executed. The {msg} token will be replaced with the contents of an input box shown or, if empty, the default commit message.
"vsnotes.commitPushShellCommand": "git add -A && git commit -m '{msg}' && git push",
// The default commit message used if none is provided with the Commit and Push command
"vsnotes.commitPushDefaultCommitMessage": "VS Notes Commit and Push",
Tips and tricks
- Customize your default template with snippets. Create your own snippets and automatically have them populate when creating a new note with the
vsnotes.defaultSnippet
setting. - Take advantage of built in markdown features in VSCode. VS Code has some very rich Markdown features to take advantage of.
- Supercharge your markdown workflow with extensions. Find extensions in the marketplace to add markdown functionality to your workflow.