Devil Mode for Emacs
susam.github.io
susam.github.io
A few years ago someone mentioned they map "jj" to escape in vim and I've been doing it ever since. Have you ever had to type two j's' next to each other? I haven't in several years now. :D Only problem is inserting a dozen 'j's before I realize what's going on when I'm on a remote machine...
("It's free real estate..." ;) )
I've used Spacemacs for a while, and was quite happy with it, but I wanted a more lightweight editor for the terminal, something I can use on servers and embedded devices without installing an entire Emacs and a zillion packages. So my Emacs setup is much more standard nowadays, and I use mg[1] otherwise.
https://github.com/doomemacs/doomemacs
Also, don’t use pinky for controls —— home row mods all the way.
(Admittedly, pedals work well only in a desk scenario. I can't see myself logging them to a cafe.)
They're both good projects.
Is that just personal preference or is there some reason to avoid pinky control?
Vim also has this feature built-in: :e scp://user@host:port//path/to/file
This way, your config can live exactly where it should: on your local system.
https://emacs-lsp.github.io/lsp-mode/page/remote/
Best to add the language server to your application’s runtime anyway.
But for magit or vc you’ll need a remote git and repository, yes.
In my case, I can actually do quite a bit of exploratory debugging using my local Emacs editing files on a copy of the production setup via ssh. I am also leveraging compile mode to run scripts restarting test servers this way.
I use keyword completion. It always works, it’s never “wrong” or misconfigured, and it’s easy to predict what it does. Just my 20 m$.
But if the status quo remains as it was in 2022 when I last used codespace, it is a lot of configuration and there might be some things you need to turn off (like for me git-gutter) to get a tolerable experience.
And to a certain extent the new Helix editor which uses space and context sensitive popup menues for discoverability to great effect IMNHO:
Give me a way to set and organize keybinds, good documentation, and nothing else. Every time I need a new keybind, I must explicitly decide what it will be. Inconvenient? So is learning the default, or worse, figuring out how my unique config accommodates that default.
It would be more work now for less work later. It would also move the work of UI/UX design into the same step as UI/UX learning; which I consider the most sensible place and time to do that work.
If customisability were really as available as it should be, it would be trivial to change between configurations. After all, the only technical hurdle is that most software is built on UI/UX assumptions.
I was a hardcore terminal Emacs and tmux user, but have since switched to GUI Emacs and multi-vterm and was able to retain much of my tmux muscle memory. I now am routinely editing files on a handful of different machines every day, and it's mostly great. I still have to call tramp-cleanup-all-connections to deal with the occasional hangs after a few days of idle time, but I'm pretty happy.
My dream is a doesn't-resemble-vim modal editor from scratch. When I want more functionally, I will give it an intentional home in my normal mode config.
And seriously, emacs does so much! You won't even know what you don't know if you don't use the work others have done creating the UI (keybindings and shortcuts). Unless you really want to read all the source code yourself too
I have no clue what you mean. What is a mistake? In the fly? I'm talking about my permanent (until I intentionally change it) config, not some temporary real-time thing.
> What might make perfect sense at first will seem really dumb once you've added 20 more shortcuts, and then you'll have to either stick with it or start over and relearn.
Yes, but the alternative is starting with someone else's mistakes. I would rather deal with my own, because at least then I know what they are.
> You won't even know what you don't know if you don't use the work others have done creating the UI
Isn't that the status quo? If you want to use an unfamiliar feature, looking up the default keybind should be no easier than looking up the function itself.
[1] https://github.com/meow-edit/meow
[2] https://github.com/meow-edit/meow/blob/master/TUTORIAL.org#k...
That's funny, I use the defaults because I do use home row. That said, I do use Dvorak, so that may explain why things seems to work better for me than the average other user.
It's really cool, to say the least. Ive been seriously considering using emacs as a base for building a UI for a project I'm planning that is heavily text based, would be useful since I could define a default keymap and leverage emacs to allow advanced customization without having to clutter the base user experience.
I gave the Emacs keybinds a year long chance, got a split keyboard with Emacs-friendly custom keymap (Alt under my left thumb, Ctrl under my right thumb) and life was pretty good, but I can now say that vim editing is hands down better than any Emacs incantation.
That said, vim+Emacs together are even better than each in isolation. Nothing beats modal editing, with access to C-a, C-e, and other Emacs movement keys to be used in INSERT mode. The default evil config should promote this hybrid approach, rather than trying to turn Emacs into vim.
Devil mode looks interesting, but still not as good as a true modal experience.
I also like the audacious stealing of a common key like COMMA.
setxkbmap -option shift:both_capslock -option compose:rctrl-altgr -option ctrl:nocaps -option lv3:ralt_switchThere are other keyboard layouts out there with the same concept too: https://github.com/workman-layout/Workman/tree/master/mac#wo...
Outstanding. Well done!