*denote.txt* For Vim version 9.0. Last change: 2026 Feb 18 This is the documentation for the denote plugin. ============================================================================== CONTENTS *denote.vim* *denote* 1. Introduction |denote-intro| 2. Commands |denote-commands| 3. Settings |denote-settings| 4. Mappings |denote-mappings| ============================================================================== *denote-intro* Introduction ~ Denote is a file-naming scheme developed by Protesilaos Stavrou and an Emacs tool for handling such files. Notes and other files that follow this scheme can be linked, and the links are preserved even when the files are renamed due do adjusting the tags or changing the title of a note. The official manual is available online: https://protesilaos.com/emacs/denote The denote plugin adds denote-functionality to vim --- the vim way. We are aware of two other plugins, but we fear that these plugins are not flexible enough, and more importantly, do not follow the vim philosophy for handling denote notes. These mentioned plugins are available here: https://github.com/shuckster/denote-md https://git.sr.ht/~ashton314/vim-denote In contrast to these plugins, the present package relies on the |location-list| features for displaying denote entries, and on and |'includeexpr'| option for following the links (see, |gf|). This plugin also provides custom location-list formatting using the option |'quickfixtextfunc'|. *denote-commands* Commands ~ *:Denote* Populate the location list of the current window with the denote entries present in the current directory. This command may be supplemented with any number of arguments that filter the entries. *:DenoteTag* This command takes as argument a tag, and populates the location list with all denote entries of that are tagged accordingly. The tags are autocompleted (see, |c_|). *:DenoteGrep* This command is a wrapper around |:lvimgrep| to search for a pattern in the denote entries. The required argument is a pattern as required by |:vimgrep|, i.e., /{pattern}/[g][j][f]. *:DenoteNew* This command takes as argument a note title, and generates a new denote entry with the specified title. The entry file type is controlled by the setting |g:denote_new_ft|. *:DenoteBackReferences* When called from an opened denote entry, this command populates the location list with all references to the current note. *denote-settings* Settings ~ *g:denote_note_file_extension* With this setting you may specify the file extensions of all denote entries within which |:DenoteGrep| will search for the provided pattern. If left unspecified, it is set to the following default value: > g:denote_note_file_extension = ['md', 'org', 'txt'] < *g:denote_loc_title_columns* This integer specifies the number of columns used to display the titles of denote entries. Per default, it is set to: > g:denote_loc_title_columns = 60 < *g:denote_new_ft* Newly created notes are of this file type. Possible values are 'md', 'org', or 'txt', with the following default: > g:denote_new_ft = 'md' < *g:denote_fm_md_type* The front matter of 'md' notes is given as 'yaml' or as 'toml'. By default, this package uses 'yaml': > g:denote_fm_md_type = 'yaml' < *g:denote_identifier_fun* Denote allows the use of custom identifiers. This variable, if set, points to a function that generates identifiers for newly created notes. The function is supposed to return a unique string. *denote-mappings* Mappings ~ DenoteList "Populate and open the location list with all denote entries". DenoteBackReferences "Populate and open the location list with all denote entries that link to the currently opened one". vim:tw=78:sw=4:ts=8:noet:ft=help:norl: