Joe Jenne

Managing notes with Helix

replacing vimwiki with simplicity

I have recently been trying out the helix editor in an attempt to try things that “just work” out of the box.

(also in this vein: alacritty, fish, just, ripgrep, … why are all the good tools written in rust?)

I come from neovim and love the note-management plugin vimwiki, which adds simple navigation, checklists, tables, highlighting, completion and daily journals. This works really well but neovim requires a bit of faff to set up perfectly. How does helix fare?

Setup

On Mac the setup was simply:

brew install helix           # the editor
brew install markdown-oxide  # the lsp

hx index.md                  # start writing

Immediately I had a working note taking app.

The markdown lsp, markdown-oxide, provides

Config

A bit of extra config brought some missing vimwiki ergonomics

[keys.normal]
tab = "@/\\[\\[<ret>"
S-tab = "@?\\[\\[<ret>"
ret = "goto_definition"
backspace = "jump_backward"

[keys.normal.space.w]
w = [":cd ~/Documents/wiki/", ":open index.md"]
t = [":cd ~/Documents/wiki/", ":lsp-workspace-command today"]
T = [":cd ~/Documents/wiki/", ":lsp-workspace-command tomorrow"]

Usage

Now I can <space>ww to go to my wiki index, <space>wt to edit today’s journal entry.

I can:

  1. hit <tab> to go to the first available link, and <enter> to open the linked file
  2. write a new link See [[foo]] then hit <alt>a to open an option to create the file

<space>a

Caveats

Because helix does not yet support filetype-specific keybindings, these will apply across all non-markdown files too.

I’d love to contribute to markdown-oxide to add more features like backlinks and table of contents creating for journals.