Jesse Millwood writes: I was more motivated to get it solved because where for you it was a pain-point, for me it was a show-stopper:-) Jonas' help got me over the hump. Stepping back, yes, transient, especially when encountered first via magit looks complex. But that complexity comes from how much more complex git is --- what transient does well is to make the large bucket-loads of git commandline options more tractable. It's also a very good attempt at bringing features of "direct manipulation interfaces" to the emacs world --- I use the term "direct manipulation" intentionally, that is actually what people mean when they jump to a GUI. But transient shows that it is possible to implement such interfaces within the Emacs paradigm by stretching the boundaries a little, and where we do feel discomfort with respect to over-stretching those boundaries (losing isearch is an example), we can claw it back. Note that things like dired in emacs are also direct-manipulation interfaces --- they just preserve *all* of the goodness of Emacs. The other package that is similar to transient with many advantages is hydra --- though I haven't seen any hydras as complex as the transients that Git forces magit to require. > Oh wow, not being able to search that buffer has been my main pain > point of transient. Thank you so much! > > On 2021-08-04 2:56 p.m., T.V Raman wrote: > > Philip Kaludercic writes: > > > I recently discovered thanks to the transient/magit author that once you > enable navigation via arrows in transient popups, it also gives you > isearch of the transient. We then discovered a bug where using isearch > to find a transient option and pressing enter wasn't working, but > Jonas has since fixed that and it works. > transient-enable-popup-navigation is a variable defined in ‘transient.el’. > > Its value is t > Original value was nil > > You can customize this variable. > This variable was introduced, or its default value was changed, in > version 0.2.0 of the transient package. > > Whether navigation commands are enabled in the transient popup. > > While a transient is active the transient popup buffer is not the > current buffer, making it necessary to use dedicated commands to > act on that buffer itself. If this non-nil, then the following > features are available: > > - "" moves the cursor to the previous suffix. > "" moves the cursor to the next suffix. > "RET" invokes the suffix the cursor is on. > - "" invokes the clicked on suffix. > - "C-s" and "C-r" start isearch in the popup buffer. > > > Rudolf Adamkovič writes: > > Philip Kaludercic writes: > > On the other hand something has always felt off about > transient, in > the sense that it is breaking some expected behaviour or couldn't > pin-point yet, but just unconsciously stumble over. > > > This is exactly how I feel about the "modern" interfaces in Emacs. I > reported a bug in Embark recently, and because I could not select and > copy the text, I ended up re-typing the text that was right in front > of me in Emacs. Say what? For me, Emacs is a program where I expect to > never waste time re-typing anything. Magit has a similar feel to it, > and I can never be sure if the program will allow me to select text in > the diverse parts of its user interface. In my opinion, such > uncertainty is bad for power users. I would expect this from Apple or > Microsoft software, because their latest “UX designers” surely know > better than anyone, but in Emacs? > > > I am not sure if this is something specific to modern interfaces, or > rather an overreaching when it comes to binding. After a while I managed > to "pin-point" what was irritating me, and it was the missing ability to > search (something that I seem to do so passively that i didn't even > notice it). Having C-s work is especially useful when there are a lot of > transient options. This cannot be solved by binding C-s manually, > as just because that might work for me, there is some other behaviour > someone else is expecting (eg. your example of selecting and copying > text). > > What I understand transient and certain other packages do is basically > override most keys, even those it doesn't use. This is more invasive > than special-mode, that just doesn't bind self-insert-command to most > keys. What I wonder is why this is done/why it might be necessary. > > R+ > -- Thanks, --Raman(I Search, I Find, I Misplace, I Research) ♈ Id: kg:/m/0285kf1 🦮