Over the years I’ve seen a bunch of games aimed at getting used to vim-style navigation, but not come across anything emacs-centric.
Alternatively I suppose I could just got evil, but as I’ve not used emacs practically I’m a bit confused how you don’t end up with a hybrid of home row touch typing plus having to wander about for whatever chords remain, which seems more like the worst of both worlds rather than the best.
As others say, begin with the built in tutorial. It should be as simple opening Emacs and pressing enter. If for some reason it's not that simple, open Emacs and press Control+h followed by 't'. The tutorial walks you through the basics. The tutorial mentions C-h v. There is also C-h f for functions.
Next, when you're ready, learn Emacs Lisp. You can read An Introduction to Emacs Lisp online or within Emacs (using C-h i eintr).
Otherwise, hack and extend it. The joy of Emacs is that it presents you with programming problems at the threshold of your understanding. You decide whether to dip in. It provides you amazing resources to do it.
I hope you find a speedy recovery to your injury and have fun with Emacs.
install it:
M-x package-install minesweeper
play it: M-x minesweeper
movement (control key optional): n, p, f, b
bigger movement across the field: M-f, M-b, C-a, C-e, M-<, M->
step on unit: Space
step on all surrounding units: c
mark a mine: m
or
C-h t
How fun it is probably varies by person, but I found it kind of enjoyable, also coming from vim. One of my favorite things emacs had that vim doesn't is a simple default bind to scroll the "other" window, good if working on two text files or if you have documentation open in the other one. I'm back on (neo)vim these days, but I learned a lot of neat stuff using both spacemacs and emacs with my own config, and they influenced my vim config later on. I have a bunch of custom binds using space as the leader key in vim now. Both duplicates of default binds like saving the file, and new macros/functions I use a lot (such as deleting the second line from two side-by-side files and saving both).
If you're into streams or stream recordings, watching Xah Lee can also be insightful. I learned about M-x describe-char from him and I consider it a killer feature. One of my very few neovim plugins I use is to get a similar thing outside of emacs. Nice for identifying emoji you can't see clearly (or want to know the shortcode for) or checking if some weird zero width stuff is in your text or if that colon or period is actually a unicode lookalike.
I'd recommend trying to write small programs in elisp to get familiar with emacs. - Message the current buffer's path - run an async command - copy the line in the center of a buffer and restore position - make a simple transient for command dispatch
I'd start with doom-emacs and if you feel your config is too cumbersome, you could move to a custom setup with elpaca and evil. Doom is good enough for most people and has config for most languages. The leader bindings in doom are pretty decent, SPC f f is much more preferable to Making your own transient menu will be very helpful if you're planning on picking up Emacs IMO. If you need something that works everywhere, then unless you're okay with the default settings you're going to have to lug your config around with you. Evil can be installed through package-install trivially, so that's not an issue.
Get together with experienced users in person and have them watch you edit. That's it.
17 small length video tutorials of great quality (as informative as fun)
You learn one chord: Ctrl-h m, to describe the keys on the mode you are.
For instance, run Alt-x eww (intro), now you are at Emacs' web browser. Press ctrl-h m to show the keys for eww.
Also, basics to navigate with multiple windows:
ctrl-x 0: close the other windows
ctrl-x 1: set the current window as a single, enlarged one.
ctrl-x b: switch between buffers
ctrl-g : cancel, everywhere.
I personally love Emacs and have lost interest in learning anything else, but “fun” isn’t the right word for the learning curve. “Pain” might be closer to the mark.
https://stackoverflow.com/a/11464768/3529997
Additionally, there's something called "Easy mode", started from vim -y or evim. It's a more radical departure than just starting in insert mode: it has some key bindings matching other editors', and normal-mode commands are done by hitting Ctrl+O instead of Esc. As a consequence of that, being in insert mode is the rule rather than the exception.
Also, if you decide to use evil (I like it), use evil-collection as well to make it play nicer with other functionality.
I’d suggest, in order:
1. Do the tutorial
2. Read Mastering Emacs (for some higher level design philosophy stuff)
3. Install Doom
C-h t RET
and then touch notes.org && emacs notes.org
and then futz around! The tutorial should tell you what C-h v and C-h f do, so those will be handy. I like helpful.el for a nicer/more thorough interface that's not quite info, and I really like vertico/consult/marginalia for making M-x nicely searchable with hints and stuff.For navigation, i like devil-mode, avy, eglot/xref, transient, hydra.
I don't really like starter kits like doom, but they're popular and i guess people like them.
package.el is fine for installing packages, but i use straight.el or elpaca.
https://www.amazon.com/Land-Lisp-Learn-Program-Game/dp/15932...
I keep a journal in Org Mode, and that's how I've learned to use emacs.
https://www.youtube.com/watch?v=urcL86UpqZc
Interview with a GNU/Linux user - Partition 1:
https://www.youtube.com/watch?v=lE4UXdJSJM4
Deldo - Vibration Control and Teledildonics Mode for Emacs:
It's pretty wonderful. Does a lot of the work for you.
Use the emacs keybinds to play it.
Imagine if there were a browser or a graphics editor where you could change any aspect of it, not just the UI - the look and feel of the elements, but the entire behavior of each element. Imagine if you could "screenshot" the current workspace in this "hacky, recursive Photoshop," then erase, repaint, and resize the panels, menus, buttons, etc., apply it, and then suddenly the whole UI transforms. Emacs feels like that, you can change just about anything - how it looks, how it behaves, and even how it listens and speaks. But to get there, you need to know Emacs Lisp.
So, my suggestion to understand Emacs is to learn Emacs Lisp. If you have never used any Lisps before - Clojure, CL, Fennel, or Scheme, there are two fundamental things you need to understand first. This is vital because without these, it's almost guaranteed to get frustrated. First, you need to learn to love the parenthesis, embrace the structure, and learn structural editing. Second, you need to understand the REPL-driven way of writing Lisp programs. Other languages have REPLs, but Lisp REPLs are different. Grasping the way to evaluate any expression at the point is essential.
After that, I suggest starting to write Emacs Lisp. Pick a problem to solve and try to figure out how to do it in Elisp. Start with something small, maybe not even very practical, like uppercasing every second letter in a paragraph. Eventually, you will learn how to use built-in help, debugger, and profiler and maybe even write your own Elisp packages.
The value of learning Emacs Lisp is that it forces you to develop a "hacktistic" mindset, where you are certain that any aspect of your computer workflow - any program, any interaction can be changed. You will no longer have to agree to "the status quo." Instead of helplessly yelling at your computer and hitting the screen when things don't work as expected, you will gain insight into knowing why things don't work. This wisdom might not alleviate the pain, but it will give you the insight.
Don't try to learn how to stay afloat on the surface; learn how to swim deep in the ocean - it will open a world of possibilities.
And as other people mentioned, the big part of emacs is on the extensibility of the system itself, everything is manageable by the lisp engine as emacs is the lisp engine more than a simple editor.
So my recommendation to learn emacs in a fun way is to install evil, open a buffer, bind `eval-buffer` and `eval-last-sexp` to something you feel comfortable, and write your own game to learn what emacs can do.
Also, consider using god-mode. It's an Emacs package that allows you to reduce the number of key chords you use by entering a command mode where single keys correspond to commands, similar to Vim.
Regarding your concern about using evil-mode, it's true that it might feel like a hybrid of Vim and Emacs. However, many users find it to be a good balance that leverages the strengths of both editors. You could customize it to your liking and gradually add Emacs keybindings as you get comfortable.
Remember, the key to learning Emacs (or any editor) is gradual practice. Don't rush yourself, and take the time you need. Best of luck on your journey!