5 years with a personal wiki (vimwiki)

2023-06-01

I began using vimwiki in fall 2018, inspired by a number of wikis I'd experienced over the years, but not by the 'digital gardens' movement so much as the morphing website-portfolio-artist-site-as-wiki by artist Auriea Harvey. Each time I visited it sprouted new pages or took on different forms and page flows. Directories, stubs, image galleries, linkpages: like a 90s web wonderland. In the last few years as she's been more widely exhibited her site has become more less and less the wild wiki of yore. Might need to revisit it with the Internet Archive's wayback machine: https://web.archive.org/web/20190327062229/http://auriea.org/Auriea

I decided I wanted to create a wiki as well, but quickly found myself wanting to output my work for public consumption to be more like writing blogposts. I had been using jekyll for this on my personal site. Simultaneously, I needed a place to capture my notes, configs, snippets of code and ideas and the like. This is where the idea of using a wiki came back. I looked at Gollum, mediawiki, pbwiki, and other wiki options I was already familiar with and ones that I wasn't familiar with yet. I wanted the language to be simple, built for just me instead of multiple users, and I wasn't concerned about security since I intended this to be offline, for just me. I also wanted to write in markdown. I stumbled across Vimwiki in a post on Opensource.com. Since I was already a vim user, and enjoyed vim keys in my other TUI apps like pyradio, I thought it could be worth a try.

Vimwiki runs entirely in the terminal, edited with vim/nvim, and can output html (if you so desire). You have a main index page (usually) and then links off this page to sub-pages, which link out to additional pages. You press enter on any word and then it creates a new page in your wiki and takes you to that page.

Some special commands:

\ww opens a new diary page for the day, 
\w\w jumps to your wiki index
\w\i rebuilds your diary index with links to all your diary entries

The first line of your diary will be the title listed on the diary index page.

Created vimwiki pages are a single word, or a series of words linked with underscore or dashes.

I started my vimwiki in September 2018. Today I have 444 wiki pages, of which 325 are linked within the main part of the wiki and 119 are in the diary section of vimwiki. The distinction is that the 'diary' I use to draft gemlog posts, website blogposts, individual software or game devlogs, or to draft documentation or professional documents I have to write. Yesterday I used the diary to work on a report I have to give at school. Today I used it to draft the text you're reading now.

My index page has about 20 links off it, though I occasionally put a link to a sub-page that I'm actively working on at the top of the index, and remove it from there after completing the current project. Right now my index looks kind of like this:

# My knowledge Base
scratchnotes
links
teaching
* online archives * professional work
learning - links to videos, talks, etc
tasks
* coding, * software, * website, * design
books
audiovisual
sound
writing / studies
organizing
games
life
diary

Each of these are links, except the line with * are lines with multiple links

In addition to navigating my wiki via the links, I also sometimes just go to the vimwiki directory itself and search for a wiki page by title since it's a flat hierarchy. For example, I might directly open the webrings.md page, or solo-board-games.md or window-managers.md pages.

A page for me usually has a short description, then a list of links either internal or on the web. I rarely have images inline since this is mostly a place for me to store information. The rare times I want to browse this visually on the web I will use the MarkdownPreview vim plugin to launch it in the browser.

The only other things I will add is that mostly it's a lightweight tool and I don't have to think about it very much since it's flexible and fast and easy. I have a function (in fish. This would equivalent to an alias in bash) that launches my tasks.md file which is a plaintext todo file for me of all my upcoming deadlines for work. I can link out to sub-pages for these projects if they warrant it.

I do approximately weekly backups to an external disk when i backup my entire hard drive. And I also use git to a private remote git instance as well, though I have an automated "git update" command that does the adding, commit and message for me all at once.

The wiki is where I track projects, find notes I took when installing my operating system, list articles or advice I want to re-read every few years, or track movies by a particular filmmaker or books I've read and their summaries. And these are just a few examples. Some days or a week or so may go by that I don't open it. Other days I am working on a dozen files.

It's not public, but a necessary internal notebook, and it works for me.

Since it's just markdown, I basically am also writing this in gemtext, so after this paragraph I'll copy this document to my gemlog folder, then upload it to the gemlog on tildegit and git pull it down into my gemlog directory on ctrl-c.club and it's published just like that. My gemtext links (such as below) won't work internally in vimwiki, but that's fine with me.

Back to index

---

You can leave a public comment on this post by emailing me with my username at ctrl-c.club and putting the name of this post and the word comment. Also be sure to list what name you'd like listed.