I got a nice case of emacs pinky back in my early 30's. Had to take disability, get physical therapy to rehabilitate, etc. Been vi all the way since then.
I don't know how long ago "your early 30's" was, but for me this was never a question - I'm a die-hard vimmer, I use vim bindings everywhere. It's practical, why force myself to relearn my typing with every new tool I use if I really don't have to? Emacs, as it turns out, vims much better than any other concrete vim implementation. Even though I did learn some basic Emacs vanilla bindings, I'm still a vimmer. Vimming in Emacs never was a big obstacle for me.
I am primarily an Emacs user, using the standard key bindings (and a whole bunch of custom bindings and functions I've built on top of it over the decades, ctrl remaped to caps lock and no Emacs pinky so far).
But I am also 80% a NeoVim and Vim user for about 15 years now, and I consider myself quite proficient with Vim keybindings. The Emacs emulation is truly incredible, but the fact that Vim implementation quality varies wildly from environment to environment is extremely frustrating to me. For example, the jupyterlab-vim plugin is so jarringly broken in a handful of ways that it completely knocks me out of the flow of whatever I was doing when I encounter those emulation failures. IntelliJ's idea Vim plugin is a pretty decent one, but even there I have encountered the occasional issue [1][2][3]. Otherwise, I strongly agree with your point about learning one way to work with text and being able to leverage it most places.
Sort of a tangent, but I think this is why Emacs users tend to end up trying to do as much in Emacs as possible: It's not really the keybindings but the fact that everything in Emacs is a text buffer. Emacs owns the input and the output, and because everything in Emacs operates on text, you can do most everything in most every mode, to most any buffer content. One example of how powerful this can be is the ability to press a key and use dabbrev-expand to autocomplete shell input I'm typing based off the shell output of a prior command.
> Vim implementation quality varies wildly from environment to environment is extremely frustrating to me.
I know exactly what you're talking about. I am a die-hard vimmer and used vim plugins in every editor/IDE/browser/shell/multiplexer/WM/etc. I use vim bindings system-wide. I control my music, switch between apps, swap and resize windows - all without lifting a finger from the home-row.
I spent almost a decade living in IntelliJ. I had many direct conversations with Andy Vlasovskikh (he's the maintainer of IdeaVim then). Gary Bernhard (Destroy All Software, wat guy) once said: "there's no vim-mode, there's only Vim" in the sense that no single editor or IDE, not a single vim emulation layer properly works, they all have glaring deficiencies - to the point that it can drive any experienced vimmer truly mad.
With one notable exception. Evil-mode in Emacs is just wonderful. It's the best vim-emulation layer, to a certain degree it works even better than in Vim/Nvim. Weirdest thing - it makes you forget it's not a built-in feature of Emacs. I'm honestly very happy with it, because I don't know, otherwise, I might have never convinced myself to ever give Emacs a try.
These two ideas - vim modality and the grand idea of Lisp - are possibly the two best things that I am forever grateful to my younger self for forcing me to learn. I can't even comprehend being a professional software developer and not grokking them.
I definitely agree with this. Literally the only time I use lisp is when working on my Emacs configuration, but after almost 20 years of using it to write all sorts of functionality from big to small things, just having the exposure to lisp has really helped expand my thinking about programming in ways that working with e.g. C, Python, Rust may not have.
One last thing on the Vim emulation front: While I'm not a big fan of VSCode, the VSCode-Neovim extension[0] connects to an actual Neovim instance via Neovim's MessagePack-RPC API, allowing you to use real Neovim but native in VS Code. Pretty cool!
afaik, even with the extension it only affects the editor pane - any other windows still require tons of mouse use. I'm not mouse-nazi, but years of one-handed use of it have created tons of problems for me - in the neck, wrists and my back. All kinds of mice I tried didn't help - magic trackpad, vertical, ergonomic, etc. I'm sure this is pretty common.
I keep thinking of maybe I should learn to become ambidexter mouse user, and if I ever have to become a VSCoder (I pray not), I still may have to. For now, Emacs and vim and reduced mouse use are working.
[–] iLemming 23 hours ago
[–] wilkystyle 15 hours ago
I am primarily an Emacs user, using the standard key bindings (and a whole bunch of custom bindings and functions I've built on top of it over the decades, ctrl remaped to caps lock and no Emacs pinky so far).
But I am also 80% a NeoVim and Vim user for about 15 years now, and I consider myself quite proficient with Vim keybindings. The Emacs emulation is truly incredible, but the fact that Vim implementation quality varies wildly from environment to environment is extremely frustrating to me. For example, the jupyterlab-vim plugin is so jarringly broken in a handful of ways that it completely knocks me out of the flow of whatever I was doing when I encounter those emulation failures. IntelliJ's idea Vim plugin is a pretty decent one, but even there I have encountered the occasional issue [1][2][3]. Otherwise, I strongly agree with your point about learning one way to work with text and being able to leverage it most places.
Sort of a tangent, but I think this is why Emacs users tend to end up trying to do as much in Emacs as possible: It's not really the keybindings but the fact that everything in Emacs is a text buffer. Emacs owns the input and the output, and because everything in Emacs operates on text, you can do most everything in most every mode, to most any buffer content. One example of how powerful this can be is the ability to press a key and use dabbrev-expand to autocomplete shell input I'm typing based off the shell output of a prior command.
1: https://youtrack.jetbrains.com/issue/VIM-569
2: https://youtrack.jetbrains.com/issue/VIM-636
3: https://github.com/JetBrains/ideavim/pull/33
[–] iLemming 12 hours ago
I know exactly what you're talking about. I am a die-hard vimmer and used vim plugins in every editor/IDE/browser/shell/multiplexer/WM/etc. I use vim bindings system-wide. I control my music, switch between apps, swap and resize windows - all without lifting a finger from the home-row.
I spent almost a decade living in IntelliJ. I had many direct conversations with Andy Vlasovskikh (he's the maintainer of IdeaVim then). Gary Bernhard (Destroy All Software, wat guy) once said: "there's no vim-mode, there's only Vim" in the sense that no single editor or IDE, not a single vim emulation layer properly works, they all have glaring deficiencies - to the point that it can drive any experienced vimmer truly mad.
With one notable exception. Evil-mode in Emacs is just wonderful. It's the best vim-emulation layer, to a certain degree it works even better than in Vim/Nvim. Weirdest thing - it makes you forget it's not a built-in feature of Emacs. I'm honestly very happy with it, because I don't know, otherwise, I might have never convinced myself to ever give Emacs a try.
These two ideas - vim modality and the grand idea of Lisp - are possibly the two best things that I am forever grateful to my younger self for forcing me to learn. I can't even comprehend being a professional software developer and not grokking them.
[–] wilkystyle 7 hours ago
One last thing on the Vim emulation front: While I'm not a big fan of VSCode, the VSCode-Neovim extension[0] connects to an actual Neovim instance via Neovim's MessagePack-RPC API, allowing you to use real Neovim but native in VS Code. Pretty cool!
0: https://github.com/vscode-neovim/vscode-neovim
[–] iLemming 25 minutes ago
I keep thinking of maybe I should learn to become ambidexter mouse user, and if I ever have to become a VSCoder (I pray not), I still may have to. For now, Emacs and vim and reduced mouse use are working.
[–] hobo123 9 hours ago