2022-06-13

My Smart Notes

In my note-taking system I divide my notes into four types:

  • Standard notes,
  • Project notes,
  • Literature notes,
  • Permanent notes,

and for each type, I use a dedicated desktop application. Standard, Project, and Literature notes can be jointly managed by adding their folders to the notes_directories option defined in the Vim-notes plugin and with VIM as the default text editor.

Standard Notes

My standard notes are mostly unformatted, plain text notes that can be quickly edited. Wintermnote facilitates their management within a single dedicated folder.

Project Notes

Project notes are also unformatted plain text notes attached to a TODO, and generated from the CSVTODO desktop application; they include the tag @project_name where name is the name of the project. A list of all tagged notes can be displayed inside a VIM buffer with:

   :ShowTaggedNotes

Literature Notes

Literature notes can be created from the command line pubs. Bibliography entries are stored using the BibTeX format in a set of files, one for each bibliography item. To consolidate them into a single database I use the following vlang program:

    // filename: pubstobib.v 
    import os

    fn main() {
        pubshome := os.home_dir()+'/.pubs'
        files := os.ls(pubshome+'/bib') or {
            println(err)
            return
        }
        mut f := os.create(pubshome+'/pubs.bib') or {
            println(err)
            return
        }
        for file in files {
            println(file)

            content := os.read_file(pubshome+"/bib/"+file) ?
            f.write_string(content + '\r\n') ? 
        
        }
        f.close()
    }

    

Or the command:

   pubs.exe export

Coc Bibtex

Vim autocompletion for bibliographical items can be obtained with this extension and enabled for the specific file-type used by Vim-notes as shown my configuration file below:

    // coc config file for gvim 
    {
    "coc.source.bibtex.filetypes":["tex", latex", "pandoc", "markdown", "notes"],
    "list.source.bibtex.files":["C:\\Users\\Seve\\.pubs\\pubs.bib"],
    "snippets.ultisnips.enable": false, // required if python not installed
    "coc.source.emoji.filetypes": [
        "notes"
    ]
    }
    

The following short video shows how it's relatively easy to replace a Pandoc reference with a tag.

Permanent Notes

One or more standard notes can become the basis for a more complex permanent note that I usually share on this website in the blog journal section. Vim-notes command :NotesToMediawiki allows me to easily include a note within my static website.