Improving Emacs Isearch Usability with Transient
yummymelon.com
yummymelon.com
Thank you for sharing, I found the article very useful.
Also this blog post makes me want to make me transform my embark to using transient
I somehow RTFM'd three times, allegedly diligently and yet I still missed a lot of spots. And emacs development pace increased, so I'm due to a 4th RTFM :)
Edit: I just did that and when I called count words to count lines that are in the buffer, Emacs just froze
Edit: 39180 functions. Not that hard to memorise ;P
I’d say it’s what makes magit.. magit. The whole command composition interface (almost like chords) is what drives people to it. The looks and some fringe M-x commands are… just there
I have used which-key with the three packages I just mentioned for as long as I have been using Emacs, and this is how I've always seen its role.
Now you realise you've put those commits on your new master branch but etiquette says you should put them on a separate branch. A couple of keys creates a "spinoff branch". Magit automatically creates a new branch at that point, sets the upstream of that branch to the old upstream (e.g. origin/master) and resets the old branch (master) to its upstream.
Now because your remote is set as "push default" you can easily push to it. Magit will now show you if upstream (the other remote) has diverged which means you press a couple of keys to rebase on to upstream then force push to your fork.
And this doesn't even mention things like doing an interactive rebase. Magit helps immensely there. The diff "dwim" is useful too. The list goes on.
i'm also curious about having magit extensions, as many people say, git lacks some stuff as UI, and they may fit very well around magit
Or, just use the magit-forge package by the same author and run `forge-fork`.
BTW, this isn't only a problem with `isearch`. I suspect that other multiple-simultaneous-keypresses tend to be hard on most people's hands. Which can be bad for your typing-oriented career, and for other humans uses of hands.
Some alternatives in Emacs:
* Try to press the modifier key(s) with one hand, and the non-modifier key with the other.
* If the modifier(s) require contorting in uncomfortable ways, consider whether moving from home row is easier.
* When an Emacs key sequence includes the "Meta" modifier (`M-`), consider whether pressing and releasing the Esc key first, and then doing the remaining key/combo, is easier.
* Make a better key binding. Examples:
(global-set-key [f5] 'call-last-kbd-macro)
(global-set-key [f12] 'undo)
(global-set-key [XF86Back] '(lambda ()
(interactive)
(other-window -1)))
* Learn fancier Emacs features which might mean not having to type this or not as often (keyboard macros is just one).* Use or write a function or package that automates the higher-level task. For writing your own, you can learn from one of these two manuals, and just start experimenting in your running Emacs: https://www.gnu.org/software/emacs/manual/html_node/eintr/ https://www.gnu.org/software/emacs/manual/html_node/elisp/
This is the biggest problem I see with most people’s typing: they always want to press the whole key sequence with one hand, then they complain that it hurts! :)
Maybe not enough people took a typing class in school.
[1] https://github.com/emacsorphanage/god-mode [2] https://discourse.doomemacs.org/t/what-are-leader-and-locall...
I swear I had to read that twice to stop seeing "alternatives to Emacs". I'll see myself out now.
(Doom Emacs is really nice though, and modal editing does help with key bindings, just as a sibling comment points out.)
If only software allowed to be shipped with a different set of defaults or more convenient alternatives...
Default keybindings are a curse.
Software in general would be so much better if keybindings were always explicitly part of the user's configuration. Despite that being technically the case in Emacs, the reality just isn't as practical as it should be.
Every default keybinding brings an assumption into UI/UX. That assumption can never be removed: it can only be moved.
Plus things like C-c C-f and similar working throughout many different elisp packages in a predictable useful way is super valuable.
You could extend that so that if default is different from the last time it was loaded, you could let the user know, and then replace with any user defined one. (Letting user know is mainly so they can decide if new commands need mapping.)
That said, I'd hazard this is not that useful?
Are you telling me you actually use 2,400 key bindings?
If you do, then would it really be that hard to invent them yourself?
If you don't, then what good are all of these keymaps actually doing you?
I'm not advocating that you should have to reinvent your keymap. I'm advocating that you should be able to.
Emacs is the very best case available: it's technically possible! Nearly everything else demands we learn its own opinion, instead of implementing our own.
And don't force them not to, either.
But you still have to redo the keymaps defined in every package you use; and you have to know what they are in the first place.
You can replace single bindings one at a time easily enough. You can't change them all without a two-step effort. We could eliminate step one for anyone, like me, who's is interested.
There's a reason that evil-mode took so much effort to put together, and it still has serious edge cases. I want to make my own original modal editing keymap. I have tried many times, and given up. It's too much work to both see what to change in the first place, and to remove the default; and that's what it takes to just get started!
Picture this: you are learning to use Emacs for the very first time. What are you learning? Today, the answer is C-n, C-x C-s, etc. My alternative is to learn the functions instead. If you don't have an opinion about what key should be bound, then use someone else's config. This way you can actually comprehend your entire configuration! It doesn't need to be mandatory, but I would love the opportunity.
Things are super complicated with this general idea, though, as don't forget that the standard letters are also basic keybindings. People can and do take advantage of that fact. Right? I'm assuming you would not want those to be special cased here?
Emacs is, by far, the best case. Even if I did get Emacs to behave exactly how I wanted, I can't apply that to any of the other software I use.
The level of introspection you can do in emacs is something I wish all programs had. Being able to ask the program, "what were the last commands you saw?" and "what would you do if I did {something}" are huge.
Thus, Emacs originally was a set of macros to standardize key bindings across multiple editors that existed at the time, exactly as GP said.
So you'd open up Emacs, and the only thing you'd be able to do is insert and delete text? No "beginning-of-line", no "find-file"? That seems...even less newbie-friendly than Emacs currently is.
You may like it fine, but I find it in my way more often than not.
What does it truly mean to be newbie-friendly? Are you trying to teach them the functionality of your software, or your opinions about how to use it? Why not teach newbies (find-file) first? Would that really be so bad? Why not give them both options?
Imagine if evil-mode could start with a blank slate. Wouldn't that be easier?
The problem is that every package is designed to integrate with regular default-Emacs. If you are using evil-mode, that means every package presents its own edge case.