On a late night some twenty or more days ago, my friend Juang contacted me on Discord.
On Wed, Jun 03, 2020 at 01.20 AM @broerjuang wrote:
On Wed, Jun 03, 2020 at 01.20 AM @ybbond wrote:
He knew about me ranting on Twitter two days earlier for not getting invitation to try Roam Research. He is also a fellow Vimmer1, and I think he knew that I will think twice before using Emacs. I decided to to try it today.
First, I installed Emacs. If you are on macOS, it is highly recommended to use emacs-plus:
brew tap d12frosted/emacs-plus brew install emacs-plus --with-modern-icon-cg433n ln -s /usr/local/opt/emacs-plus/Emacs.app /Applications/Emacs.app
Then install Doom Emacs:
git clone https://github.com/hlissner/doom-emacs ~/.emacs.d ~/.emacs.d/bin/doom install
I know from experience that I should try the vanilla version of any software before modding it. For Emacs, I have known its basic navigation key bindings. I even use the basic
C-e instead of arrow keys to navigate most text editor that don’t support Vim key bindings. Even you can use Emacs bindings for the form in the internet with Web Browser. Doom Emacs use Evil mode key bindings by default, that means Vim-like key binding is usable from the start.
I make myself comfortable with Doom Emacs for an hour, then installing Org-roam. With Doom Emacs, Org-mode is installed by default and I can add
+roam flag in
init.el to install Org-roam. You can also follow the main installation method from the docs.
I also installed the recommended packages
org-journal. The former is a tool to open any file by searching its title or content text. The later is a complementary framework to make a good timeline based journaling à la Roam Research. With the tool ready, I try making a daily journal with the shortcut
Evil mode is actually an acronym for Extensible Vi Layer. Its key bindings really makes me feel at home, but it still has some quirks. My first problem is with soft wrapped text. I mapped
gk to replace default
k in Vim, it enables per visual line movement on wrapped text, instead of per line number.
evil-respect-visual-line-mode option, but it doesn’t work in the case of delete whole line with
dd command. With that option enabled,
dd will only delete the current visual line. I installed evil-better-visual-line that try to solve this issue. There is still some quirks, but better than before.
My second problem is clipboard management. I expect a Vim-like environment to not mess with my system clipboard each time I delete, yank or change any text with Vim key bindings. I want the editor to use its internal register for Vim commands, and only use clipboard if I explicitly use
⌘+v. For this issue, I asked on Doom Emacs’ discord channel, and got the solution from this this guide.
I use FSNotes to keep my notes. It is a great program inspired by nvALT and created by a single person (check out the Patreon page!). It features wiki linking and I’ve tried using Zettelkasten paradigm, even though not too successful. I have 300+ good Markdown files in it, guides, personal notes, quotes from internet, many topics.
My next move after creating journal with Org-roam is… migrating the Markdown files to Org files. I migrated 2 files at first, then compared between my notes on Org-roam with the one in FSNotes. I actually liked the interface of FSNotes, but the automatic back links, and the Vim bindings… I went “what the hell” and migrated all of those 300+ Markdown files. It took around 2 hours of my afternoon, but I enjoy it.
There is still issue though.
I like to do things on my Macbook Pro. I even bring the laptop everywhere. I use it like anyone else use smartphone, as communication tool, scrolling social medias2, read articles and news. But I’d still like to be able to see my notes on my iPhone or iPad, and this weird *.org file format hindered me on doing so.
FSNotes has iOS app that synchronizes instantly. Looking on the App Store, Reddit and DuckDuckGo, I only find this app called Beorg. By itself, Beorg is a good TODO and Agenda manager based on Org-mode. It won’t accept *.org file outside its iCloud directory, so no go. Other alternative is to install terminal emulator app and Emacs within, but it won’t be a pleasant touch experience.
Org-mode has a weird syntax to display verbatim text and it doesn’t have syntax for displaying inline code or block code. As a programmer that often store note related to coding, I think this is a minus.
Thinking long and far, I decided to keep using Org-roam, while waiting to find a good iOS app that allow me to read my notes. Maybe it’s time to make my own iOS application that does just that? Interesting.
Let’s stop worrying and start loving
Emacs Org-mode! It is overall a good framework to store notes, add Org-roam and it became many times better! Don’t worry, (Neo)Vim is still my daily driver.