Given enough time, the keybindings make sense.
When I heard about 'chords', it felt like:
Before you learn about emacs, we're going to learn about music.
Once you start doing it, you come to understand the modifier key and letter are a bit like a duo, and things starts to get better as you invent stories of how this function came to be.
Later you find M-x + ivy/counsel or helm and realize things are going to be ok. By then you know a few chords and will maybe survive to reach org-mode.
Still though, It's a trek. And I often get C-x C-c / C-x C-s / C-c C-x mixed up, and I think one of them closes emacs. I stay away from those guys.
Is when the emacs docs themselves use the keybindings to reference functions that have names, and just happen to be mapped to some function somewhere, by default. Now we've got a plethora of packages taking over each other's finger territory.
Please reference function names!
SPC m m d t == localleader + m (as in roam) + 'd'ate + 't'oday.
localleader == leader + 'm'ode as a prefix for some mode.
I presume the 'r' after localleader is some other obvious thing.
Typing SPC m and reading the which-key popup reveals that it is 'r' for 'r'efile.
SPC m s p u/d - set org entry priority seriously.
I suppose there's `SPC m p a/b/c` - set org entry priority.
read some doom docs, recently, was annoyed to see more of this
communicating the function name is super important for sharing the namespace
the keybinding is useless
maybe an extension to share what the keybinding's function is meant to be, and what it is on my machine in that mode, and what it is to the user? like a keybinding-source-map?
no, the answer is just share the function name, and let users learn their own
keybindings via M-x
is there are counsel for searching by keybinding? at least an index that's more accessible than describe-mode in a little baby buffer?
I forget this every few months, but then some big renaming happens, and it's time for a namespace to graduate.
But what was that workflow again? I knew it better in vim.
When first getting started with clojure and repl-driven development in emacs, there are many hang-ups.
It's slow, the keybindings to get there are as weird as emacs's, errors/feedback show up in a handful of places, the repl buffer is small and takes up screen real-estate...
Just about all of these have a solution, if you're looking for that beautiful repl-bliss.
One solution came when I started using treemacs.
Emacs is a text-editor that is quite old, but has been worked on continuously since then.
Emacs is special because it is very dynamic. It is implemented in lisp, which allows interactive development via the REPL, giving you tons of power and control. It is a double-edged sword, in that you must take care to keep your systems running smoothly. Tools are everything, so keep your knives sharp.
Emacs can be very difficult to learn, especially in a vacuum. I hope to document the things that have been useful to me.
Some emacs notes:
Emacs has a pretty high onboarding cost. Getting started can be tough, depending on your expectations and whether or not you are close with someone else already familiar. Getting help and seeing emacs used well in person makes a huge difference in learning and onboarding time. If you can, I recommend getting exposure to how it can be done!
As with most highly useful and old tech, there is already a community of people and resources that provide immense value. A big part of getting started is taking the time to collect and curate your resources, and setting yourself up for the long haul. To me, that means finding useful blogs, email newsletters, subreddits, slacks/discords/ircs that you can lurk on. This lets you start tracking the progress and current conversations in the community over time, and you'll start to learn that there is a wide-spectrum to each community. Just like the javascript ecosystem, you really just want to start running with the pack, and soon enough you'll be moving on to learning the next thing with everyone else.
Here, I'm collecting useful emacs docs and resources.
See also: