lazyvim and obsidian.nvim
Obsidian and obsidian.nvim
I’ve spent most of my software career editing text in vi or its successors, vim or neovim. Not only do I feel comfortable in vim, but I find myself missing its functionality when I use other editors. While I generally enjoy using obsidian’s UI, I still reach for vim when I want to refactor or perform complex operations.
.vimrc has gotten quite crufty over the years, but it’s worked for me, so I haven’t bothered fixing it up. But last month I wanted to try obsidian.nvim, which allows for editing Obsidian markdown files in neovim. (Yes, you can edit markdown in any text file, but handy features Obsidian include wikilink autocompletion and listing backlinks to a given page. These features are available in neovim using obsidian.nvim.)
One issue I hit off the bat was that obsidian.nvim is written to be configured in
init.lua, and my
.vimrc was written in
vimscript. It’s possible to straddle lua and vimscript in the same config, but it can get a little messy.
One of the suggested methods of setting up obsidian.nvim is LazyVim, which handles a lot of the complexity for you. There’s a template repo to replace your
~/.config/nvim, and so many things Just Work.
I tried it and it’s definitely a lot more fancy than I need (I’ve spent years getting accustomed to bare bones setups so I can hack on mobile devices and remote servers relatively comfortably). I actually stopped using it for a while because I ran into some…
LazyVim drawbacks (and fixes)
There were two that stuck out at me:
- slow load times, since LazyVim updates all of the plugins on startup. This is probably fine for people who keep one vim window open all the time and open different files into it. By habit I exit and reopen vim all the time, since I prefer to use the shell directly, and
- the damn
sbutton is remapped. I use that all the time to replace a single character. So I needed to find a way to remap it, remove the offending plugin, retrain my muscle memory, or not use LazyVim.
I tried using packer instead. It was pretty complex to set up but worked around the issues I was facing with LazyVim. But I found that my config slowed nvim down, and working in the configs was clunky. Back to LazyVim.
I solved the above two LazyVim issues with some configuration tweaks. I turned off automatic updates and was able to disable the offending flash plugin to get my
s keymap back. I was also able to turn off the auto-quote-pairing feature I didn’t want.
Was it worth it?
I spent maybe a few days’ worth of effort on my new, cleaner neovim config. It was probably past time that I revisited these, and I love the ease with which I can edit my Obsidian markdown in either vim or Obsidian. It feels easier for me to wrap my head around and edit dense Obsidian markdown files, so it was super worth it for me.