Emacs was always modal. Emacs is inherently a modal text editor - keychords are modal, transients are modal, isearch is modal, repeat-mode is modality. The only thing the idea of vim-navigation brings on top of all that is a simple, structured and memorable language/grammar to deal with modality, that's all what it is.
Both approaches are modal; Vi just codified its modality into a more learnable, linguistic system while Emacs distributed its modality across context-sensitive mini-languages.
Emacs has this same power scattered throughout - the kill-ring, rectangle operations, keyboard macros - but Vi's genius was packaging it into a coherent, immediately graspable system that feels less like using a computer and more like speaking a concise language about text.
The best thing about learning that language is that you can apply it anywhere where keyboard input is still relevant - your browser, your terminal, your entire system - e.g. you can control your music, jump between apps, navigate between windows, etc. using only the home row keys.
> The best thing about learning that language is that you can apply it anywhere where keyboard input is still relevant - your browser, your terminal, your entire system - e.g. you can control your music, jump between apps, navigate between windows, etc. using only the home row keys.
I guess maybe with some configuration? A lot of emacs keybindings work out of the box in most text boxes I can think of, including this one I'm typing into right now.
If the justification about VI is that it's more learnable, then that's hardly a reason for me to switch - I've already learned emacs.
Although I do think it's a stretch to call it "immediately graspable"
> that's hardly a reason for me to switch - I've already learned emacs.
Most people think of keyboard input as a linear, one-dimensional approach to text editing, that's what you're doing here. Vim-style navigation offers something fundamentally different - a spatial "language" that maps directly to how we conceptualize our workspace.
- C-x 4 becomes a prefix for file operations in other windows
The logic breaks down quickly. There's no consistent mental model connecting these commands. C-x 4 abandons the splitting metaphor entirely, becoming a namespace for "other window" operations rather than a window count.
Doom Emacs's vim-inspired approach creates a coherent spatial language:
- SPC w s - split
- SPC w v - vertical split
- SPC w h/j/k/l - jump left/down/up/right
The hjkl directional keys mirror vim's movement commands, creating a consistent spatial metaphor. Your fingers learn to "think" in terms of physical direction rather than arbitrary key combinations.
This spatial approach transforms window management from memorizing disconnected shortcuts into developing spatial intuition. Instead of thinking "what was that split command again?", you think "I want to move right" and your fingers naturally press 'h'. The keybindings become an extension of spatial reasoning rather than abstract symbol manipulation.
This principle extends beyond window management - vim's entire philosophy treats text editing as navigation through dimensional space, making complex operations feel natural and memorable.
And like I said, this model can easily be extended beyond just the text editor - you can navigate things in your browser, terminal, etc. Why would I even try to learn and memorize new keyboard shortcuts e.g., every time I install a new music player? I can control volume with j/k and previous/next song with h/l in any music player.
> I do think it's a stretch to call it "immediately graspable"
But it is though. It is very simple grammar. Anyone who's not mentally deficient can understand and learn it quickly. Building the muscle memory takes time, yes, but the idea itself is absolutely graspable. I remember, I hated myself for about a week. After that, my keyboard life was never the same.
Emacs was always modal. Emacs is inherently a modal text editor - keychords are modal, transients are modal, isearch is modal, repeat-mode is modality. The only thing the idea of vim-navigation brings on top of all that is a simple, structured and memorable language/grammar to deal with modality, that's all what it is.
Both approaches are modal; Vi just codified its modality into a more learnable, linguistic system while Emacs distributed its modality across context-sensitive mini-languages.
Emacs has this same power scattered throughout - the kill-ring, rectangle operations, keyboard macros - but Vi's genius was packaging it into a coherent, immediately graspable system that feels less like using a computer and more like speaking a concise language about text.
The best thing about learning that language is that you can apply it anywhere where keyboard input is still relevant - your browser, your terminal, your entire system - e.g. you can control your music, jump between apps, navigate between windows, etc. using only the home row keys.