*notoire.txt* A vim plugin to take notes using the Zettelkasten method __ _ _ ~ /\ \ \___ | |_ ___ (_)_ __ ___ ~ / \/ / _ \| __/ _ \| | '__/ _ \ ~ / /\ / (_) | || (_) | | | | __/ ~ \_\ \/ \___/ \__\___/|_|_| \___| ~ ~ Version: 0.7 - License: MIT - Author: Kevin Bockelandt ============================================================================= CONTENTS *notoire-contents* Introduction ............. | notoire-introduction | Dependencies ............. | notoire-dependencies | Concepts ................. | notoire-concepts | Note file format ....... | notoire-note-files | Index note ............. | notoire-index | Notoire folders ........ | notoire-folders | Commands ................. | notoire-commands | Options .................. | notoire-options | Mapping .................. | notoire-mapping | Contributing ............. | notoire-contributing | ============================================================================= Introduction *notoire-introduction* You could roughly sum up a Zettelkasten as being an external brain. It is a network of notes where each note contains an idea. You can search it, expand it, make new connections, etc. In a nutshell, this plugin will keep all the notes in markdown format in a single folder as a flat hierarchy and connect them using links, the same way a wiki does. For more detailed explanations on the Zettelkasten method and the way you should approach note taking with this system, you can look it up online and / or read the book "How to take smart notes" by Sönke Ahrens. ============================================================================= Dependencies *notoire-dependencies* In order to use all the features of Notoire, you need to have two tools available on your machine: fzf (as a vim plugin) and ripgrep (as 'rg' command line tool). Check the corresponding documentation pages for ways of installing them: https://github.com/junegunn/fzf#installation https://github.com/BurntSushi/ripgrep#installation ============================================================================= Concepts *notoire-concepts* ----------------------------------------------------------------------------- Note files *notoire-note-files* The notes are stored in plain text files that are treated as markdown. That being said, beyond the way links are formatted you are free to write the content of the notes any way you want. By default the note files have the `.note` file extension to distinguish them from regular markdown files. You can change that by setting the |g:notoire_file_extension| option. Each note is a separate file and each file has a name that is an hexadecimal number. It is highly discouraged to create files by hand. It is better to let the plugin do it as it will automatically scan the content of the note folder to determine the next id to use. ----------------------------------------------------------------------------- Index note *notoire-index* The note in file with id `0` is considered as the 'index note' by Notoire. There is a dedicated command to access it: |:NotoireOpenIndex|. Technically speaking it's just a note like any other, so you can choose to use it any way you want (including not at all). That being said it is recommended to use it as an entry point in you note system and / or as a temporary inbox where to write reminders regarding notes you cannot create right away. ----------------------------------------------------------------------------- Multiple folders *notoire-folders* You can handle several separated Zettelkasten at the same time by specifying a different folder for each one. You then switch from one to another with the |:NotoireSelectFolder| command. All the commands apply only to the folder currently selected. You can specify the list of folders to use with the option *g:notoire_folders* ============================================================================= Commands *notoire-commands* *:NotoireNextLink* Go to the next link in the note *:NotoirePrevLink* Go to the previous link in the note The following commands can all be suffixed by 'S' or 'VS' in order to open the result in a split or vertical split. See |notoire-mapping| for exemples on how to use it. *:NotoireOpenIndex* ------------ | Open the index note *:NotoireOpenLink* ------------- | Open link under cursor *:NotoirePrevNote* ------------- | Go back to the previously opened note *:NotoireCreateEmptyNote* ------ | Create a new empty note *:NotoireCreateNote* ----------- | Create a new note from visual selection and | place link *:NotoireCreateLink* ----------- | Create a link to a new or existing note | using visual selection for the link text *:NotoireCreateEmptyLink* ------ | Create a link with empty text to a new or | existing note *:NotoireSearchNotes* ---------- | Interactively search for a note or create | a new one *:NotoireSearchLinksInNote* ---- | Interactively search among all links | present in the current note and open one *:NotoireSearchOrphanNotes* ---- | Interactively search among notes that are | not referenced in any link anywhere *:NotoireSearchNotesLinkingHere* | Interactively search among notes that | contain links to the current note ============================================================================= Options *notoire-options* The mandatory option *g:notoire_folders* defines the paths to the folders containing the notes. Exemple: > let g:notoire_folders = ['~/Dropbox/myZettelkasten/'] The optional option *g:notoire_file_extension* allows you to specify a the file extension to use for note files. If you do not specify it, the default `note` extension is used. Exemple: > let g:notoire_file_extension = 'md' < The optional option *g:notoire_display_file_extension* can be set if you want file extension to be added at the end of links. Without it, the links will only display the ID of the file. It is disabled by default. 0 - do not add file extension to links 1 - add file extension to links > let g:notoire_display_file_extension = 1 The optional option *g:notoire_color* allows you to specify a custom color scheme for fzf. It follows the syntax used by fzf, available in it's documentation. Exemple: > let g:notoire_color = "--color=border:#FF8888,hl:#FFF714,hl+:#FFF714" < The optional option *g:notoire_user_mapping* tells the plugin not to use the default mapping. See |notoire-mapping| for a base for an alternative mapping. 0 - keep the default mapping 1 - do not use default mapping > let g:notoire_user_mapping = 1 < ============================================================================= Mapping *notoire-mapping* Notoire provides the following mapping by default: > nnoremap l :NotoireNextLink(v:count1) nnoremap h :NotoirePrevLink(v:count1) nnoremap j :NotoireOpenLink nnoremap sj :NotoireOpenLinkS nnoremap vj :NotoireOpenLinkVS nnoremap m :NotoireCreateEmptyLink nnoremap sm :NotoireCreateEmptyLinkS nnoremap vm :NotoireCreateEmptyLinkVS vnoremap m :NotoireCreateLink vnoremap sm :NotoireCreateLinkS vnoremap vm :NotoireCreateLinkVS nnoremap n :NotoireCreateEmptyNote nnoremap sn :NotoireCreateEmptyNoteS nnoremap vn :NotoireCreateEmptyNoteVS vnoremap n :NotoireCreateNote vnoremap sn :NotoireCreateNoteS vnoremap vn :NotoireCreateNoteVS nnoremap k :NotoirePrevNote nnoremap sk :NotoirePrevNoteS nnoremap vk :NotoirePrevNoteVS nnoremap u :NotoireSearchNotes nnoremap su :NotoireSearchNotesS nnoremap vu :NotoireSearchNotesVS nnoremap o :NotoireSearchLinksInNote nnoremap so :NotoireSearchLinksInNoteS nnoremap vo :NotoireSearchLinksInNoteVS nnoremap y :NotoireSearchNotesLinkingHere nnoremap sy :NotoireSearchNotesLinkingHereS nnoremap vy :NotoireSearchNotesLinkingHereVS nnoremap i :NotoireSearchOrphanNotes nnoremap si :NotoireSearchOrphanNotesS nnoremap vi :NotoireSearchOrphanNotesVS nnoremap :NotoireOpenIndex nnoremap s :NotoireOpenIndexS nnoremap v :NotoireOpenIndexVS < If you wish to not use the default mapping, see the |g:notoire_user_mapping| option. ============================================================================= Contributing *notoire-contributing* The project is hosted here: https://github.com/KevinBockelandt/notoire TODO: issues and PR and feedback vim:tw=78:ts=8:ft=help