I have a somewhat popular Youtube video I made while going through my tool-hopping phase of getting off Notion. I’ve had stints of both Emacs and Neovim, but have stuck with Neovim since my goal has been largely to pare down distractions rather than layer on complexity and features.
Neovim strikes the best balance between simplicity and customization. I never hit a point with Emacs where I wanted to stop tinkering with config. Vis and Kakoune are fantastic, but there was always some little thing to build onto it that Neovim just does out of the box.
This is not some optimized setup for notey notes people who use PARA/Zettelkasten systems. The less I think about my notes, the better.
Linked notes are a hobby. The second you add links to your notes (Obsidian, Neorg, Vimwiki, Org-Roam, etc.), your notes become something to fiddle with forever. You can:
It’s the same issue Notion has. Notion isn’t a platform for organizing knowledge. It’s a platform for endlessly tinkering with your knowledge organization system, rather than accessing that knowledge, then getting out to be productive.
I very intentionally no longer use linked notes and I spend much less time pretending to be productive in Neovim.
I take notes in Markdown, which is simple and universal. If I wanted the (planned) kitchen sink features of Neorg, I’d go back to Emacs. The plugins I use are:
I made a plugin simple-denote.nvim to create notes. It does one thing: creates a new file in my notes directory with the naming scheme from the Emacs denote package. This scheme adds the date, time, title, and keywords (tags) directly to the filename like this
DATE==SIGNATURE--TITLE__KEYWORDS.EXTENSION
All fields are optional. For example, I don’t use the signature field:
20240601T174946--how-to-tie-a-tie__lifeskills_clothes.md
The Emacs package has features I don’t want like links and frontmatter. I’ve just stolen the file-naming scheme with all the lovely metadata built in.
I store my notes in a flat directory: ~/notes
. Once you add hierarchical structure it again because something to endlessly ponder, tinker with, and optimize.
The only way I access notes is via search, in particular fzf. I’ve tried all the “less bloated” alternatives like fzy, pick, skim, peco, and while some are slightly faster, fzf gives the most useful results. Some, like fzy, are faster because search terms much show up in order to get a result.
fzf-lua has all the features I want, although most search plugins would work for such a simple purpose.
I have my own wrapper around fzf-lua named denote-fzf-lua which just configures fzf-lua to show search results in a nice table specific for denote filenames. It also has a command to search note contents, which just uses ripgrep.
If you want a compromise between plain Markdown tables and Org Mode’s magic spreadsheets, you can try vim-table-mode. I use simple Markdown tables with table-nvim, which just does auto-formatting, tabbing between cells, and adding/deleting columns.
Img-clip.nvim is a simple plugin to paste (or drag/drop) images into Markdown files with automatic links. If you use a lot of images in markdown files, consider a GUI program like Emacs.
Here is an example ~/.config/nvim/init.lua file using the above plugins. It’s a complete configuration including the Lazy plugin manager, basic stuff like a theme, which-key, and status line, and Vim options for writing like word wrap and spell check. It saves notes as .md files in ~/notes. Press <Space>nn
to create a new note.
I don’t use a phone for notes, which isn’t an acceptable answer to how to sync notes for most. You can sync your notes with Syncthing (or git) and access them with something like Markor or Neovim via Termux. In theory, text files are just text files, but bubbly mobile interfaces don’t usually display directories of 100s of specifically-named notes nicely. That means using Neovim with sausage fingers on a touch screen, which also isn’t great.
Neovim wouldn’t be my first choice if I was creating mobile notes. Consider a cross-platform browser-based solution like Silverbullet, which is non-corporate and clearly influenced by Emacs.