* Adding a "quick-help" menu @ 2022-09-16 15:43 Philip Kaludercic 2022-09-16 16:11 ` Sean Whitton ` (4 more replies) 0 siblings, 5 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-09-16 15:43 UTC (permalink / raw) To: emacs-devel There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that pops up a buffer with these contents: --8<---------------cut here---------------start------------->8--- FILE BUFFER WINDOW MARK/KILL MISC C-x C-c exit C-x C-k close C-0 only other C-space mark C-_ undo C-x C-f find C-x k other C-1 only this C-w wipe C-s search C-x C-s save C-x C-b list C-2 split two C-k close C-r r-search C-x s all C-x b switch C-x ^ enlarge C-y yank M-% replace C-x i insert C-x g goto ln C-x o other win C-x C-x swap M-q reformat ______________________________________________________________________________ C-h q toggle quick help | C-h t show tutorial | C-h b show key bindings --8<---------------cut here---------------end--------------->8--- I notice that in GNU Emacs C-h q is bound to `help-quit', which does nothing if you are not in the help command loop. Would having a "quick-help" menu along these lines for common operations make sense for GNU Emacs as well? [0] https://github.com/troglobit/mg ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 15:43 Adding a "quick-help" menu Philip Kaludercic @ 2022-09-16 16:11 ` Sean Whitton 2022-09-16 16:24 ` Stefan Kangas ` (3 subsequent siblings) 4 siblings, 0 replies; 95+ messages in thread From: Sean Whitton @ 2022-09-16 16:11 UTC (permalink / raw) To: Philip Kaludercic, emacs-devel Hello, On Fri 16 Sep 2022 at 03:43PM GMT, Philip Kaludercic wrote: > There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that > pops up a buffer with these contents: > > FILE BUFFER WINDOW MARK/KILL MISC > C-x C-c exit C-x C-k close C-0 only other C-space mark C-_ undo > C-x C-f find C-x k other C-1 only this C-w wipe C-s search > C-x C-s save C-x C-b list C-2 split two C-k close C-r r-search > C-x s all C-x b switch C-x ^ enlarge C-y yank M-% replace > C-x i insert C-x g goto ln C-x o other win C-x C-x swap M-q reformat > ______________________________________________________________________________ > C-h q toggle quick help | C-h t show tutorial | C-h b show key bindings > > I notice that in GNU Emacs C-h q is bound to `help-quit', which does > nothing if you are not in the help command loop. Would having a > "quick-help" menu along these lines for common operations make sense for > GNU Emacs as well? I guess we should ask some newbies. -- Sean Whitton ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 15:43 Adding a "quick-help" menu Philip Kaludercic 2022-09-16 16:11 ` Sean Whitton @ 2022-09-16 16:24 ` Stefan Kangas 2022-09-16 16:48 ` Philip Kaludercic 2022-09-16 21:03 ` Philip Kaludercic ` (2 subsequent siblings) 4 siblings, 1 reply; 95+ messages in thread From: Stefan Kangas @ 2022-09-16 16:24 UTC (permalink / raw) To: Philip Kaludercic, emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > Would having a "quick-help" menu along these lines for common > operations make sense for GNU Emacs as well? See also `which-keys', a package that I think is useful enough that we should distribute and enable it by default. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 16:24 ` Stefan Kangas @ 2022-09-16 16:48 ` Philip Kaludercic 2022-09-16 17:03 ` Sławomir Grochowski 2022-09-16 17:11 ` Stefan Kangas 0 siblings, 2 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-09-16 16:48 UTC (permalink / raw) To: Stefan Kangas; +Cc: emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> Would having a "quick-help" menu along these lines for common >> operations make sense for GNU Emacs as well? > > See also `which-keys', a package that I think is useful enough that we > should distribute and enable it by default. I hear this a lot, but it seems to me that the "feel" (for lack of a better word) for which-keys is different from everything else in Emacs by default. Window management can be fragile enough to begin with, but having a mode enabled by default that disturbs the current window layout and visible parts of the buffer whenever a user isn't quick enough -- in other words does nothing -- is something I don't think should be the case by default. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 16:48 ` Philip Kaludercic @ 2022-09-16 17:03 ` Sławomir Grochowski 2022-09-16 17:22 ` Philip Kaludercic 2022-09-16 17:11 ` Stefan Kangas 1 sibling, 1 reply; 95+ messages in thread From: Sławomir Grochowski @ 2022-09-16 17:03 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Stefan Kangas, emacs-devel [-- Attachment #1: Type: text/plain, Size: 1404 bytes --] https://github.com/justbur/emacs-which-key features helps a lot in user interface. Help users to feel better, more comfortable and prevent from being lost. And it's kind of similar behavior to -> pressing the <tab> key for completion in 'minibuffer commands' like M-x, find-file, apropos etc. To make it simple it should be limited to only a minibuffer similar to the <tab> completion system. Because which-key package allows you to display it in another buffer or frame. But that would be too much complexity. On Fri, 16 Sept 2022 at 18:50, Philip Kaludercic <philipk@posteo.net> wrote: > Stefan Kangas <stefankangas@gmail.com> writes: > > > Philip Kaludercic <philipk@posteo.net> writes: > > > >> Would having a "quick-help" menu along these lines for common > >> operations make sense for GNU Emacs as well? > > > > See also `which-keys', a package that I think is useful enough that we > > should distribute and enable it by default. > > I hear this a lot, but it seems to me that the "feel" (for lack of a > better word) for which-keys is different from everything else in Emacs > by default. Window management can be fragile enough to begin with, but > having a mode enabled by default that disturbs the current window layout > and visible parts of the buffer whenever a user isn't quick enough -- in > other words does nothing -- is something I don't think should be the > case by default. > > [-- Attachment #2: Type: text/html, Size: 2069 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 17:03 ` Sławomir Grochowski @ 2022-09-16 17:22 ` Philip Kaludercic 2022-09-17 12:09 ` Gregor Zattler 0 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-09-16 17:22 UTC (permalink / raw) To: Sławomir Grochowski; +Cc: Stefan Kangas, emacs-devel Sławomir Grochowski <slawomir.grochowski@gmail.com> writes: > https://github.com/justbur/emacs-which-key features helps a lot in user > interface. > Help users to feel better, more comfortable and prevent from being lost. > And it's kind of similar behavior to -> pressing the <tab> key for > completion in 'minibuffer commands' like M-x, find-file, apropos etc. Yes, but just like there is a difference between auto-completion and tab-completion, there is a difference to be considered here. Again, I don't think there is anything in Emacs by default that relies on non-input the way which-key does. One reason I dislike this is because I've seen how some people use `which-key-mode' in person, just waiting for the menu to (fragile) pop up, to skim through the columns to find what they are looking for. By comparison, I think that C-h and isearch/occur/etc. is more idiomatic. That being said, my proposal is much more modest, and has more to do with Nano's default help bar at the bottom of the screen. > To make it simple it should be limited to only a minibuffer similar to the > <tab> completion system. > Because which-key package allows you to display it in another buffer or > frame. But that would be too much complexity. Why would it be? ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 17:22 ` Philip Kaludercic @ 2022-09-17 12:09 ` Gregor Zattler 2022-09-17 14:44 ` Philip Kaludercic ` (2 more replies) 0 siblings, 3 replies; 95+ messages in thread From: Gregor Zattler @ 2022-09-17 12:09 UTC (permalink / raw) To: Philip Kaludercic, emacs-devel Hi Philip, emacs developers, * Philip Kaludercic <philipk@posteo.net> [2022-09-16; 17:22 GMT]: > Yes, but just like there is a difference between auto-completion and > tab-completion, there is a difference to be considered here. for me the main difference to all other help facilities is, that there is zero cognitive burden: It only pops up when I hit a prefix key and then don't know what to do. It specifically shows help to this prefix key, I do not have to move the mouse, I do not have to look for a symbol to click or a menu entry which might be related. I do not have to know how to bury or kill it, it does not litter my buffer list with jet another buried buffer, it does not permanently change my window configuration. I think these are great features especially for newbies. > Again, I don't think there is anything in Emacs by default that relies > on non-input the way which-key does. One reason I dislike this is > because I've seen how some people use `which-key-mode' in person, just > waiting for the menu to (fragile) pop up, to skim through the columns to > find what they are looking for. By comparison, I think that C-h and > isearch/occur/etc. is more idiomatic. But much more involved to use and they leave traces as which-key does not. > That being said, my proposal is much more modest, and has more to do > with Nano's default help bar at the bottom of the screen. My praise of which-key is in no way directed against your proposal of a screen full of essential functions. Ciao; Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 12:09 ` Gregor Zattler @ 2022-09-17 14:44 ` Philip Kaludercic 2022-09-17 17:48 ` Stefan Kangas ` (2 more replies) 2022-09-17 14:53 ` which-key (was: Adding a "quick-help" menu) Stefan Monnier 2022-09-17 16:47 ` [External] : Re: Adding a "quick-help" menu Drew Adams 2 siblings, 3 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-09-17 14:44 UTC (permalink / raw) To: emacs-devel Gregor Zattler <telegraph@gmx.net> writes: > Hi Philip, emacs developers, > * Philip Kaludercic <philipk@posteo.net> [2022-09-16; 17:22 GMT]: >> Yes, but just like there is a difference between auto-completion and >> tab-completion, there is a difference to be considered here. > > for me the main difference to all other help facilities is, > that there is zero cognitive burden: It only pops up when I > hit a prefix key and then don't know what to do. What kind of prefix keys are we talking about? Could you give me a recent example for where which-key was useful to you (or anyone else)? > It specifically shows help to this prefix key, I do not have > to move the mouse, I do not have to look for a symbol to > click or a menu entry which might be related. But none of this is necessary when you press C-h. The only disadvantage is that you would have to repeat the prefix, but I think that could be changed. > I do not have to know how to bury or kill it, it does not > litter my buffer list with jet another buried buffer, it > does not permanently change my window configuration. Do you meant the *Help* buffer? > I think these are great features especially for newbies. > >> Again, I don't think there is anything in Emacs by default that relies >> on non-input the way which-key does. One reason I dislike this is >> because I've seen how some people use `which-key-mode' in person, just >> waiting for the menu to (fragile) pop up, to skim through the columns to >> find what they are looking for. By comparison, I think that C-h and >> isearch/occur/etc. is more idiomatic. > > But much more involved to use and they leave traces as > which-key does not. I personally think this is an advantage (though I wouldn't put it the way you did). To me `which-key' -- the way it is configured by default -- seems fragile and unreliable. A help buffer is just-another-buffer and doesn't appear to be an exception to the rest of how Emacs works. >> That being said, my proposal is much more modest, and has more to do >> with Nano's default help bar at the bottom of the screen. > > My praise of which-key is in no way directed against your > proposal of a screen full of essential functions. Don't worry, I didn't take it that way, I just wanted to return to the initial topic of the thread. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 14:44 ` Philip Kaludercic @ 2022-09-17 17:48 ` Stefan Kangas 2022-09-17 21:45 ` Philip Kaludercic 2022-09-18 5:07 ` Visuwesh 2022-09-18 7:51 ` Gregor Zattler 2 siblings, 1 reply; 95+ messages in thread From: Stefan Kangas @ 2022-09-17 17:48 UTC (permalink / raw) To: Philip Kaludercic, emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > What kind of prefix keys are we talking about? Could you give me a > recent example for where which-key was useful to you (or anyone else)? For me, it's all of them. But how about `C-x r' or `C-x C-k'? > But none of this is necessary when you press C-h. The only disadvantage > is that you would have to repeat the prefix, but I think that could be > changed. (BTW, if we are talking about messing up window layouts, `C-h' does too. Even more so than `which-key', IME.) > I personally think this is an advantage (though I wouldn't put it the > way you did). To me `which-key' -- the way it is configured by default > -- seems fragile and unreliable. A help buffer is just-another-buffer > and doesn't appear to be an exception to the rest of how Emacs works. I don't see anything exceptional. Emacs already shows the key in the echo area by default, it just doesn't give you all the useful help that `which-key' does. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 17:48 ` Stefan Kangas @ 2022-09-17 21:45 ` Philip Kaludercic 2022-09-18 0:05 ` Stefan Kangas 0 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-09-17 21:45 UTC (permalink / raw) To: Stefan Kangas; +Cc: emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> What kind of prefix keys are we talking about? Could you give me a >> recent example for where which-key was useful to you (or anyone else)? > > For me, it's all of them. But how about `C-x r' or `C-x C-k'? Hmm, those are good examples, but I honestly don't see the advantage over C-h and the "issue" of a false-positive popup after something like C-c (I know that I often hesitate on that prefix). >> But none of this is necessary when you press C-h. The only disadvantage >> is that you would have to repeat the prefix, but I think that could be >> changed. > > (BTW, if we are talking about messing up window layouts, `C-h' does too. > Even more so than `which-key', IME.) True, but the "messing up" is done in two different ways. C-h pops up a new buffer and might hide some other information, while which-key pushes up from below which might narrow the buffer contents. If the active point is moved by this change in the window layout, this will change the visible portion of the buffer even after the key chord completed. I've tried this by having a single window with any buffer and moving the point to the bottom of the window. If I now provoke `which-key', my scroll-settings (which I believe are the default ones) will have the point moved to the centre of the window, which could hide some content at the top of the window I was interested in. >> I personally think this is an advantage (though I wouldn't put it the >> way you did). To me `which-key' -- the way it is configured by default >> -- seems fragile and unreliable. A help buffer is just-another-buffer >> and doesn't appear to be an exception to the rest of how Emacs works. > > I don't see anything exceptional. Emacs already shows the key in the > echo area by default, it just doesn't give you all the useful help that > `which-key' does. But that is a single line, which is already the space allocated for the echo area. What I am taking issue with is the resizing of the echo area (real or apparent), *especially* when it is done in reaction to a non-action like waiting. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 21:45 ` Philip Kaludercic @ 2022-09-18 0:05 ` Stefan Kangas 2022-09-18 5:41 ` Eli Zaretskii 2022-09-18 9:10 ` Philip Kaludercic 0 siblings, 2 replies; 95+ messages in thread From: Stefan Kangas @ 2022-09-18 0:05 UTC (permalink / raw) To: Philip Kaludercic; +Cc: emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > I've tried this by having a single window with any buffer and moving > the point to the bottom of the window. If I now provoke `which-key', > my scroll-settings (which I believe are the default ones) will have > the point moved to the centre of the window, which could hide some > content at the top of the window I was interested in. That's true. But it doesn't sound like a fundamental limitation, so maybe it could be fixed. (It doesn't bother me with `scroll-conservatively' set to 500, FWIW.) > What I am taking issue with is the resizing of the echo area (real or > apparent), *especially* when it is done in reaction to a non-action > like waiting. The action is pressing a key. That's not a "non-action", IMHO. It's not that different from, e.g., `company-idle-delay'. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 0:05 ` Stefan Kangas @ 2022-09-18 5:41 ` Eli Zaretskii 2022-09-18 9:10 ` Philip Kaludercic 1 sibling, 0 replies; 95+ messages in thread From: Eli Zaretskii @ 2022-09-18 5:41 UTC (permalink / raw) To: Stefan Kangas; +Cc: philipk, emacs-devel > From: Stefan Kangas <stefankangas@gmail.com> > Date: Sat, 17 Sep 2022 20:05:24 -0400 > Cc: emacs-devel@gnu.org > > (It doesn't bother me with `scroll-conservatively' set to 500, FWIW.) All the values between 101 and 500 (or infinity, as a matter of fact) buy you nothing at all. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 0:05 ` Stefan Kangas 2022-09-18 5:41 ` Eli Zaretskii @ 2022-09-18 9:10 ` Philip Kaludercic 1 sibling, 0 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-09-18 9:10 UTC (permalink / raw) To: Stefan Kangas; +Cc: emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> What I am taking issue with is the resizing of the echo area (real or >> apparent), *especially* when it is done in reaction to a non-action >> like waiting. > > The action is pressing a key. That's not a "non-action", IMHO. OK, It is the sequence of an action (that may or may not be intended to invoke `which-key') and a "non-action", namely waiting.n > It's not that different from, e.g., `company-idle-delay'. True, but company-mode is neither bundled by default let alone enabled. All I am trying to argue is that `which-key' doesn't fit the style and behaviour of default Emacs, *because* it uses idle times to change the UI. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 14:44 ` Philip Kaludercic 2022-09-17 17:48 ` Stefan Kangas @ 2022-09-18 5:07 ` Visuwesh 2022-09-18 7:51 ` Gregor Zattler 2 siblings, 0 replies; 95+ messages in thread From: Visuwesh @ 2022-09-18 5:07 UTC (permalink / raw) To: Philip Kaludercic; +Cc: emacs-devel [சனி செப்டம்பர் 17, 2022] Philip Kaludercic wrote: >> It specifically shows help to this prefix key, I do not have >> to move the mouse, I do not have to look for a symbol to >> click or a menu entry which might be related. > > But none of this is necessary when you press C-h. The only disadvantage > is that you would have to repeat the prefix, but I think that could be > changed. Not that I have tried but from what I hear, embark's C-h thingy is the best of both worlds: you still get a nice overview of _all_ the possible keybindings under the prefix, and you don't have to repeat the prefix since embark's thingy completes against the keybinding and the command name i.e., it uses completing-read. It has the added bonus of not showing up uninvited just like Emacs does right now. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 14:44 ` Philip Kaludercic 2022-09-17 17:48 ` Stefan Kangas 2022-09-18 5:07 ` Visuwesh @ 2022-09-18 7:51 ` Gregor Zattler 2 siblings, 0 replies; 95+ messages in thread From: Gregor Zattler @ 2022-09-18 7:51 UTC (permalink / raw) To: Philip Kaludercic, emacs-devel Hi Philip, emacs developers, * Philip Kaludercic <philipk@posteo.net> [2022-09-17;14:44 GMT]: > Gregor Zattler <telegraph@gmx.net> writes: >> * Philip Kaludercic <philipk@posteo.net> [2022-09-16; 17:22 GMT]: >>> Yes, but just like there is a difference between auto-completion and >>> tab-completion, there is a difference to be considered here. >> >> for me the main difference to all other help facilities is, >> that there is zero cognitive burden: It only pops up when I >> hit a prefix key and then don't know what to do. > > What kind of prefix keys are we talking about? Could you give me a > recent example for where which-key was useful to you (or anyone else)? a) when I do not remember which key adds files from dired to the buffer in message-mode with unsent email; b) when I search for the key binding for mml-secure-message-sign-encrypt; actually not that often, since I installed which-key seven years ago in favour of describe-key (or some such, because it stole a key binding I was relying of, back then). Then it was C-x r, for instance. I do not need it often, but for instance when I explore a new package and it's key bindings. >> It specifically shows help to this prefix key, I do not have >> to move the mouse, I do not have to look for a symbol to >> click or a menu entry which might be related. > > But none of this is necessary when you press C-h. I do not know any more if I knew then that I could hit C-h after a prefix key. > The only disadvantage is that you would have to repeat the > prefix, but I think that could be changed. > >> I do not have to know how to bury or kill it, it does not >> litter my buffer list with jet another buried buffer, it >> does not permanently change my window configuration. > > Do you meant the *Help* buffer? Yes. Here I was speaking remembering my first experiences with Emacs. Then I was overwhelmed for instance from the number of buffers in my buffer list. I'm still irritated by the number and placement of windows Emacs opens especially on my 4K monitor -- where this is a much smaller problem at the same time. I still do not feel comfortable with the *help* buffers popping up but being not the active window... [I just now used which-key to look up C-x 4 and learned that there is C-x 4 q]. All this does not happen with which-key. [...] > I personally think this is an advantage (though I wouldn't put it the > way you did). To me `which-key' -- the way it is configured by default > -- seems fragile and unreliable. A help buffer is just-another-buffer > and doesn't appear to be an exception to the rest of how Emacs works. Sure, but that doesn't help in case one is not comfortable with "how Emacs works", especially because one is a newcomer. In especially this case a help facility which shows up when one is hesitating and goes away without further action is of great help. Later one may have adapted to Emacs or adapted Emacs or abandoned Emacs. Ciao; Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 95+ messages in thread
* which-key (was: Adding a "quick-help" menu) 2022-09-17 12:09 ` Gregor Zattler 2022-09-17 14:44 ` Philip Kaludercic @ 2022-09-17 14:53 ` Stefan Monnier 2022-09-18 5:12 ` which-key Visuwesh 2022-09-18 8:58 ` which-key (was: Adding a "quick-help" menu) Gregory Heytings 2022-09-17 16:47 ` [External] : Re: Adding a "quick-help" menu Drew Adams 2 siblings, 2 replies; 95+ messages in thread From: Stefan Monnier @ 2022-09-17 14:53 UTC (permalink / raw) To: Philip Kaludercic; +Cc: emacs-devel >> Yes, but just like there is a difference between auto-completion and >> tab-completion, there is a difference to be considered here. > for me the main difference to all other help facilities is, > that there is zero cognitive burden: It only pops up when I > hit a prefix key and then don't know what to do. BTW, AFAICT there are fundamentally two differences between the `C-h` trick and `which-key-mode`: A) `C-h` needs an explicit user action, rather than just waiting a shot time. Both options have their advantages. B) `C-h` displays the result in a less sophisticated way than `which-key`. Regarding (A), in order to avoid the potential occasional annoyance of the which-key popup, which also solving the discoverability problem of `C-h`, I guess we should simply change the "echo keystrokes" functionality so instead of just displaying "C-x-" it could display something like "C-x- [Hit C-h for help]". And regarding (B), it seems to be a small matter of merging the two codebases so that `C-h` and `which-key` get the same display. Stefan ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-17 14:53 ` which-key (was: Adding a "quick-help" menu) Stefan Monnier @ 2022-09-18 5:12 ` Visuwesh 2022-09-18 8:56 ` which-key Gregory Heytings 2022-09-18 8:58 ` which-key (was: Adding a "quick-help" menu) Gregory Heytings 1 sibling, 1 reply; 95+ messages in thread From: Visuwesh @ 2022-09-18 5:12 UTC (permalink / raw) To: Stefan Monnier; +Cc: Philip Kaludercic, emacs-devel [சனி செப்டம்பர் 17, 2022] Stefan Monnier wrote: > I guess we should simply change the "echo keystrokes" functionality so > instead of just displaying "C-x-" it could display something like > "C-x- [Hit C-h for help]". Which reminds me: do people never intentionally wait out to see what prefix they typed? I do this quite a lot since I am fairly forgetful wrt numeric prefixes, and having which-key show up uninvited would be very annoying. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 5:12 ` which-key Visuwesh @ 2022-09-18 8:56 ` Gregory Heytings 0 siblings, 0 replies; 95+ messages in thread From: Gregory Heytings @ 2022-09-18 8:56 UTC (permalink / raw) To: Visuwesh; +Cc: Stefan Monnier, Philip Kaludercic, emacs-devel > > Which reminds me: do people never intentionally wait out to see what > prefix they typed? > I never do that, because I have (setq echo-keystrokes 0.1). ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key (was: Adding a "quick-help" menu) 2022-09-17 14:53 ` which-key (was: Adding a "quick-help" menu) Stefan Monnier 2022-09-18 5:12 ` which-key Visuwesh @ 2022-09-18 8:58 ` Gregory Heytings 2022-09-18 9:19 ` which-key Po Lu 1 sibling, 1 reply; 95+ messages in thread From: Gregory Heytings @ 2022-09-18 8:58 UTC (permalink / raw) To: Stefan Monnier; +Cc: Philip Kaludercic, emacs-devel > > I guess we should simply change the "echo keystrokes" functionality so > instead of just displaying "C-x-" it could display something like "C-x- > [Hit C-h for help]". > Like this? diff --git a/src/keyboard.c b/src/keyboard.c index ca51c80da0..a9eb840c76 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -500,7 +500,8 @@ echo_add_key (Lisp_Object c) } if ((NILP (echo_string) || SCHARS (echo_string) == 0) - && help_char_p (c)) + && help_char_p (c) + && NILP (Vecho_keystrokes_mention_help)) { static const char text[] = " (Type ? for further options)"; int len = sizeof text - 1; @@ -559,11 +560,20 @@ echo_dash (void) return; } - /* Put a dash at the end of the buffer temporarily, + /* Put a dash, and maybe the help key, at the end of the buffer temporarily, but make it go away when the next character is added. */ - AUTO_STRING (dash, "-"); - kset_echo_string (current_kboard, - concat2 (KVAR (current_kboard, echo_string), dash)); + if (NILP (Vecho_keystrokes_mention_help)) + { + AUTO_STRING (dash, "- "); + kset_echo_string (current_kboard, + concat2 (KVAR (current_kboard, echo_string), dash)); + } + else + { + AUTO_STRING (dash, "- [Type C-h for help]"); + kset_echo_string (current_kboard, + concat2 (KVAR (current_kboard, echo_string), dash)); + } echo_now (); } @@ -13107,6 +13117,10 @@ syms_of_keyboard (void) is called with one argument, the string that was selected. */);; Vpost_select_region_hook = Qnil; + DEFVAR_LISP ("echo-keystrokes-mention-help", Vecho_keystrokes_mention_help, + doc: /* Non-nil means display help key after echoing keystrokes. */); + Vecho_keystrokes_mention_help = Qt; + pdumper_do_now_and_after_load (syms_of_keyboard_for_pdumper); } ^ permalink raw reply related [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 8:58 ` which-key (was: Adding a "quick-help" menu) Gregory Heytings @ 2022-09-18 9:19 ` Po Lu 2022-09-18 9:53 ` which-key Gregory Heytings 0 siblings, 1 reply; 95+ messages in thread From: Po Lu @ 2022-09-18 9:19 UTC (permalink / raw) To: Gregory Heytings; +Cc: Stefan Monnier, Philip Kaludercic, emacs-devel Gregory Heytings <gregory@heytings.org> writes: > + DEFVAR_LISP ("echo-keystrokes-mention-help", Vecho_keystrokes_mention_help, > + doc: /* Non-nil means display help key after echoing keystrokes. */); > + Vecho_keystrokes_mention_help = Qt; That will be too annoying to be enabled by default. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 9:19 ` which-key Po Lu @ 2022-09-18 9:53 ` Gregory Heytings 2022-09-18 10:10 ` which-key Lars Ingebrigtsen 2022-09-18 11:09 ` which-key Po Lu 0 siblings, 2 replies; 95+ messages in thread From: Gregory Heytings @ 2022-09-18 9:53 UTC (permalink / raw) To: Po Lu; +Cc: Stefan Monnier, Philip Kaludercic, emacs-devel >> + DEFVAR_LISP ("echo-keystrokes-mention-help", Vecho_keystrokes_mention_help, >> + doc: /* Non-nil means display help key after echoing keystrokes. */); >> + Vecho_keystrokes_mention_help = Qt; > > That will be too annoying to be enabled by default. > The point of this thread is to help newcomers to find help, right? How would it help them if they had to add (setq echo-keystrokes-mention-help t) in their init file? For experts like you on the contrary, it is easy to turn it off, isn't it? ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 9:53 ` which-key Gregory Heytings @ 2022-09-18 10:10 ` Lars Ingebrigtsen 2022-09-18 13:51 ` which-key Stefan Monnier 2022-09-18 11:09 ` which-key Po Lu 1 sibling, 1 reply; 95+ messages in thread From: Lars Ingebrigtsen @ 2022-09-18 10:10 UTC (permalink / raw) To: Gregory Heytings; +Cc: Po Lu, Stefan Monnier, Philip Kaludercic, emacs-devel Gregory Heytings <gregory@heytings.org> writes: > The point of this thread is to help newcomers to find help, right? > How would it help them if they had to add (setq > echo-keystrokes-mention-help t) in their init file? For experts like > you on the contrary, it is easy to turn it off, isn't it? Indeed. But I think it'd probably be too annoying for everybody, even if it's pretty helpful -- it's something you need to be told once or twice, and then you know it. So I'd rather not add this at all. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 10:10 ` which-key Lars Ingebrigtsen @ 2022-09-18 13:51 ` Stefan Monnier 2022-09-18 15:39 ` which-key Stefan Kangas ` (2 more replies) 0 siblings, 3 replies; 95+ messages in thread From: Stefan Monnier @ 2022-09-18 13:51 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Gregory Heytings, Po Lu, Philip Kaludercic, emacs-devel Lars Ingebrigtsen [2022-09-18 12:10:35] wrote: > Gregory Heytings <gregory@heytings.org> writes: >> The point of this thread is to help newcomers to find help, right? >> How would it help them if they had to add (setq >> echo-keystrokes-mention-help t) in their init file? For experts like >> you on the contrary, it is easy to turn it off, isn't it? > > Indeed. > > But I think it'd probably be too annoying for everybody, even if it's > pretty helpful -- it's something you need to be told once or twice, and > then you know it. We could easily limit it to once per session, which would make it rather non-intrusive. Stefan ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 13:51 ` which-key Stefan Monnier @ 2022-09-18 15:39 ` Stefan Kangas 2022-09-18 16:43 ` which-key Gregor Zattler 2022-09-18 16:49 ` which-key Gregory Heytings 2022-09-19 8:06 ` which-key Lars Ingebrigtsen 2 siblings, 1 reply; 95+ messages in thread From: Stefan Kangas @ 2022-09-18 15:39 UTC (permalink / raw) To: Stefan Monnier, Lars Ingebrigtsen Cc: Gregory Heytings, Po Lu, Philip Kaludercic, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > We could easily limit it to once per session, which would make it rather > non-intrusive. ...and/or give it a different, less intrusive face than the default. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 15:39 ` which-key Stefan Kangas @ 2022-09-18 16:43 ` Gregor Zattler 0 siblings, 0 replies; 95+ messages in thread From: Gregor Zattler @ 2022-09-18 16:43 UTC (permalink / raw) To: Stefan Kangas, Stefan Monnier, Lars Ingebrigtsen Cc: Gregory Heytings, Po Lu, Philip Kaludercic, emacs-devel Hi Stefan, emacs developers, * Stefan Kangas <stefankangas@gmail.com> [2022-09-18; 11:39 -04]: > Stefan Monnier <monnier@iro.umontreal.ca> writes: > >> We could easily limit it to once per session, which would make it rather >> non-intrusive. or add a button to disable this, like in the *Warnings* buffer? > ...and/or give it a different, less intrusive face than the default. That wouldn't help discoverability, especially for people with limited sight. Ciao; Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 13:51 ` which-key Stefan Monnier 2022-09-18 15:39 ` which-key Stefan Kangas @ 2022-09-18 16:49 ` Gregory Heytings 2022-09-19 8:08 ` which-key Lars Ingebrigtsen 2022-09-19 8:06 ` which-key Lars Ingebrigtsen 2 siblings, 1 reply; 95+ messages in thread From: Gregory Heytings @ 2022-09-18 16:49 UTC (permalink / raw) To: Stefan Monnier; +Cc: Lars Ingebrigtsen, Po Lu, Philip Kaludercic, emacs-devel >> But I think it'd probably be too annoying for everybody, even if it's >> pretty helpful -- it's something you need to be told once or twice, and >> then you know it. Hmm... C-h displays "(Type ? for further options)" and has been doing that for years, I don't think anyone complained? And it's something that by default becomes visible only after a one second delay, so when you know what you're doing it's not displayed at all. > > We could easily limit it to once per session, which would make it rather > non-intrusive. > Indeed. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 16:49 ` which-key Gregory Heytings @ 2022-09-19 8:08 ` Lars Ingebrigtsen 2022-09-19 8:19 ` which-key Gregory Heytings 0 siblings, 1 reply; 95+ messages in thread From: Lars Ingebrigtsen @ 2022-09-19 8:08 UTC (permalink / raw) To: Gregory Heytings; +Cc: Stefan Monnier, Po Lu, Philip Kaludercic, emacs-devel Gregory Heytings <gregory@heytings.org> writes: > Hmm... C-h displays "(Type ? for further options)" and has been doing > that for years, I don't think anyone complained? But that's an entry into the help system -- not something that pops up in the middle of what you're typing. I just think it would be distracting. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-19 8:08 ` which-key Lars Ingebrigtsen @ 2022-09-19 8:19 ` Gregory Heytings 2022-09-19 13:26 ` which-key Corwin Brust 0 siblings, 1 reply; 95+ messages in thread From: Gregory Heytings @ 2022-09-19 8:19 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Stefan Monnier, Po Lu, Philip Kaludercic, emacs-devel > > I just think it would be distracting. > Okay, a status quo is fine with me, too. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-19 8:19 ` which-key Gregory Heytings @ 2022-09-19 13:26 ` Corwin Brust 2022-09-19 23:43 ` which-key Emanuel Berg 0 siblings, 1 reply; 95+ messages in thread From: Corwin Brust @ 2022-09-19 13:26 UTC (permalink / raw) To: Gregory Heytings Cc: Lars Ingebrigtsen, Stefan Monnier, Po Lu, Philip Kaludercic, emacs-devel On Mon, Sep 19, 2022 at 3:19 AM Gregory Heytings <gregory@heytings.org> wrote: > > > > I just think it would be distracting. > > > > Okay, a status quo is fine with me, too. FWIW, I would expect any change that materially helps new users by adding "clues" of how to find things will require some express action (e.g. by veteran users) to disable. Finding ways to help newer users that more experienced users won't notice (or won't mind) seems like a very tall order. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-19 13:26 ` which-key Corwin Brust @ 2022-09-19 23:43 ` Emanuel Berg 0 siblings, 0 replies; 95+ messages in thread From: Emanuel Berg @ 2022-09-19 23:43 UTC (permalink / raw) To: emacs-devel Too hot code for many: ;;; -*- lexical-binding: t -*- ;; ;; this file: ;; https://dataswamp.org/~incal/emacs-init/show-cmd.el (defun show-key-command (&optional key cmd) (interactive) (let*((key-ps "hit key(s)!") (ps (if cmd (format "%s %s " cmd key-ps) key-ps) ) (k (or key (read-key-sequence-vector ps))) (new-cmd (key-binding k)) (cmd-or-undef (if new-cmd (format "`%s'" new-cmd) "undefined")) ) (if (and key cmd) (string= new-cmd cmd) (if key (message "%s" cmd-or-undef) (unless (equal k [7]) ; [7] is C-g or `keyboard-quit' (show-key-command nil cmd-or-undef) ))))) ;; (show-key-command) ;; ^ eval me :) -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 13:51 ` which-key Stefan Monnier 2022-09-18 15:39 ` which-key Stefan Kangas 2022-09-18 16:49 ` which-key Gregory Heytings @ 2022-09-19 8:06 ` Lars Ingebrigtsen 2022-09-19 9:08 ` which-key Stefan Kangas 2 siblings, 1 reply; 95+ messages in thread From: Lars Ingebrigtsen @ 2022-09-19 8:06 UTC (permalink / raw) To: Stefan Monnier; +Cc: Gregory Heytings, Po Lu, Philip Kaludercic, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > We could easily limit it to once per session, which would make it rather > non-intrusive. Or once, forever, I guess (via multisession variables). ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-19 8:06 ` which-key Lars Ingebrigtsen @ 2022-09-19 9:08 ` Stefan Kangas 0 siblings, 0 replies; 95+ messages in thread From: Stefan Kangas @ 2022-09-19 9:08 UTC (permalink / raw) To: Lars Ingebrigtsen, Stefan Monnier Cc: Gregory Heytings, Po Lu, Philip Kaludercic, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Or once, forever, I guess (via multisession variables). It would be very easy to miss, to put it mildly. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: which-key 2022-09-18 9:53 ` which-key Gregory Heytings 2022-09-18 10:10 ` which-key Lars Ingebrigtsen @ 2022-09-18 11:09 ` Po Lu 1 sibling, 0 replies; 95+ messages in thread From: Po Lu @ 2022-09-18 11:09 UTC (permalink / raw) To: Gregory Heytings; +Cc: Stefan Monnier, Philip Kaludercic, emacs-devel Gregory Heytings <gregory@heytings.org> writes: > The point of this thread is to help newcomers to find help, right? > How would it help them if they had to add (setq > echo-keystrokes-mention-help t) in their init file? They can read the tutorial, where C-h is mentioned under "Getting More Help." > For experts like you on the contrary, it is easy to turn it off, isn't > it? I'm afraid that by going down that road, the number of new "features" to turn off upon each new release will become too overwhelming, even for experienced Emacs users. ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [External] : Re: Adding a "quick-help" menu 2022-09-17 12:09 ` Gregor Zattler 2022-09-17 14:44 ` Philip Kaludercic 2022-09-17 14:53 ` which-key (was: Adding a "quick-help" menu) Stefan Monnier @ 2022-09-17 16:47 ` Drew Adams 2 siblings, 0 replies; 95+ messages in thread From: Drew Adams @ 2022-09-17 16:47 UTC (permalink / raw) To: Gregor Zattler, Philip Kaludercic, emacs-devel@gnu.org > It only pops up when I hit a prefix key and then > don't know what to do. Yes, +1 for this possibility. Though `C-h' after a prefix key is similar. But the same "What keys can I use in the current context, and what do they do?" question can arise at top level. It's not just about prefix keys. And it's good to have the choice of whether to have such stuff pop up automatically (after a delay) or to just hit a key anytime to pop it up _on demand_. Especially important for top-level. `keysee.el' lets you do these things (top-level, on-demand or automatic). Maybe `which-key' lets you do them now also; dunno (it didn't used to, at least). [Icicles invented key completion, years before `which-key'. `keysee.el' is a reduced version of Icicles key completion. Same thing, but without progressive completion and other completion enhancements.] > It specifically shows help to this prefix key, I do not have > to move the mouse, I do not have to look for a symbol to > click or a menu entry which might be related. `C-h' after a prefix key does that also. E.g., `C-x C-h'. Not enough Emacs users are familiar with this feature, I expect. (But after seeing the help you then need to hit the prefix key(s) again, to use them. E.g, `C-x 4 C-h', then `C-x 4 f' or whatever. IOW, help is separated from use. Pros & cons...) Stefan's suggestion is good: "instead of just displaying "C-x-" it could display something like "C-x- [Hit C-h for help]". A guess is that we might have done that long ago, but `C-h' after some prefix keys didn't work. > I do not have to know how to bury or kill it, it does not > litter my buffer list with jet another buried buffer, it > does not permanently change my window configuration. Seriously? `C-x 1' and `C-x 0' are among the first things every Emacs user learns, no? And if the help is provided in a standard buffer, such as `*Help*' or `*Completions*', then Emacs already pretty much caters to user expectations of removing the window easily. > I think these are great features especially for newbies. Agreed. https://www.emacswiki.org/emacs/EmacsNewbieWithIcicles#PossibleKeyBindings > > Again, I don't think there is anything in Emacs by > > default that relies on non-input the way which-key > > does. One reason I dislike this is because I've > > seen how some people use `which-key-mode' in person, > > just waiting for the menu to (fragile) pop up, to > > skim through the columns to find what they are > > looking for. By comparison, I think that C-h and > > isearch/occur/etc. is more idiomatic. I agree. It's important to have the choice of using key completion - or getting help on what keys are currently available - on demand, and not just after a delay. > But much more involved to use and they leave traces as > which-key does not. Traces? Is this again about removing a help window such as `*Help*' or `*Completions*'? As others have said, this kind of thing is a user preference. IOW, it's good to be able to get either kind of UI behavior. (I think you agree about this.) ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 16:48 ` Philip Kaludercic 2022-09-16 17:03 ` Sławomir Grochowski @ 2022-09-16 17:11 ` Stefan Kangas 2022-09-16 17:29 ` Philip Kaludercic ` (3 more replies) 1 sibling, 4 replies; 95+ messages in thread From: Stefan Kangas @ 2022-09-16 17:11 UTC (permalink / raw) To: Philip Kaludercic; +Cc: emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > I hear this a lot, but it seems to me that the "feel" (for lack of a > better word) for which-keys is different from everything else in Emacs > by default. I disagree, obviously. But it would be useful if others here could give it a spin to see what they think. To try it out, it should be enough to evaluate this (untested): (progn (package-install 'which-key) (which-key-mode 1)) Then type something like `C-x' and wait. > Window management can be fragile enough to begin with, but > having a mode enabled by default that disturbs the current window layout > and visible parts of the buffer whenever a user isn't quick enough -- in > other words does nothing -- is something I don't think should be the > case by default. I'm not sure if you are referring to any real issues (a.k.a. bugs), or if this just a general concern. If the popup is too jarring, we could experiment with a longer delay before it pops up. FWIW, in my many years of using it, I've never seen any issues with it. It always leaves my windows just as they were when it goes away. Then again, I don't use the highly advanced customizations that some other people do. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 17:11 ` Stefan Kangas @ 2022-09-16 17:29 ` Philip Kaludercic 2022-09-16 17:38 ` [External] : " Drew Adams 2022-09-16 17:36 ` Drew Adams ` (2 subsequent siblings) 3 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-09-16 17:29 UTC (permalink / raw) To: Stefan Kangas; +Cc: emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> I hear this a lot, but it seems to me that the "feel" (for lack of a >> better word) for which-keys is different from everything else in Emacs >> by default. > > I disagree, obviously. But it would be useful if others here could give > it a spin to see what they think. > > To try it out, it should be enough to evaluate this (untested): > > (progn > (package-install 'which-key) > (which-key-mode 1)) > > Then type something like `C-x' and wait. IMO it is too much information for the minibuffer. >> Window management can be fragile enough to begin with, but >> having a mode enabled by default that disturbs the current window layout >> and visible parts of the buffer whenever a user isn't quick enough -- in >> other words does nothing -- is something I don't think should be the >> case by default. > > I'm not sure if you are referring to any real issues (a.k.a. bugs), or > if this just a general concern. If the popup is too jarring, we could > experiment with a longer delay before it pops up. > > FWIW, in my many years of using it, I've never seen any issues with it. > It always leaves my windows just as they were when it goes away. Then > again, I don't use the highly advanced customizations that some other > people do. No, I don't think it is a bug. I went into more detail what I think the issues are in my sibling response (<87mtaz44ka.fsf@posteo.net>). ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [External] : Re: Adding a "quick-help" menu 2022-09-16 17:29 ` Philip Kaludercic @ 2022-09-16 17:38 ` Drew Adams 0 siblings, 0 replies; 95+ messages in thread From: Drew Adams @ 2022-09-16 17:38 UTC (permalink / raw) To: Philip Kaludercic, Stefan Kangas; +Cc: emacs-devel@gnu.org > > Then type something like `C-x' and wait. > > IMO it is too much information for the minibuffer. `keysee.el' uses buffer *Completions*. ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [External] : Re: Adding a "quick-help" menu 2022-09-16 17:11 ` Stefan Kangas 2022-09-16 17:29 ` Philip Kaludercic @ 2022-09-16 17:36 ` Drew Adams 2022-09-16 18:00 ` Stefan Monnier 2022-09-17 1:56 ` Po Lu 3 siblings, 0 replies; 95+ messages in thread From: Drew Adams @ 2022-09-16 17:36 UTC (permalink / raw) To: Stefan Kangas, Philip Kaludercic; +Cc: emacs-devel@gnu.org > > I hear this a lot, but it seems to me that the "feel" (for lack of a > > better word) for which-keys is different from everything else in Emacs > > by default. > > I disagree, obviously. But it would be useful if others here could give > it a spin to see what they think. To try it out... > (package-install 'which-key) > (which-key-mode 1) > Then type something like `C-x' and wait. > > > Window management can be fragile enough to begin with, but > > having a mode enabled by default that disturbs the current window > > layout and visible parts of the buffer whenever a user isn't > > quick enough -- in other words does nothing -- is something I > > don't think should be the case by default. > > I'm not sure if you are referring to any real issues (a.k.a. bugs), or > if this just a general concern. If the popup is too jarring, we could > experiment with a longer delay before it pops up. > > FWIW, in my many years of using it, I've never seen any issues with it. > It always leaves my windows just as they were when it goes away. Then > again, I don't use the highly advanced customizations that some other > people do. FWIW, here's an alternative: https://www.emacswiki.org/emacs/KeySee Works also at top level, on demand (i.e., not just after a prefix key). Can show the help anytime, on demand, or automatically after a prefix-key with delay. Go back up, down, all around - navigate the whole hierarchy: all currently possible keys. Can also navigate the menu-bar tree (menus). Can sort completion candidates on the fly: prefix-keys first, local keys first, by command name alphabetically. Can complete against keys, command names, or both. Can choose (option) which keymaps to enable top-level completion for. ___ Requires also `sortie.el', for the sorting: https://www.emacswiki.org/emacs/Sortie ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 17:11 ` Stefan Kangas 2022-09-16 17:29 ` Philip Kaludercic 2022-09-16 17:36 ` Drew Adams @ 2022-09-16 18:00 ` Stefan Monnier 2022-09-17 1:56 ` Po Lu 3 siblings, 0 replies; 95+ messages in thread From: Stefan Monnier @ 2022-09-16 18:00 UTC (permalink / raw) To: Stefan Kangas; +Cc: Philip Kaludercic, emacs-devel > I'm not sure if you are referring to any real issues (a.k.a. bugs), or > if this just a general concern. If the popup is too jarring, we could > experiment with a longer delay before it pops up. > > FWIW, in my many years of using it, I've never seen any issues with it. > It always leaves my windows just as they were when it goes away. Then > again, I don't use the highly advanced customizations that some other > people do. I have no clear opinion on whether we should enable it or not, but FWIW I just tried it in my config and when after I press `C-x` in my minibuffer-only frame, Emacs gets into a busy-loop eating 99% of the CPU (and growing its heap) until I finally hit another key. Probably easy to fix (and I didn't notice anything fishy going on with my setup even though it tends to trip up many window-creating packages). Stefan ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 17:11 ` Stefan Kangas ` (2 preceding siblings ...) 2022-09-16 18:00 ` Stefan Monnier @ 2022-09-17 1:56 ` Po Lu 3 siblings, 0 replies; 95+ messages in thread From: Po Lu @ 2022-09-17 1:56 UTC (permalink / raw) To: Stefan Kangas; +Cc: Philip Kaludercic, emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > I disagree, obviously. But it would be useful if others here could give > it a spin to see what they think. > > To try it out, it should be enough to evaluate this (untested): > > (progn > (package-install 'which-key) > (which-key-mode 1)) > > Then type something like `C-x' and wait. The pop up temporarily interferes with the window configuration, which is annoying when you are reading something, type "C-x", and wait while thinking. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 15:43 Adding a "quick-help" menu Philip Kaludercic 2022-09-16 16:11 ` Sean Whitton 2022-09-16 16:24 ` Stefan Kangas @ 2022-09-16 21:03 ` Philip Kaludercic 2022-09-17 14:53 ` Philip Kaludercic 2022-09-17 1:54 ` Po Lu 2022-09-18 10:11 ` Lars Ingebrigtsen 4 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-09-16 21:03 UTC (permalink / raw) To: emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that > pops up a buffer with these contents: > > FILE BUFFER WINDOW MARK/KILL MISC > C-x C-c exit C-x C-k close C-0 only other C-space mark C-_ undo > C-x C-f find C-x k other C-1 only this C-w wipe C-s search > C-x C-s save C-x C-b list C-2 split two C-k close C-r r-search > C-x s all C-x b switch C-x ^ enlarge C-y yank M-% replace > C-x i insert C-x g goto ln C-x o other win C-x C-x swap M-q reformat > ______________________________________________________________________________ > C-h q toggle quick help | C-h t show tutorial | C-h b show key bindings > > I notice that in GNU Emacs C-h q is bound to `help-quit', which does > nothing if you are not in the help command loop. Would having a > "quick-help" menu along these lines for common operations make sense for > GNU Emacs as well? > > [0] https://github.com/troglobit/mg Here is a quick sketch of how this could look like: --8<---------------cut here---------------start------------->8--- (defvar help-quick-sections '(("... FILE" (save-buffers-kill-terminal . "exit") (find-file . "find") (save-buffer . "save") (save-some-buffers . "all") (insert-file . "insert")) ("... BUFFER" (kill-buffer . "kill") (other-window . "other") (list-buffers . "list") (switch-to-buffer . "switch") (goto-line . "goto line")) ("... WINDOW" (delete-window . "only other") (delete-other-windows . "only this") (split-window-below . "split vert.") (split-window-right . "split horiz.") (enlarge-window . "enlarge") (other-window . "other")) ("MARK/KILL" (set-mark-command . "mark") (kill-region . "wipe") (kill-line . "kill") (yank . "yank") (exchange-point-and-mark . "swap")) ("MISC" (undo . "undo") (isearch-forward . "search") (isearch-backward . "rev-search") (query-replace . "replace") (fill-paragraph . "reformat"))))z ;; Inspired by a mg fork (https://github.com/troglobit/mg) (defun help-quick () "Display a quick-help buffer." (interactive) (with-current-buffer (get-buffer-create "*Quick Help*") (let ((inhibit-read-only t) blocks) (dolist (section help-quick-sections) (let ((max-key-len 0) (max-cmd-len 0) keys) (dolist (ent (reverse (cdr section))) (let* ((bind (where-is-internal (car ent) nil t)) (key (if bind (propertize (key-description bind) 'face 'help-key-binding) " -/-"))) (setq max-cmd-len (max (length (cdr ent)) max-cmd-len) max-key-len (max (length key) max-key-len)) (push (cons key (cdr ent)) keys))) (let ((fmt (format "%%-%ds %%-%ds " max-key-len max-cmd-len))) (push `(,(propertize (concat (car section) (make-string (- (+ max-key-len 1 max-cmd-len 3) (length (car section))) ?\s)) 'face 'shortdoc-heading) ,@(mapcar (lambda (ent) (format fmt (car ent) (cdr ent))) keys)) blocks)))) (erase-buffer) (dolist (block (nreverse blocks)) (when (> (+ (length (car block)) (current-column)) (window-width)) (goto-char (point-max)) (newline 2)) (save-excursion (insert-rectangle block)) (end-of-line)) (delete-trailing-whitespace)) ;; Display the buffer at the bottom of the page and shrink it ;; immediately. (help-mode) (read-only-mode t) (let ((win (display-buffer-at-bottom (current-buffer) '()))) (fit-window-to-buffer win) (select-window win) (goto-char (point-min))))) --8<---------------cut here---------------end--------------->8--- ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 21:03 ` Philip Kaludercic @ 2022-09-17 14:53 ` Philip Kaludercic 0 siblings, 0 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-09-17 14:53 UTC (permalink / raw) To: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1255 bytes --] Philip Kaludercic <philipk@posteo.net> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that >> pops up a buffer with these contents: >> >> FILE BUFFER WINDOW MARK/KILL MISC >> C-x C-c exit C-x C-k close C-0 only other C-space mark C-_ undo >> C-x C-f find C-x k other C-1 only this C-w wipe C-s search >> C-x C-s save C-x C-b list C-2 split two C-k close C-r r-search >> C-x s all C-x b switch C-x ^ enlarge C-y yank M-% replace >> C-x i insert C-x g goto ln C-x o other win C-x C-x swap M-q reformat >> ______________________________________________________________________________ >> C-h q toggle quick help | C-h t show tutorial | C-h b show key bindings >> >> I notice that in GNU Emacs C-h q is bound to `help-quit', which does >> nothing if you are not in the help command loop. Would having a >> "quick-help" menu along these lines for common operations make sense for >> GNU Emacs as well? >> >> [0] https://github.com/troglobit/mg > > Here is a quick sketch of how this could look like: I've further refined the sketch and how have a patch: [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Add-a-quick-help-menu.patch --] [-- Type: text/x-patch, Size: 5194 bytes --] From d0899b748b0047e1d1c773b06076faeba2535fee Mon Sep 17 00:00:00 2001 From: Philip Kaludercic <philipk@posteo.net> Date: Sat, 17 Sep 2022 16:52:01 +0200 Subject: [PATCH] Add a quick-help menu * lisp/help.el (help-map): Bind 'help-quit-or-quick' instead of 'help-quit' (help-quick-sections): Add variable. (help-quick): Add main command. (help-quit-or-quick): Add auxiliary command. --- lisp/help.el | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 1 deletion(-) diff --git a/lisp/help.el b/lisp/help.el index 92b87cf799..089db8c2dd 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -112,7 +112,7 @@ help-map (define-key map "v" 'describe-variable) (define-key map "w" 'where-is) (define-key map "x" 'describe-command) - (define-key map "q" 'help-quit) + (define-key map "q" 'help-quit-or-quick) map) "Keymap for characters following the Help key.") @@ -125,11 +125,118 @@ global-map (defvar help-button-cache nil) \f + +(defvar help-quick-sections + '(("FILE" + (save-buffers-kill-terminal . "exit") + (find-file . "find") + (write-file . "write") + (save-buffer . "save") + (save-some-buffers . "all")) + ("BUFFER" + (kill-buffer . "kill") + (list-buffers . "list") + (switch-to-buffer . "switch") + (goto-line . "goto line") + (read-only-mode . "read only")) + ("WINDOW" + (delete-window . "only other") + (delete-other-windows . "only this") + (split-window-below . "split vert.") + (split-window-right . "split horiz.") + (other-window . "other")) + ("MARK/KILL" + (set-mark-command . "mark") + (kill-region . "wipe") + (kill-line . "kill") + (yank . "yank") + (exchange-point-and-mark . "swap")) + ("PROJECT" + (project-switch-project . "switch") + (project-find-file . "find file") + (project-find-regexp . "search") + (project-query-replace-regexp . "replace") + (project-compile . "compile")) + ("MISC" + (undo . "undo") + (isearch-forward . "search") + (isearch-backward . "rev-search") + (query-replace . "replace") + (fill-paragraph . "reformat")))) + +;; Inspired by a mg fork (https://github.com/troglobit/mg) +(defun help-quick () + "Display a quick-help buffer." + (interactive) + (with-current-buffer (get-buffer-create "*Quick Help*") + (let ((inhibit-read-only t) (padding 2) blocks) + + ;; Go through every section and prepare a text-rectangle to be + ;; inserted later. + (dolist (section help-quick-sections) + (let ((max-key-len 0) (max-cmd-len 0) keys) + (dolist (ent (reverse (cdr section))) + (let* ((bind (where-is-internal (car ent) nil t)) + (key (if bind + (propertize + (key-description bind) + 'face 'help-key-binding) + (propertize "N.B." 'face 'error)))) + (setq max-cmd-len (max (length (cdr ent)) max-cmd-len) + max-key-len (max (length key) max-key-len)) + (push (cons key (cdr ent)) keys))) + (let ((fmt (format "%%-%ds %%-%ds%s" max-key-len max-cmd-len + (make-string padding ?\s))) + (width (+ max-key-len 1 max-cmd-len padding))) + (push `(,width + ,(propertize + (concat + (car section) + (make-string (- width (length (car section))) ?\s)) + 'face 'bold) + ,@(mapcar (lambda (ent) + (format fmt (car ent) (cdr ent))) + keys)) + blocks)))) + + ;; Insert each rectangle in order until they don't fit into the + ;; frame any more, in which case the next sections are inserted + ;; in a new "line". + (erase-buffer) + (dolist (block (nreverse blocks)) + (when (> (+ (car block) (current-column)) (frame-width)) + (goto-char (point-max)) + (newline 2)) + (save-excursion + (insert-rectangle (cdr block))) + (end-of-line)) + (delete-trailing-whitespace)) + + ;; Display the buffer at the bottom of the page and shrink it + ;; immediately. + (help-mode) + (with-selected-window (display-buffer-at-bottom (current-buffer) '()) + (fit-window-to-buffer)) + (message + (substitute-command-keys "Toggle the quick help buffer using \\[help-quit-or-quick].")))) + (defun help-quit () "Just exit from the Help command's command loop." (interactive) nil) +(defun help-quit-or-quick () + "Call `help-quit' or `help-quick' depending on the context." + (interactive) + (cond + (help-buffer-under-preparation + ;; FIXME: There should be a better way to detect if we are in the + ;; help command loop. + (help-quit)) + ((and-let* ((window (get-buffer-window "*Quick Help*"))) + (quit-window t window))) + ((help-quick)))) + (defvar help-return-method nil "What to do to \"exit\" the help buffer. This is a list -- 2.37.3 [-- Attachment #3: Type: text/plain, Size: 152 bytes --] Next to the above sections this patch also includes a few commands for project management. Perhaps there are a few more ideas on what could be added? ^ permalink raw reply related [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 15:43 Adding a "quick-help" menu Philip Kaludercic ` (2 preceding siblings ...) 2022-09-16 21:03 ` Philip Kaludercic @ 2022-09-17 1:54 ` Po Lu 2022-09-17 2:51 ` Stefan Kangas 2022-09-17 8:49 ` Philip Kaludercic 2022-09-18 10:11 ` Lars Ingebrigtsen 4 siblings, 2 replies; 95+ messages in thread From: Po Lu @ 2022-09-17 1:54 UTC (permalink / raw) To: Philip Kaludercic; +Cc: emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that > pops up a buffer with these contents: > > FILE BUFFER WINDOW MARK/KILL MISC > C-x C-c exit C-x C-k close C-0 only other C-space mark C-_ undo > C-x C-f find C-x k other C-1 only this C-w wipe C-s search > C-x C-s save C-x C-b list C-2 split two C-k close C-r r-search > C-x s all C-x b switch C-x ^ enlarge C-y yank M-% replace > C-x i insert C-x g goto ln C-x o other win C-x C-x swap M-q reformat > ______________________________________________________________________________ > C-h q toggle quick help | C-h t show tutorial | C-h b show key bindings > > I notice that in GNU Emacs C-h q is bound to `help-quit', which does > nothing if you are not in the help command loop. Would having a > "quick-help" menu along these lines for common operations make sense for > GNU Emacs as well? Why not make it part of the menu bar? ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 1:54 ` Po Lu @ 2022-09-17 2:51 ` Stefan Kangas 2022-09-17 3:28 ` Stefan Monnier 2022-09-17 4:48 ` Po Lu 2022-09-17 8:49 ` Philip Kaludercic 1 sibling, 2 replies; 95+ messages in thread From: Stefan Kangas @ 2022-09-17 2:51 UTC (permalink / raw) To: Po Lu, Philip Kaludercic; +Cc: emacs-devel Po Lu <luangruo@yahoo.com> writes: > Why not make it part of the menu bar? FWIW, I don't see how the menu bar could be a replacement. Note also that the menu bar is not very popular among users: 74.3 % of the 7300 users that replied to the Emacs Survey in 2020 disabled it.[1] It'd be interesting to know how many of those that didn't disable it use it more than occasionally, but I don't think that data was collected. Footnotes: [1] https://emacssurvey.org/2020/if-you-use-emacs-gui-do-you-disable-any-of-the-graphical-elements.svg ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 2:51 ` Stefan Kangas @ 2022-09-17 3:28 ` Stefan Monnier 2022-09-17 4:01 ` Visuwesh 2022-09-17 4:50 ` Po Lu 2022-09-17 4:48 ` Po Lu 1 sibling, 2 replies; 95+ messages in thread From: Stefan Monnier @ 2022-09-17 3:28 UTC (permalink / raw) To: Stefan Kangas; +Cc: Po Lu, Philip Kaludercic, emacs-devel > Note also that the menu bar is not very popular among users: 74.3 % of > the 7300 users that replied to the Emacs Survey in 2020 disabled it.[1] > It'd be interesting to know how many of those that didn't disable it use > it more than occasionally, but I don't think that data was collected. FWIW, I disable it (to save valuable vertical screen real estate), but I do use it on a fairly regular basis (at least once a week). Stefan ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 3:28 ` Stefan Monnier @ 2022-09-17 4:01 ` Visuwesh 2022-09-17 4:50 ` Po Lu 1 sibling, 0 replies; 95+ messages in thread From: Visuwesh @ 2022-09-17 4:01 UTC (permalink / raw) To: Stefan Monnier; +Cc: Stefan Kangas, Po Lu, Philip Kaludercic, emacs-devel [வெள்ளி செப்டம்பர் 16, 2022] Stefan Monnier wrote: >> Note also that the menu bar is not very popular among users: 74.3 % of >> the 7300 users that replied to the Emacs Survey in 2020 disabled it.[1] >> It'd be interesting to know how many of those that didn't disable it use >> it more than occasionally, but I don't think that data was collected. > > FWIW, I disable it (to save valuable vertical screen real estate), but > I do use it on a fairly regular basis (at least once a week). +1. I disable the menubar but I do use it either via LaCarte or by activating the mode-line mode button. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 3:28 ` Stefan Monnier 2022-09-17 4:01 ` Visuwesh @ 2022-09-17 4:50 ` Po Lu 1 sibling, 0 replies; 95+ messages in thread From: Po Lu @ 2022-09-17 4:50 UTC (permalink / raw) To: Stefan Monnier; +Cc: Stefan Kangas, Philip Kaludercic, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > FWIW, I disable it (to save valuable vertical screen real estate), but > I do use it on a fairly regular basis (at least once a week). Also, FTR, I keep the menu bar enabled and do use it regularly. Such as in message-mode, where I can never remember the keys to send a message at a specific time. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 2:51 ` Stefan Kangas 2022-09-17 3:28 ` Stefan Monnier @ 2022-09-17 4:48 ` Po Lu 2022-09-17 6:38 ` Stefan Kangas 1 sibling, 1 reply; 95+ messages in thread From: Po Lu @ 2022-09-17 4:48 UTC (permalink / raw) To: Stefan Kangas; +Cc: Philip Kaludercic, emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > FWIW, I don't see how the menu bar could be a replacement. Why not? Most computer users immediately look in the menu labeled "Help" for help. > Note also that the menu bar is not very popular among users: 74.3 % of > the 7300 users that replied to the Emacs Survey in 2020 disabled it.[1] > It'd be interesting to know how many of those that didn't disable it use > it more than occasionally, but I don't think that data was collected. If they turn off the features that are supposed to help them, what do you think a "quick help" menu will do? And why won't it be turned off as well? Besides, if they turn off the menu bar and splash screen at startup, how will we impart the existence of the "quick help" menu to them? ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 4:48 ` Po Lu @ 2022-09-17 6:38 ` Stefan Kangas 2022-09-17 8:24 ` Po Lu 0 siblings, 1 reply; 95+ messages in thread From: Stefan Kangas @ 2022-09-17 6:38 UTC (permalink / raw) To: Po Lu; +Cc: Philip Kaludercic, emacs-devel Po Lu <luangruo@yahoo.com> writes: > Stefan Kangas <stefankangas@gmail.com> writes: > >> FWIW, I don't see how the menu bar could be a replacement. > > Why not? From my point of view, you might as well ask why we can't replace `C-h C-h' with the menu bar. These are just very different features, and I don't think they should be conflated. > If they turn off the features that are supposed to help them, what do > you think a "quick help" menu will do? And why won't it be turned off > as well? Do you mean to unbind the key `C-h q'? I guess that some users might do that, sure. But we don't have much data on how common something like that would be. On the other hand, we do know a bit about how often users turn off the menu bar. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 6:38 ` Stefan Kangas @ 2022-09-17 8:24 ` Po Lu 0 siblings, 0 replies; 95+ messages in thread From: Po Lu @ 2022-09-17 8:24 UTC (permalink / raw) To: Stefan Kangas; +Cc: Philip Kaludercic, emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > From my point of view, you might as well ask why we can't replace > `C-h C-h' with the menu bar. These are just very different features, > and I don't think they should be conflated. Both provide a "Help" menu, so they are very similar. > Do you mean to unbind the key `C-h q'? No, to disable whatever informs them of the existence of "C-h q". ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-17 1:54 ` Po Lu 2022-09-17 2:51 ` Stefan Kangas @ 2022-09-17 8:49 ` Philip Kaludercic 2022-09-17 16:45 ` [External] : " Drew Adams 1 sibling, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-09-17 8:49 UTC (permalink / raw) To: Po Lu; +Cc: emacs-devel Po Lu <luangruo@yahoo.com> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that >> pops up a buffer with these contents: >> >> FILE BUFFER WINDOW MARK/KILL MISC >> C-x C-c exit C-x C-k close C-0 only other C-space mark C-_ undo >> C-x C-f find C-x k other C-1 only this C-w wipe C-s search >> C-x C-s save C-x C-b list C-2 split two C-k close C-r r-search >> C-x s all C-x b switch C-x ^ enlarge C-y yank M-% replace >> C-x i insert C-x g goto ln C-x o other win C-x C-x swap M-q reformat >> ______________________________________________________________________________ >> C-h q toggle quick help | C-h t show tutorial | C-h b show key bindings >> >> I notice that in GNU Emacs C-h q is bound to `help-quit', which does >> nothing if you are not in the help command loop. Would having a >> "quick-help" menu along these lines for common operations make sense for >> GNU Emacs as well? > > Why not make it part of the menu bar? I remember when I started using Emacs, I had difficulties orienting myself around the menu bar, considering how many menus and submenus there were. Sure, you can find those items you expect to be in a familiar place coming from other CUA software (File -> Save, Edit -> Undo) -- though how commonplace this is nowadays is also a question. But inherently there is no reason not to do both. I was just suggestion C-h q because it is a prominent and easy-to-use key that has to usage outside of the *Metahelp* buffer. ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [External] : Re: Adding a "quick-help" menu 2022-09-17 8:49 ` Philip Kaludercic @ 2022-09-17 16:45 ` Drew Adams 2022-09-17 17:36 ` Philip Kaludercic 0 siblings, 1 reply; 95+ messages in thread From: Drew Adams @ 2022-09-17 16:45 UTC (permalink / raw) To: Philip Kaludercic, Po Lu; +Cc: emacs-devel@gnu.org > I remember when I started using Emacs, I had > difficulties orienting myself around the menu bar, > considering how many menus and submenus there were. Is this specific to Emacs or in the nature of menus? Particularly mouse driven access, which gives you only a local view of the menu hierarchy. It's not easy to find something inside some menu somewhere (which menu? which submenu(s)? what might the menus be called?). With keyboard access to the same menu hierarchy things can change. La Carte demonstrates this. It gives you both a local view and a global view. You can match multiple menu levels the same way you can match multiple directory levels, with a level-separator string (">" by default). And especially if you also have progressive completion, which lets you show any given level immediately, then show another given level immediately, go back, up, down, sideways. Icicles demonstrates this. Maybe other completion frameworks offer something similar now; dunno. But vanilla Emacs doesn't, to my knowledge. `completion-styles' don't help here. `C-h f': lacarte-execute-menu-command is an interactive compiled Lisp function in 'lacarte.el'. (lacarte-execute-menu-command MAPS) Execute a menu-bar menu command. Type a menu item. Completion is available. A prefix argument controls which menus are available: * None: current major mode, global, and minor-mode keymaps. * Positive (including plain `C-u'): current major mode keymap. * Zero (e.g., `C-0'): current global keymap. * Negative (e.g., `C--'): current minor mode keymaps. > Sure, you can find those items you expect to be in a > familiar place coming from other CUA software > (File -> Save, Edit -> Undo) Being able to match alternative names using progressive completion or regexp completion helps. Emacs has generally tried to use more common terminology (e.g. "Paste") in menus, but it still helps to match synonyms. https://www.emacswiki.org/emacs/LaCarte https://www.emacswiki.org/emacs/Icicles_-_Nutshell_View#ProgressiveCompletion ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [External] : Re: Adding a "quick-help" menu 2022-09-17 16:45 ` [External] : " Drew Adams @ 2022-09-17 17:36 ` Philip Kaludercic 0 siblings, 0 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-09-17 17:36 UTC (permalink / raw) To: Drew Adams; +Cc: Po Lu, emacs-devel@gnu.org Drew Adams <drew.adams@oracle.com> writes: >> I remember when I started using Emacs, I had >> difficulties orienting myself around the menu bar, >> considering how many menus and submenus there were. > > Is this specific to Emacs or in the nature of menus? Menus might all have the risk, but I don't think it is necessary. A lot of GNOME 2 applications had well structured and regular menu hierarchy that you could almost navigate just using the intuition gathered through time. The knowledge was transferable, because the software was designed along similar guidelines. The issue is that Emacs doesn't fit into this mold. This doesn't mean the menu is ineffectual, just that one has to keep this in mind when talking about using the menu. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-16 15:43 Adding a "quick-help" menu Philip Kaludercic ` (3 preceding siblings ...) 2022-09-17 1:54 ` Po Lu @ 2022-09-18 10:11 ` Lars Ingebrigtsen 2022-09-18 10:53 ` Philip Kaludercic 4 siblings, 1 reply; 95+ messages in thread From: Lars Ingebrigtsen @ 2022-09-18 10:11 UTC (permalink / raw) To: Philip Kaludercic; +Cc: emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that > pops up a buffer with these contents: I think having a "cheat sheet" like this would be useful. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 10:11 ` Lars Ingebrigtsen @ 2022-09-18 10:53 ` Philip Kaludercic 2022-09-18 17:03 ` Bob Rogers ` (3 more replies) 0 siblings, 4 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-09-18 10:53 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 367 bytes --] Lars Ingebrigtsen <larsi@gnus.org> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that >> pops up a buffer with these contents: > > I think having a "cheat sheet" like this would be useful. Calling it a "cheat sheet" sounds like a good idea. I've added `cheat-sheet' as an alias: [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Add-a-quick-help-menu.patch --] [-- Type: text/x-patch, Size: 5357 bytes --] From ddd1a02d3bc23c448b8d5869c8b9fe38a2b322ef Mon Sep 17 00:00:00 2001 From: Philip Kaludercic <philipk@posteo.net> Date: Sat, 17 Sep 2022 16:52:01 +0200 Subject: [PATCH] Add a quick-help menu * lisp/help.el (help-map): Bind 'help-quit-or-quick' instead of 'help-quit'. (help-quick-sections): Add variable. (help-quick): Add main command. (cheat-sheet): Add alias for 'help-quick'. (help-quit-or-quick): Add auxiliary command. --- lisp/help.el | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 1 deletion(-) diff --git a/lisp/help.el b/lisp/help.el index 92b87cf799..126eddef30 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -112,7 +112,7 @@ help-map (define-key map "v" 'describe-variable) (define-key map "w" 'where-is) (define-key map "x" 'describe-command) - (define-key map "q" 'help-quit) + (define-key map "q" 'help-quit-or-quick) map) "Keymap for characters following the Help key.") @@ -125,11 +125,122 @@ global-map (defvar help-button-cache nil) \f + +(defvar help-quick-sections + '(("FILE" + (save-buffers-kill-terminal . "exit") + (find-file . "find") + (write-file . "write") + (save-buffer . "save") + (save-some-buffers . "all")) + ("BUFFER" + (kill-buffer . "kill") + (list-buffers . "list") + (switch-to-buffer . "switch") + (goto-line . "goto line") + (read-only-mode . "read only")) + ("WINDOW" + (delete-window . "only other") + (delete-other-windows . "only this") + (split-window-below . "split vert.") + (split-window-right . "split horiz.") + (other-window . "other")) + ("MARK/KILL" + (set-mark-command . "mark") + (kill-region . "wipe") + (kill-line . "kill") + (yank . "yank") + (exchange-point-and-mark . "swap")) + ("PROJECT" + (project-switch-project . "switch") + (project-find-file . "find file") + (project-find-regexp . "search") + (project-query-replace-regexp . "replace") + (project-compile . "compile")) + ("MISC" + (undo . "undo") + (isearch-forward . "search") + (isearch-backward . "rev-search") + (query-replace . "replace") + (fill-paragraph . "reformat")))) + +;; Inspired by a mg fork (https://github.com/troglobit/mg) +(defun help-quick () + "Display a quick-help buffer." + (interactive) + (with-current-buffer (get-buffer-create "*Quick Help*") + (let ((inhibit-read-only t) (padding 2) blocks) + + ;; Go through every section and prepare a text-rectangle to be + ;; inserted later. + (dolist (section help-quick-sections) + (let ((max-key-len 0) (max-cmd-len 0) keys) + (dolist (ent (reverse (cdr section))) + (catch 'skip + (let* ((bind (where-is-internal (car ent) nil t)) + (key (if bind + (propertize + (key-description bind) + 'face 'help-key-binding) + (throw 'skip nil)))) + (setq max-cmd-len (max (length (cdr ent)) max-cmd-len) + max-key-len (max (length key) max-key-len)) + (push (cons key (cdr ent)) keys)))) + (when keys + (let ((fmt (format "%%-%ds %%-%ds%s" max-key-len max-cmd-len + (make-string padding ?\s))) + (width (+ max-key-len 1 max-cmd-len padding))) + (push `(,width + ,(propertize + (concat + (car section) + (make-string (- width (length (car section))) ?\s)) + 'face 'bold) + ,@(mapcar (lambda (ent) + (format fmt (car ent) (cdr ent))) + keys)) + blocks))))) + + ;; Insert each rectangle in order until they don't fit into the + ;; frame any more, in which case the next sections are inserted + ;; in a new "line". + (erase-buffer) + (dolist (block (nreverse blocks)) + (when (> (+ (car block) (current-column)) (frame-width)) + (goto-char (point-max)) + (newline 2)) + (save-excursion + (insert-rectangle (cdr block))) + (end-of-line)) + (delete-trailing-whitespace)) + + ;; Display the buffer at the bottom of the page and shrink it + ;; immediately. + (help-mode) + (with-selected-window (display-buffer-at-bottom (current-buffer) '()) + (fit-window-to-buffer)) + (message + (substitute-command-keys "Toggle the quick help buffer using \\[help-quit-or-quick].")))) + +(defalias 'cheat-sheet #'help-quick) + (defun help-quit () "Just exit from the Help command's command loop." (interactive) nil) +(defun help-quit-or-quick () + "Call `help-quit' or `help-quick' depending on the context." + (interactive) + (cond + (help-buffer-under-preparation + ;; FIXME: There should be a better way to detect if we are in the + ;; help command loop. + (help-quit)) + ((and-let* ((window (get-buffer-window "*Quick Help*"))) + (quit-window t window))) + ((help-quick)))) + (defvar help-return-method nil "What to do to \"exit\" the help buffer. This is a list -- 2.37.3 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 10:53 ` Philip Kaludercic @ 2022-09-18 17:03 ` Bob Rogers 2022-09-18 17:53 ` Philip Kaludercic 2022-09-19 7:54 ` Lars Ingebrigtsen ` (2 subsequent siblings) 3 siblings, 1 reply; 95+ messages in thread From: Bob Rogers @ 2022-09-18 17:03 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Lars Ingebrigtsen, emacs-devel From: Philip Kaludercic <philipk@posteo.net> Date: Sun, 18 Sep 2022 10:53:58 +0000 Lars Ingebrigtsen <larsi@gnus.org> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that >> pops up a buffer with these contents: > > I think having a "cheat sheet" like this would be useful. Calling it a "cheat sheet" sounds like a good idea. I've added `cheat-sheet' as an alias: A quick Web search for "emacs cheat sheet" turns up the "GNU Emacs Reference Card" as the first hit -- followed by a bunch of others. And it occurs to me that, for a real newbie, a cheat sheet in a browser window might be easier to work with than one within emacs itself. -- Bob Rogers http://www.rgrjr.com/ [1] https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 17:03 ` Bob Rogers @ 2022-09-18 17:53 ` Philip Kaludercic 2022-09-18 19:25 ` Bob Rogers 2022-09-18 20:38 ` wilnerthomas--- via Emacs development discussions. 0 siblings, 2 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-09-18 17:53 UTC (permalink / raw) To: Bob Rogers; +Cc: Lars Ingebrigtsen, emacs-devel Bob Rogers <rogers@rgrjr.com> writes: > From: Philip Kaludercic <philipk@posteo.net> > Date: Sun, 18 Sep 2022 10:53:58 +0000 > > Lars Ingebrigtsen <larsi@gnus.org> writes: > > > Philip Kaludercic <philipk@posteo.net> writes: > > > >> There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that > >> pops up a buffer with these contents: > > > > I think having a "cheat sheet" like this would be useful. > > Calling it a "cheat sheet" sounds like a good idea. I've added > `cheat-sheet' as an alias: > > A quick Web search for "emacs cheat sheet" turns up the "GNU Emacs > Reference Card" as the first hit -- followed by a bunch of others. And > it occurs to me that, for a real newbie, a cheat sheet in a browser > window might be easier to work with than one within emacs itself. I might just be too young and lack the concentration that pre-gen-z people had that reference card always appeared too overwhelming for me. I guess my suggestion isn't much better, it is the same thing just less of it... > -- Bob Rogers > http://www.rgrjr.com/ > > [1] https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 17:53 ` Philip Kaludercic @ 2022-09-18 19:25 ` Bob Rogers 2022-09-18 20:38 ` wilnerthomas--- via Emacs development discussions. 1 sibling, 0 replies; 95+ messages in thread From: Bob Rogers @ 2022-09-18 19:25 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Lars Ingebrigtsen, emacs-devel From: Philip Kaludercic <philipk@posteo.net> Date: Sun, 18 Sep 2022 17:53:07 +0000 Bob Rogers <rogers@rgrjr.com> writes: > A quick Web search for "emacs cheat sheet" turns up the "GNU Emacs > Reference Card" as the first hit -- followed by a bunch of others. And > it occurs to me that, for a real newbie, a cheat sheet in a browser > window might be easier to work with than one within emacs itself. I might just be too young and lack the concentration that pre-gen-z people had that reference card always appeared too overwhelming for me. Honestly, I think it was less a matter of concentration and more a matter of memory for us oldsters. In the days of terminals with crappy bandwidth, a paper sheet beside you would save you from having to use that precious bandwidth on emacs help commands, which were necessarily just as slow as everything else. If you had good memory, you were golden; if not, you checked the cheat sheet; if you couldn't find it there, you tried the help commands. I guess my suggestion isn't much better, it is the same thing just less of it... FWIW, a friend and I put together a cheat sheet [1] for some total newbs forced to use emacs for a three-week class. We tried to make it less intimidating by making it more focused and organizing it carefully. -- Bob [1] http://www.rgrjr.com/emacs/emacs_cheat.html (may be dated) ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 17:53 ` Philip Kaludercic 2022-09-18 19:25 ` Bob Rogers @ 2022-09-18 20:38 ` wilnerthomas--- via Emacs development discussions. 2022-09-18 21:21 ` Philip Kaludercic 1 sibling, 1 reply; 95+ messages in thread From: wilnerthomas--- via Emacs development discussions. @ 2022-09-18 20:38 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Bob Rogers, Lars Ingebrigtsen, emacs-devel Sep 18, 2022, 17:53 by philipk@posteo.net: > Bob Rogers <rogers@rgrjr.com> writes: > >> From: Philip Kaludercic <philipk@posteo.net> >> Date: Sun, 18 Sep 2022 10:53:58 +0000 >> >> Lars Ingebrigtsen <larsi@gnus.org> writes: >> >> > Philip Kaludercic <philipk@posteo.net> writes: >> > >> >> There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that >> >> pops up a buffer with these contents: >> > >> > I think having a "cheat sheet" like this would be useful. >> >> Calling it a "cheat sheet" sounds like a good idea. I've added >> `cheat-sheet' as an alias: >> >> A quick Web search for "emacs cheat sheet" turns up the "GNU Emacs >> Reference Card" as the first hit -- followed by a bunch of others. And >> it occurs to me that, for a real newbie, a cheat sheet in a browser >> window might be easier to work with than one within emacs itself. >> A reference card is there to guide you, but most schools have banged in people's minds that things that help you constitute cheating. Total nonsense. > I might just be too young and lack the concentration that pre-gen-z > people had that reference card always appeared too overwhelming for me. > You rather read the whole Emacs Manual instead? > I guess my suggestion isn't much better, it is the same thing just less > of it... > >> -- Bob Rogers >> http://www.rgrjr.com/ >> >> [1] https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf >> Having categorisations does help you focus on the parts you need at a particular moment. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 20:38 ` wilnerthomas--- via Emacs development discussions. @ 2022-09-18 21:21 ` Philip Kaludercic 2022-09-18 22:45 ` Christopher Dimech 0 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-09-18 21:21 UTC (permalink / raw) To: wilnerthomas--- via Emacs development discussions. Cc: wilnerthomas, Bob Rogers, Lars Ingebrigtsen wilnerthomas--- via "Emacs development discussions." <emacs-devel@gnu.org> writes: >> I might just be too young and lack the concentration that pre-gen-z >> people had that reference card always appeared too overwhelming for me. >> > > You rather read the whole Emacs Manual instead? I am afraid I don't understand how you infer that from this thread. All I am saying is that the cheat sheet is a bit crowded, at least compared to the menu I am proposing. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 21:21 ` Philip Kaludercic @ 2022-09-18 22:45 ` Christopher Dimech 2022-09-18 23:00 ` Philip Kaludercic 0 siblings, 1 reply; 95+ messages in thread From: Christopher Dimech @ 2022-09-18 22:45 UTC (permalink / raw) To: Philip Kaludercic Cc: wilnerthomas--- via Emacs development discussions., wilnerthomas, Bob Rogers, Lars Ingebrigtsen > Sent: Monday, September 19, 2022 at 9:21 AM > From: "Philip Kaludercic" <philipk@posteo.net> > To: "wilnerthomas--- via Emacs development discussions." <emacs-devel@gnu.org> > Cc: wilnerthomas@tutanota.com, "Bob Rogers" <rogers@rgrjr.com>, "Lars Ingebrigtsen" <larsi@gnus.org> > Subject: Re: Adding a "quick-help" menu > > wilnerthomas--- via "Emacs development discussions." > <emacs-devel@gnu.org> writes: > > >> I might just be too young and lack the concentration that pre-gen-z > >> people had that reference card always appeared too overwhelming for me. > >> > > > > You rather read the whole Emacs Manual instead? > > I am afraid I don't understand how you infer that from this thread. All > I am saying is that the cheat sheet is a bit crowded, at least compared > to the menu I am proposing. Perhaps the menu could have categories so you won't have to see the whole thing. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 22:45 ` Christopher Dimech @ 2022-09-18 23:00 ` Philip Kaludercic 2022-09-19 1:40 ` Christopher Dimech 0 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-09-18 23:00 UTC (permalink / raw) To: Christopher Dimech Cc: wilnerthomas--- via Emacs development discussions., wilnerthomas, Bob Rogers, Lars Ingebrigtsen Christopher Dimech <dimech@gmx.com> writes: >> Sent: Monday, September 19, 2022 at 9:21 AM >> From: "Philip Kaludercic" <philipk@posteo.net> >> To: "wilnerthomas--- via Emacs development discussions." <emacs-devel@gnu.org> >> Cc: wilnerthomas@tutanota.com, "Bob Rogers" <rogers@rgrjr.com>, "Lars Ingebrigtsen" <larsi@gnus.org> >> Subject: Re: Adding a "quick-help" menu >> >> wilnerthomas--- via "Emacs development discussions." >> <emacs-devel@gnu.org> writes: >> >> >> I might just be too young and lack the concentration that pre-gen-z >> >> people had that reference card always appeared too overwhelming for me. >> >> >> > >> > You rather read the whole Emacs Manual instead? >> >> I am afraid I don't understand how you infer that from this thread. All >> I am saying is that the cheat sheet is a bit crowded, at least compared >> to the menu I am proposing. > > Perhaps the menu could have categories so you won't have to see the whole thing. So you mean something like a query like "what do you want help with"? You say file management and then it prints out the 5 or 6 commands related to basic file management? ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 23:00 ` Philip Kaludercic @ 2022-09-19 1:40 ` Christopher Dimech 0 siblings, 0 replies; 95+ messages in thread From: Christopher Dimech @ 2022-09-19 1:40 UTC (permalink / raw) To: Philip Kaludercic Cc: wilnerthomas--- via Emacs development discussions., wilnerthomas, Bob Rogers, Lars Ingebrigtsen > Sent: Monday, September 19, 2022 at 11:00 AM > From: "Philip Kaludercic" <philipk@posteo.net> > To: "Christopher Dimech" <dimech@gmx.com> > Cc: "wilnerthomas--- via Emacs development discussions." <emacs-devel@gnu.org>, wilnerthomas@tutanota.com, "Bob Rogers" <rogers@rgrjr.com>, "Lars Ingebrigtsen" <larsi@gnus.org> > Subject: Re: Adding a "quick-help" menu > > Christopher Dimech <dimech@gmx.com> writes: > > >> Sent: Monday, September 19, 2022 at 9:21 AM > >> From: "Philip Kaludercic" <philipk@posteo.net> > >> To: "wilnerthomas--- via Emacs development discussions." <emacs-devel@gnu.org> > >> Cc: wilnerthomas@tutanota.com, "Bob Rogers" <rogers@rgrjr.com>, "Lars Ingebrigtsen" <larsi@gnus.org> > >> Subject: Re: Adding a "quick-help" menu > >> > >> wilnerthomas--- via "Emacs development discussions." > >> <emacs-devel@gnu.org> writes: > >> > >> >> I might just be too young and lack the concentration that pre-gen-z > >> >> people had that reference card always appeared too overwhelming for me. > >> >> > >> > > >> > You rather read the whole Emacs Manual instead? > >> > >> I am afraid I don't understand how you infer that from this thread. All > >> I am saying is that the cheat sheet is a bit crowded, at least compared > >> to the menu I am proposing. > > > > Perhaps the menu could have categories so you won't have to see the whole thing. > > So you mean something like a query like "what do you want help with"? > You say file management and then it prints out the 5 or 6 commands > related to basic file management? Right. Examples Window and Buffer Commands Cursor Movement Commands Copy and Delete Commands Search Commands There could navigate through a completion list, then select which one you like. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 10:53 ` Philip Kaludercic 2022-09-18 17:03 ` Bob Rogers @ 2022-09-19 7:54 ` Lars Ingebrigtsen 2022-09-19 8:26 ` Po Lu 2022-09-19 9:08 ` Stefan Kangas 2022-09-19 15:21 ` Howard Melman 3 siblings, 1 reply; 95+ messages in thread From: Lars Ingebrigtsen @ 2022-09-19 7:54 UTC (permalink / raw) To: Philip Kaludercic; +Cc: emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > Calling it a "cheat sheet" sounds like a good idea. I've added > `cheat-sheet' as an alias: Thanks; I think this looks useful, and easy to extend if we want to. Philip Kaludercic <philipk@posteo.net> writes: >> Perhaps the menu could have categories so you won't have to see the >> whole thing. > > So you mean something like a query like "what do you want help with"? > You say file management and then it prints out the 5 or 6 commands > related to basic file management? I don't think that would be as useful. You need this when you don't really know what Emacs offers -- and Emacs has oddball terminology here, so just showing the entire cheat sheet is best. That is, if you know that you want to change the "window size" (what other editors would call "a pane" or "the file", perhaps), you don't need the cheat sheet that much. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-19 7:54 ` Lars Ingebrigtsen @ 2022-09-19 8:26 ` Po Lu 2022-09-19 9:08 ` Stefan Kangas 0 siblings, 1 reply; 95+ messages in thread From: Po Lu @ 2022-09-19 8:26 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Philip Kaludercic, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Thanks; I think this looks useful, and easy to extend if we want to. BTW, don't we already have Emacs flash cards? Maybe most of the content there could be reused. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-19 8:26 ` Po Lu @ 2022-09-19 9:08 ` Stefan Kangas 0 siblings, 0 replies; 95+ messages in thread From: Stefan Kangas @ 2022-09-19 9:08 UTC (permalink / raw) To: Po Lu, Lars Ingebrigtsen; +Cc: Philip Kaludercic, emacs-devel Po Lu <luangruo@yahoo.com> writes: > Lars Ingebrigtsen <larsi@gnus.org> writes: > >> Thanks; I think this looks useful, and easy to extend if we want to. > > BTW, don't we already have Emacs flash cards? > Maybe most of the content there could be reused. I think it has too much stuff on them to fit, unfortunately. It's not as focused and covers a much broader range of features. Having reviewed the reference card and Philip's cheat sheet, maybe "C-g" should be added to the cheat sheet. One idea: Without adding any new lines, it could replace "C-x u", which could in turn be moved under "File" to replace "C-x s" (which would be removed). ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 10:53 ` Philip Kaludercic 2022-09-18 17:03 ` Bob Rogers 2022-09-19 7:54 ` Lars Ingebrigtsen @ 2022-09-19 9:08 ` Stefan Kangas 2022-09-19 10:12 ` Philip Kaludercic 2022-09-19 15:21 ` Howard Melman 3 siblings, 1 reply; 95+ messages in thread From: Stefan Kangas @ 2022-09-19 9:08 UTC (permalink / raw) To: Philip Kaludercic, Lars Ingebrigtsen; +Cc: emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > Lars Ingebrigtsen <larsi@gnus.org> writes: > >> Philip Kaludercic <philipk@posteo.net> writes: >> >>> There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that >>> pops up a buffer with these contents: >> >> I think having a "cheat sheet" like this would be useful. > > Calling it a "cheat sheet" sounds like a good idea. I've added > `cheat-sheet' as an alias: Thanks, this looks great. Some comments after testing it: - I think we should use `help-for-help-header' for the headlines, not capitalize them, and align them with :align-to. - Should it be modal, like `C-h C-h'? - If not, I think it would be nice if you could remove it by typing "q" again. Perhaps point should be moved to the new buffer by default? (But then again, it doesn't do that with "*Help*" by default, sadly.) So maybe a repeat-map is appropriate? Just some ideas. - The keys should be linked to the corresponding command docstrings. - Wishlist: It would be great if it had an optional vertical view, perhaps that you could toggle with both a command and defcustom. Perhaps the vertical view could even be the default if the window width is too narrow to fit it all? Also, some nits: - "other" should be "other win." or "other window". - "rev. search" should be "search backwards". - "replace" could be "search & replace" or "search&replace" ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-19 9:08 ` Stefan Kangas @ 2022-09-19 10:12 ` Philip Kaludercic 2022-10-13 14:30 ` Philip Kaludercic 2022-10-17 5:10 ` Stefan Kangas 0 siblings, 2 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-09-19 10:12 UTC (permalink / raw) To: Stefan Kangas; +Cc: Lars Ingebrigtsen, emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> Lars Ingebrigtsen <larsi@gnus.org> writes: >> >>> Philip Kaludercic <philipk@posteo.net> writes: >>> >>>> There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that >>>> pops up a buffer with these contents: >>> >>> I think having a "cheat sheet" like this would be useful. >> >> Calling it a "cheat sheet" sounds like a good idea. I've added >> `cheat-sheet' as an alias: > > Thanks, this looks great. Some comments after testing it: > > - I think we should use `help-for-help-header' for the headlines, not > capitalize them, and align them with :align-to. That can be done. > - Should it be modal, like `C-h C-h'? > > - If not, I think it would be nice if you could remove it by typing "q" > again. > > Perhaps point should be moved to the new buffer by default? (But then > again, it doesn't do that with "*Help*" by default, sadly.) So maybe > a repeat-map is appropriate? Just some ideas. That depends on how this is to be used. Is this something a new user would use to quickly peek if they don't know how to do something, or should it serve as a permanent "cheat sheet" at the bottom of the screen (sort of like Nano). > - The keys should be linked to the corresponding command docstrings. This can also be done. > - Wishlist: It would be great if it had an optional vertical view, > perhaps that you could toggle with both a command and defcustom. > Perhaps the vertical view could even be the default if the window > width is too narrow to fit it all? I was just thinking about this too. I implemented this vertically, which is more complicated, because that is what the mg fork did too, but mg has no horizontal splits, so it had no choice. > Also, some nits: > > - "other" should be "other win." or "other window". > > - "rev. search" should be "search backwards". > > - "replace" could be "search & replace" or "search&replace" We can try this, my only concern is that this might use too much horizontal space. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-19 10:12 ` Philip Kaludercic @ 2022-10-13 14:30 ` Philip Kaludercic 2022-10-13 19:09 ` Lars Ingebrigtsen 2022-10-17 5:10 ` Stefan Kangas 1 sibling, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-10-13 14:30 UTC (permalink / raw) To: Stefan Kangas; +Cc: Lars Ingebrigtsen, emacs-devel [-- Attachment #1: Type: text/plain, Size: 2865 bytes --] (Sorry for the delay, I got distracted) Philip Kaludercic <philipk@posteo.net> writes: > Stefan Kangas <stefankangas@gmail.com> writes: > >> Philip Kaludercic <philipk@posteo.net> writes: >> >>> Lars Ingebrigtsen <larsi@gnus.org> writes: >>> >>>> Philip Kaludercic <philipk@posteo.net> writes: >>>> >>>>> There is a fork of mg (MicroEmacs)[0] that binds C-h q to a command that >>>>> pops up a buffer with these contents: >>>> >>>> I think having a "cheat sheet" like this would be useful. >>> >>> Calling it a "cheat sheet" sounds like a good idea. I've added >>> `cheat-sheet' as an alias: >> >> Thanks, this looks great. Some comments after testing it: >> >> - I think we should use `help-for-help-header' for the headlines, not >> capitalize them, and align them with :align-to. > > That can be done. This has turned out to be more complicated than I had initially assumed, because way the menu is constructed inserting special properties isn't that easy. Do you think that this would be a hard requirement. >> - Should it be modal, like `C-h C-h'? >> >> - If not, I think it would be nice if you could remove it by typing "q" >> again. >> >> Perhaps point should be moved to the new buffer by default? (But then >> again, it doesn't do that with "*Help*" by default, sadly.) So maybe >> a repeat-map is appropriate? Just some ideas. > > That depends on how this is to be used. Is this something a new user > would use to quickly peek if they don't know how to do something, or > should it serve as a permanent "cheat sheet" at the bottom of the screen > (sort of like Nano). I really think that this should be a persistent menu, so closing the menu with "q" seems like the wrong thing. Again, this is not a which-key alternative, the target audience are people who are struggling to remember how to open a file or kill a line. >> - The keys should be linked to the corresponding command docstrings. > > This can also be done. Has been added in the patch below. >> - Wishlist: It would be great if it had an optional vertical view, >> perhaps that you could toggle with both a command and defcustom. >> Perhaps the vertical view could even be the default if the window >> width is too narrow to fit it all? > > I was just thinking about this too. I implemented this vertically, > which is more complicated, because that is what the mg fork did too, but > mg has no horizontal splits, so it had no choice. I haven't implemented this yet, because I am uncertain if it is worth the additional complexity. >> Also, some nits: >> >> - "other" should be "other win." or "other window". >> >> - "rev. search" should be "search backwards". >> >> - "replace" could be "search & replace" or "search&replace" > > We can try this, my only concern is that this might use too much > horizontal space. Also did this, it seems to be fine. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Add-a-quick-help-menu.patch --] [-- Type: text/x-patch, Size: 6388 bytes --] From aa5e4b0e6f4aa60fed9c5b1dde3c590fc9a62e61 Mon Sep 17 00:00:00 2001 From: Philip Kaludercic <philipk@posteo.net> Date: Sat, 17 Sep 2022 16:52:01 +0200 Subject: [PATCH] Add a quick-help menu * lisp/help.el (help-map): Bind 'help-quit-or-quick' instead of 'help-quit'. (help-quick-sections): Add variable. (help-quick): Add main command. (cheat-sheet): Add alias for 'help-quick'. (help-quit-or-quick): Add auxiliary command. --- lisp/help.el | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 133 insertions(+), 1 deletion(-) diff --git a/lisp/help.el b/lisp/help.el index b4b9120da3..1d960cf269 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -112,7 +112,7 @@ help-map (define-key map "v" 'describe-variable) (define-key map "w" 'where-is) (define-key map "x" 'describe-command) - (define-key map "q" 'help-quit) + (define-key map "q" 'help-quit-or-quick) map) "Keymap for characters following the Help key.") @@ -125,11 +125,143 @@ global-map (defvar help-button-cache nil) \f + +(defvar help-quick-sections + '(("File" + (save-buffers-kill-terminal . "exit") + (find-file . "find") + (write-file . "write") + (save-buffer . "save") + (save-some-buffers . "all")) + ("Buffer" + (kill-buffer . "kill") + (list-buffers . "list") + (switch-to-buffer . "switch") + (goto-line . "goto line") + (read-only-mode . "read only")) + ("Window" + (delete-window . "only other") + (delete-other-windows . "only this") + (split-window-below . "split vert.") + (split-window-right . "split horiz.") + (other-window . "other window")) + ("Mark & Kill" + (set-mark-command . "mark") + (kill-line . "kill line") + (kill-ring-save . "kill region") + (yank . "yank") + (exchange-point-and-mark . "swap")) + ("Projects" + (project-switch-project . "switch") + (project-find-file . "find file") + (project-find-regexp . "search") + (project-query-replace-regexp . "search & replace") + (project-compile . "compile")) + ("Misc." + (undo . "undo") + (isearch-forward . "search") + (isearch-backward . "reverse search") + (query-replace . "search & replace") + (fill-paragraph . "reformat")))) + +(declare-function prop-match-value "text-property-search" (match)) + +;; Inspired by a mg fork (https://github.com/troglobit/mg) +(defun help-quick () + "Display a quick-help buffer." + (interactive) + (with-current-buffer (get-buffer-create "*Quick Help*") + (let ((inhibit-read-only t) (padding 2) blocks) + + ;; Go through every section and prepare a text-rectangle to be + ;; inserted later. + (dolist (section help-quick-sections) + (let ((max-key-len 0) (max-cmd-len 0) keys) + (dolist (ent (reverse (cdr section))) + (catch 'skip + (let* ((bind (where-is-internal (car ent) nil t)) + (key (if bind + (propertize + (key-description bind) + 'face 'help-key-binding) + (throw 'skip nil)))) + (setq max-cmd-len (max (length (cdr ent)) max-cmd-len) + max-key-len (max (length key) max-key-len)) + (push (list key (cdr ent) (car ent)) keys)))) + (when keys + (let ((fmt (format "%%-%ds %%-%ds%s" max-key-len max-cmd-len + (make-string padding ?\s))) + (width (+ max-key-len 1 max-cmd-len padding))) + (push `(,width + ,(propertize + (concat + (car section) + (make-string (- width (length (car section))) ?\s)) + 'face 'bold) + ,@(mapcar (lambda (ent) + (format fmt + (propertize + (car ent) + 'quick-help-cmd + (caddr ent)) + (cadr ent))) + keys)) + blocks))))) + + ;; Insert each rectangle in order until they don't fit into the + ;; frame any more, in which case the next sections are inserted + ;; in a new "line". + (erase-buffer) + (dolist (block (nreverse blocks)) + (when (> (+ (car block) (current-column)) (frame-width)) + (goto-char (point-max)) + (newline 2)) + (save-excursion + (insert-rectangle (cdr block))) + (end-of-line)) + (delete-trailing-whitespace) + + (save-excursion + (goto-char (point-min)) + (while-let ((match (text-property-search-forward 'quick-help-cmd))) + (make-text-button (prop-match-beginning match) + (prop-match-end match) + 'mouse-face 'highlight + 'button t + 'keymap button-map + 'action #'describe-symbol + 'button-data (prop-match-value match))))) + + (help-mode) + + ;; Display the buffer at the bottom of the frame... + (with-selected-window (display-buffer-at-bottom (current-buffer) '()) + ;; ... mark it as dedicated to prevent focus from being stolen + (set-window-dedicated-p (selected-window) t) + ;; ... and shrink it immediately. + (fit-window-to-buffer)) + (message + (substitute-command-keys "Toggle the quick help buffer using \\[help-quit-or-quick].")))) + +(defalias 'cheat-sheet #'help-quick) + (defun help-quit () "Just exit from the Help command's command loop." (interactive) nil) +(defun help-quit-or-quick () + "Call `help-quit' or `help-quick' depending on the context." + (interactive) + (cond + (help-buffer-under-preparation + ;; FIXME: There should be a better way to detect if we are in the + ;; help command loop. + (help-quit)) + ((and-let* ((window (get-buffer-window "*Quick Help*"))) + (quit-window t window))) + ((help-quick)))) + (defvar help-return-method nil "What to do to \"exit\" the help buffer. This is a list -- 2.37.3 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-13 14:30 ` Philip Kaludercic @ 2022-10-13 19:09 ` Lars Ingebrigtsen 2022-10-13 20:21 ` Philip Kaludercic ` (2 more replies) 0 siblings, 3 replies; 95+ messages in thread From: Lars Ingebrigtsen @ 2022-10-13 19:09 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Stefan Kangas, emacs-devel [-- Attachment #1: Type: text/plain, Size: 331 bytes --] Philip Kaludercic <philipk@posteo.net> writes: > * lisp/help.el (help-map): Bind 'help-quit-or-quick' instead of 'help-quit'. > (help-quick-sections): Add variable. I gave it a quick test, and it looks good to me. However, things don't line up on Ubuntu by default due to bug#57962 (which we really should try to fix soonish): [-- Attachment #2: Type: image/png, Size: 95697 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-13 19:09 ` Lars Ingebrigtsen @ 2022-10-13 20:21 ` Philip Kaludercic 2022-10-14 11:03 ` Lars Ingebrigtsen 2022-10-14 7:30 ` Philip Kaludercic 2022-10-16 0:29 ` Howard Melman 2 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-10-13 20:21 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Stefan Kangas, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> * lisp/help.el (help-map): Bind 'help-quit-or-quick' instead of 'help-quit'. >> (help-quick-sections): Add variable. > > I gave it a quick test, and it looks good to me. However, things don't > line up on Ubuntu by default due to bug#57962 (which we really should > try to fix soonish): One annoyance I have, that your screenshot illustrates is that the keybinding face is applied beyond just the key, even though I just `propertize' the result of (key-description bind). It seems the issue is that (format "%-10s" (propertize "test" 'prop 'val)) evaluates to #("test " 0 10 (prop val)) instead of just #("test " 0 4 (prop val)) ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-13 20:21 ` Philip Kaludercic @ 2022-10-14 11:03 ` Lars Ingebrigtsen 0 siblings, 0 replies; 95+ messages in thread From: Lars Ingebrigtsen @ 2022-10-14 11:03 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Stefan Kangas, emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > One annoyance I have, that your screenshot illustrates is that the > keybinding face is applied beyond just the key, even though I just > `propertize' the result of (key-description bind). It seems the issue > is that > > (format "%-10s" (propertize "test" 'prop 'val)) > > evaluates to > > #("test " 0 10 (prop val)) > > instead of just > > #("test " 0 4 (prop val)) Yes, I think you have to compute the widths "by hand" and avoid %10s format directives, unfortunately. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-13 19:09 ` Lars Ingebrigtsen 2022-10-13 20:21 ` Philip Kaludercic @ 2022-10-14 7:30 ` Philip Kaludercic 2022-10-14 11:08 ` Lars Ingebrigtsen 2022-10-16 0:29 ` Howard Melman 2 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-10-14 7:30 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Stefan Kangas, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> * lisp/help.el (help-map): Bind 'help-quit-or-quick' instead of 'help-quit'. >> (help-quick-sections): Add variable. > > I gave it a quick test, and it looks good to me. However, things don't > line up on Ubuntu by default due to bug#57962 (which we really should > try to fix soonish): So is this issue blocking the application of my patch, or should I go ahead and push the current version? ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-14 7:30 ` Philip Kaludercic @ 2022-10-14 11:08 ` Lars Ingebrigtsen 2022-10-14 18:10 ` Philip Kaludercic 0 siblings, 1 reply; 95+ messages in thread From: Lars Ingebrigtsen @ 2022-10-14 11:08 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Stefan Kangas, emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > So is this issue blocking the application of my patch, or should I go > ahead and push the current version? No, not a blocker -- go ahead and push when you feel it's ready. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-14 11:08 ` Lars Ingebrigtsen @ 2022-10-14 18:10 ` Philip Kaludercic 0 siblings, 0 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-10-14 18:10 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Stefan Kangas, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >> So is this issue blocking the application of my patch, or should I go >> ahead and push the current version? > > No, not a blocker -- go ahead and push when you feel it's ready. Done. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-13 19:09 ` Lars Ingebrigtsen 2022-10-13 20:21 ` Philip Kaludercic 2022-10-14 7:30 ` Philip Kaludercic @ 2022-10-16 0:29 ` Howard Melman 2022-10-16 16:01 ` Philip Kaludercic 2 siblings, 1 reply; 95+ messages in thread From: Howard Melman @ 2022-10-16 0:29 UTC (permalink / raw) To: emacs-devel A few comments on the text. In Window I think C-x 0 should be called kill (or close) because that what it does to the window, and this is meaningful if there is more than 2 windows in the frame. Kill matches the usage in Buffer. And perhaps C-x 1 should be labeled "kill others". Also I think C-x o should be called switch just like C-x b in Buffer. In Mark & Kill I would put Kill Line first so that the mark command is closer to the region and yank commands. Finally the text for C-x C-c is "exit" in the File column and I don't think that's clear enough that it exits emacs and not just a file. I know there isn't room to add emacs but maybe "quit" is clearer as quitting a file makes less sense (IMHO) than exiting one. -- Howard ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-16 0:29 ` Howard Melman @ 2022-10-16 16:01 ` Philip Kaludercic 2022-10-16 16:13 ` Howard Melman 0 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-10-16 16:01 UTC (permalink / raw) To: Howard Melman; +Cc: emacs-devel Howard Melman <hmelman@gmail.com> writes: > A few comments on the text. > > In Window I think C-x 0 should be called kill (or close) > because that what it does to the window, and this is > meaningful if there is more than 2 windows in the frame. > Kill matches the usage in Buffer. And perhaps C-x 1 should > be labeled "kill others". > > Also I think C-x o should be called switch just like C-x b > in Buffer. > > In Mark & Kill I would put Kill Line first so that the mark > command is closer to the region and yank commands. > > Finally the text for C-x C-c is "exit" in the File column > and I don't think that's clear enough that it exits emacs > and not just a file. I know there isn't room to add emacs > but maybe "quit" is clearer as quitting a file makes less > sense (IMHO) than exiting one. The contents of the help buffer are specified by the `help-quick-sections' variable in lisp/help.el. Feel free to prepare a patch with your suggestions, that would make it easier to see how they look like. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-16 16:01 ` Philip Kaludercic @ 2022-10-16 16:13 ` Howard Melman 2022-10-16 22:44 ` Philip Kaludercic 0 siblings, 1 reply; 95+ messages in thread From: Howard Melman @ 2022-10-16 16:13 UTC (permalink / raw) To: Philip Kaludercic; +Cc: emacs-devel On Oct 16, 2022, at 12:01 PM, Philip Kaludercic <philipk@posteo.net> wrote: > > Howard Melman <hmelman@gmail.com> writes: > >> A few comments on the text. >> >> In Window I think C-x 0 should be called kill (or close) >> because that what it does to the window, and this is >> meaningful if there is more than 2 windows in the frame. >> Kill matches the usage in Buffer. And perhaps C-x 1 should >> be labeled "kill others". >> >> Also I think C-x o should be called switch just like C-x b >> in Buffer. >> >> In Mark & Kill I would put Kill Line first so that the mark >> command is closer to the region and yank commands. >> >> Finally the text for C-x C-c is "exit" in the File column >> and I don't think that's clear enough that it exits emacs >> and not just a file. I know there isn't room to add emacs >> but maybe "quit" is clearer as quitting a file makes less >> sense (IMHO) than exiting one. > > The contents of the help buffer are specified by the > `help-quick-sections' variable in lisp/help.el. Feel free to prepare a > patch with your suggestions, that would make it easier to see how they > look like. I don't build my own emacs and haven't signed papers, so I hope my mere comments are understandable and sufficient for consideration. Howard ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-16 16:13 ` Howard Melman @ 2022-10-16 22:44 ` Philip Kaludercic 2022-10-17 1:00 ` Howard Melman ` (2 more replies) 0 siblings, 3 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-10-16 22:44 UTC (permalink / raw) To: Howard Melman; +Cc: emacs-devel Howard Melman <hmelman@gmail.com> writes: > On Oct 16, 2022, at 12:01 PM, Philip Kaludercic <philipk@posteo.net> > wrote: >> >> Howard Melman <hmelman@gmail.com> writes: >> >>> A few comments on the text. >>> >>> In Window I think C-x 0 should be called kill (or close) >>> because that what it does to the window, and this is >>> meaningful if there is more than 2 windows in the frame. >>> Kill matches the usage in Buffer. And perhaps C-x 1 should >>> be labeled "kill others". >>> >>> Also I think C-x o should be called switch just like C-x b >>> in Buffer. >>> >>> In Mark & Kill I would put Kill Line first so that the mark >>> command is closer to the region and yank commands. >>> >>> Finally the text for C-x C-c is "exit" in the File column >>> and I don't think that's clear enough that it exits emacs >>> and not just a file. I know there isn't room to add emacs >>> but maybe "quit" is clearer as quitting a file makes less >>> sense (IMHO) than exiting one. >> >> The contents of the help buffer are specified by the >> `help-quick-sections' variable in lisp/help.el. Feel free to prepare a >> patch with your suggestions, that would make it easier to see how they >> look like. > > I don't build my own emacs and haven't signed papers, so I hope > my mere comments are understandable and sufficient for consideration. No problem, here is how the buffer looks like after applying your suggestions: --8<---------------cut here---------------start------------->8--- File Buffer Window Mark & Kill Projects Misc. C-x C-f find C-x k kill C-x 0 kill C-k kill line C-x p p switch C-x C-c exit C-x C-w write C-x b switch C-x 1 kill others C-SPC mark C-x p f find file C-_ undo C-x C-s save M-g g goto line C-x 2 split vert. M-w kill region C-x p g search C-s search C-x s all C-x C-q read only C-x 3 split horiz. C-y yank C-x p r search & replace M-% search & replace C-x o switch C-x C-x swap C-x p c compile M-q reformat --8<---------------cut here---------------end--------------->8--- Instead of renaming "C-x C-c" I have moved it over to "Misc." and removed reverse search. There is some space under "File" and "Buffer" now, but I can't think an elementary command that would be a good fit. Any ideas? > Howard ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-16 22:44 ` Philip Kaludercic @ 2022-10-17 1:00 ` Howard Melman 2022-10-17 1:00 ` [External] : " Drew Adams 2022-10-17 6:17 ` Eli Zaretskii 2 siblings, 0 replies; 95+ messages in thread From: Howard Melman @ 2022-10-17 1:00 UTC (permalink / raw) To: emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > No problem, here is how the buffer looks like after applying your > suggestions: > > File Buffer Window Mark & Kill Projects Misc. > C-x C-f find C-x k kill C-x 0 kill C-k kill line C-x p p switch C-x C-c exit > C-x C-w write C-x b switch C-x 1 kill others C-SPC mark C-x p f find file C-_ undo > C-x C-s save M-g g goto line C-x 2 split vert. M-w kill region C-x p g search C-s search > C-x s all C-x C-q read only C-x 3 split horiz. C-y yank C-x p r search & replace M-% search & replace > C-x o switch C-x C-x swap C-x p c compile M-q reformat > Hmmm, having just seen Lars' image I didn't realize there was also a Projects and Misc. column. > Instead of renaming "C-x C-c" I have moved it over to "Misc." and > removed reverse search. So I agree C-x C-c makes some sense under Misc, but it is the only one in that column with an extra key, making it wider. I'll not that the actual File menu has C-x C-c in it and it's labeled Quit, so there's precedent for that too (the File column here has longer bindings). Projects should probably be Project to match the plurality of File, Buffer and Window. > There is some space under "File" and "Buffer" now, but I > can't think an elementary command that would be a good > fit. Any ideas? Maybe: C-x x r rename C-x x g revert C-x x n clone C-x C-j dired clone is a bit advanced but conceivably interesting for a newbie. I'm not sure dired-jump is suitable, but I use it a lot (way more than the others) and dired is something I think everyone should find useful. Maybe it's called "browse" here? Researching the above I realize that perhaps C-x C-w should be called "save as" instead of "write". That's what it's called in the File menu. Lastly I'm not sure if it fits or was considered but as a newbie I'd appreciate knowing about some prefix keys like C-h help M-g goto M-s search C-x r rects and registers C-x 4 windows C-x 5 frames C-x x buffers C-x p projects C-x t tabs C-x v version control particularly with which-key enabled which would easily offer more help if these are tried (C-h works too). I'm not sure all of those are appropriate, but it's what came to mind. -- Howard ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [External] : Re: Adding a "quick-help" menu 2022-10-16 22:44 ` Philip Kaludercic 2022-10-17 1:00 ` Howard Melman @ 2022-10-17 1:00 ` Drew Adams 2022-10-17 6:17 ` Eli Zaretskii 2 siblings, 0 replies; 95+ messages in thread From: Drew Adams @ 2022-10-17 1:00 UTC (permalink / raw) To: Philip Kaludercic, Howard Melman; +Cc: emacs-devel@gnu.org Well, since someone asked for opinions, and few've been expressed so far, here's one, FWIW. I'm not in favor of this quick-help menu - neither the organization nor the choice of what to present (so much Project, really?). Nor even how it's presented (UI). I particularly don't recommend replacing the usual `C-h q' with a `C-h q' where `q' doesn't mean "quit". "Quit or quick" is not a good idea, IMO. I vote to keep `q' as "quit" - here, there, and everywhere, unless there's some overriding good reason for `q' to do something else. And even then, don't give it a "quit-or-<other>" behavior. More could be said, but that's enough. I'd recommend that if someone really thinks this is a good idea then add it to GNU ELPA as a tiny library. Then see how much favor and use it gains. If users, especially new users, start to say how much they appreciate it, then consider melding it into the default UI. There's no hurry. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-16 22:44 ` Philip Kaludercic 2022-10-17 1:00 ` Howard Melman 2022-10-17 1:00 ` [External] : " Drew Adams @ 2022-10-17 6:17 ` Eli Zaretskii 2022-10-17 6:29 ` Philip Kaludercic 2 siblings, 1 reply; 95+ messages in thread From: Eli Zaretskii @ 2022-10-17 6:17 UTC (permalink / raw) To: Philip Kaludercic; +Cc: hmelman, emacs-devel > From: Philip Kaludercic <philipk@posteo.net> > Cc: emacs-devel@gnu.org > Date: Sun, 16 Oct 2022 22:44:33 +0000 > > --8<---------------cut here---------------start------------->8--- > File Buffer Window Mark & Kill Projects Misc. > C-x C-f find C-x k kill C-x 0 kill C-k kill line C-x p p switch C-x C-c exit > C-x C-w write C-x b switch C-x 1 kill others C-SPC mark C-x p f find file C-_ undo > C-x C-s save M-g g goto line C-x 2 split vert. M-w kill region C-x p g search C-s search > C-x s all C-x C-q read only C-x 3 split horiz. C-y yank C-x p r search & replace M-% search & replace > C-x o switch C-x C-x swap C-x p c compile M-q reformat > --8<---------------cut here---------------end--------------->8--- > > Instead of renaming "C-x C-c" I have moved it over to "Misc." It is IMO wrong to stuff C-x C-c too far from the beginning. Exiting an unfamiliar application is a frequent need, and it should ideally be right at the beginning. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-17 6:17 ` Eli Zaretskii @ 2022-10-17 6:29 ` Philip Kaludercic 2022-10-17 7:00 ` Eli Zaretskii 2022-10-17 7:12 ` Stefan Kangas 0 siblings, 2 replies; 95+ messages in thread From: Philip Kaludercic @ 2022-10-17 6:29 UTC (permalink / raw) To: Eli Zaretskii; +Cc: hmelman, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Philip Kaludercic <philipk@posteo.net> >> Cc: emacs-devel@gnu.org >> Date: Sun, 16 Oct 2022 22:44:33 +0000 >> >> --8<---------------cut here---------------start------------->8--- >> File Buffer Window Mark & Kill Projects Misc. >> C-x C-f find C-x k kill C-x 0 kill C-k kill line C-x p p switch C-x C-c exit >> C-x C-w write C-x b switch C-x 1 kill others C-SPC mark C-x p f find file C-_ undo >> C-x C-s save M-g g goto line C-x 2 split vert. M-w kill region C-x p g search C-s search >> C-x s all C-x C-q read only C-x 3 split horiz. C-y yank C-x p r search & replace M-% search & replace >> C-x o switch C-x C-x swap C-x p c compile M-q reformat >> --8<---------------cut here---------------end--------------->8--- >> >> Instead of renaming "C-x C-c" I have moved it over to "Misc." > > It is IMO wrong to stuff C-x C-c too far from the beginning. Exiting > an unfamiliar application is a frequent need, and it should ideally be > right at the beginning. I tend to agree, but it is also true that "File" might be the wrong section. Perhaps one should reconsider the order and move "Misc." to the first column? ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-17 6:29 ` Philip Kaludercic @ 2022-10-17 7:00 ` Eli Zaretskii 2022-10-17 7:12 ` Stefan Kangas 1 sibling, 0 replies; 95+ messages in thread From: Eli Zaretskii @ 2022-10-17 7:00 UTC (permalink / raw) To: Philip Kaludercic; +Cc: hmelman, emacs-devel > From: Philip Kaludercic <philipk@posteo.net> > Cc: hmelman@gmail.com, emacs-devel@gnu.org > Date: Mon, 17 Oct 2022 06:29:59 +0000 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> From: Philip Kaludercic <philipk@posteo.net> > >> Cc: emacs-devel@gnu.org > >> Date: Sun, 16 Oct 2022 22:44:33 +0000 > >> > >> --8<---------------cut here---------------start------------->8--- > >> File Buffer Window Mark & Kill Projects Misc. > >> C-x C-f find C-x k kill C-x 0 kill C-k kill line C-x p p switch C-x C-c exit > >> C-x C-w write C-x b switch C-x 1 kill others C-SPC mark C-x p f find file C-_ undo > >> C-x C-s save M-g g goto line C-x 2 split vert. M-w kill region C-x p g search C-s search > >> C-x s all C-x C-q read only C-x 3 split horiz. C-y yank C-x p r search & replace M-% search & replace > >> C-x o switch C-x C-x swap C-x p c compile M-q reformat > >> --8<---------------cut here---------------end--------------->8--- > >> > >> Instead of renaming "C-x C-c" I have moved it over to "Misc." > > > > It is IMO wrong to stuff C-x C-c too far from the beginning. Exiting > > an unfamiliar application is a frequent need, and it should ideally be > > right at the beginning. > > I tend to agree, but it is also true that "File" might be the wrong > section. "File" is not too bad because most applications have "Exit" or "Quit" on their File menu. We don't have to put Exit on File, but we should not stash it too far from the beginning, IMO. > Perhaps one should reconsider the order and move "Misc." to > the first column? I would call it "Edit" instead of "Misc", and I would have it be the 2nd or the 3rd column. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-17 6:29 ` Philip Kaludercic 2022-10-17 7:00 ` Eli Zaretskii @ 2022-10-17 7:12 ` Stefan Kangas 2022-10-17 15:32 ` Howard Melman 1 sibling, 1 reply; 95+ messages in thread From: Stefan Kangas @ 2022-10-17 7:12 UTC (permalink / raw) To: Philip Kaludercic, Eli Zaretskii; +Cc: hmelman, emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > I tend to agree, but it is also true that "File" might be the wrong > section. Perhaps one should reconsider the order and move "Misc." to > the first column? Or File as the first, and Misc as the second? OTOH, the "File" menu usually has "Quit" in it, so maybe it's fine to keep it there but move it to the bottom? ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-17 7:12 ` Stefan Kangas @ 2022-10-17 15:32 ` Howard Melman 0 siblings, 0 replies; 95+ messages in thread From: Howard Melman @ 2022-10-17 15:32 UTC (permalink / raw) To: Stefan Kangas; +Cc: Philip Kaludercic, Eli Zaretskii, emacs-devel On Oct 17, 2022, at 3:12 AM, Stefan Kangas <stefankangas@gmail.com> wrote: > > Philip Kaludercic <philipk@posteo.net> writes: > >> I tend to agree, but it is also true that "File" might be the wrong >> section. Perhaps one should reconsider the order and move "Misc." to >> the first column? > > Or File as the first, and Misc as the second? > > OTOH, the "File" menu usually has "Quit" in it, so maybe it's fine to > keep it there but move it to the bottom? I would leave it in the File menu and call it Quit. In most apps it's found in the file menu and in this case the width of the keybindings works out. Howard ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-19 10:12 ` Philip Kaludercic 2022-10-13 14:30 ` Philip Kaludercic @ 2022-10-17 5:10 ` Stefan Kangas 2022-10-17 6:31 ` Philip Kaludercic 1 sibling, 1 reply; 95+ messages in thread From: Stefan Kangas @ 2022-10-17 5:10 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Lars Ingebrigtsen, emacs-devel Philip Kaludercic <philipk@posteo.net> writes: >> - I think we should use `help-for-help-header' for the headlines, not >> capitalize them, and align them with :align-to. > > That can be done. I note that you did not use the `help-for-help-header' face for the headlines. They are also manually aligned, not with :align-to. I tried with this naive patch, which means that alignment is off, but the results look promising to me: diff --git a/lisp/help.el b/lisp/help.el index 1cfd044db8..3979d772bc 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -197,7 +197,7 @@ help-quick (concat (car section) (make-string (- width (length (car section))) ?\s)) - 'face 'bold) + 'face 'help-for-help-header) ,@(mapcar (lambda (ent) (format fmt (propertize In any case, I don't think using the face `bold' is best here, as that makes this hard to customize. I'd prefer a proper defface (whether it inherits from `help-for-help-header' by default or not). ^ permalink raw reply related [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-17 5:10 ` Stefan Kangas @ 2022-10-17 6:31 ` Philip Kaludercic 2022-10-20 5:58 ` Protesilaos Stavrou 0 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-10-17 6:31 UTC (permalink / raw) To: Stefan Kangas; +Cc: Lars Ingebrigtsen, emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > Philip Kaludercic <philipk@posteo.net> writes: > >>> - I think we should use `help-for-help-header' for the headlines, not >>> capitalize them, and align them with :align-to. >> >> That can be done. > > I note that you did not use the `help-for-help-header' face for the > headlines. They are also manually aligned, not with :align-to. > > I tried with this naive patch, which means that alignment is off, but > the results look promising to me: > > diff --git a/lisp/help.el b/lisp/help.el > index 1cfd044db8..3979d772bc 100644 > --- a/lisp/help.el > +++ b/lisp/help.el > @@ -197,7 +197,7 @@ help-quick > (concat > (car section) > (make-string (- width (length (car section))) ?\s)) > - 'face 'bold) > + 'face 'help-for-help-header) > ,@(mapcar (lambda (ent) > (format fmt > (propertize > > In any case, I don't think using the face `bold' is best here, as that > makes this hard to customize. I'd prefer a proper defface (whether it > inherits from `help-for-help-header' by default or not). FWIW I totally agree, and that was just forgetfulness on my part. As to :align-to, I believe I already explained that it was difficult to make use of the property considering the manner in which the buffer is prepared. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-17 6:31 ` Philip Kaludercic @ 2022-10-20 5:58 ` Protesilaos Stavrou 2022-10-20 6:37 ` Eli Zaretskii 0 siblings, 1 reply; 95+ messages in thread From: Protesilaos Stavrou @ 2022-10-20 5:58 UTC (permalink / raw) To: Philip Kaludercic, Stefan Kangas; +Cc: Lars Ingebrigtsen, emacs-devel > From: Philip Kaludercic <philipk@posteo.net> > Date: Mon, 17 Oct 2022 06:31:02 +0000 > > Stefan Kangas <stefankangas@gmail.com> writes: > >> Philip Kaludercic <philipk@posteo.net> writes: >> >>>> - I think we should use `help-for-help-header' for the headlines, not >>>> capitalize them, and align them with :align-to. >>> >>> That can be done. >> >> I note that you did not use the `help-for-help-header' face for the >> headlines. They are also manually aligned, not with :align-to. >> >> I tried with this naive patch, which means that alignment is off, but >> the results look promising to me: >> >> diff --git a/lisp/help.el b/lisp/help.el >> index 1cfd044db8..3979d772bc 100644 >> --- a/lisp/help.el >> +++ b/lisp/help.el >> @@ -197,7 +197,7 @@ help-quick >> (concat >> (car section) >> (make-string (- width (length (car section))) ?\s)) >> - 'face 'bold) >> + 'face 'help-for-help-header) >> ,@(mapcar (lambda (ent) >> (format fmt >> (propertize >> >> In any case, I don't think using the face `bold' is best here, as that >> makes this hard to customize. I'd prefer a proper defface (whether it >> inherits from `help-for-help-header' by default or not). > > FWIW I totally agree, and that was just forgetfulness on my part. As to > :align-to, I believe I already explained that it was difficult to make > use of the property considering the manner in which the buffer is > prepared. Thanks for doing this! The format notwithstanding, C-h q could also be mentioned in the TUTORIAL, no? I can suggest a patch for it and then do the translation at least for the Greek version. -- Protesilaos Stavrou https://protesilaos.com ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-20 5:58 ` Protesilaos Stavrou @ 2022-10-20 6:37 ` Eli Zaretskii 2022-10-20 11:27 ` Philip Kaludercic 0 siblings, 1 reply; 95+ messages in thread From: Eli Zaretskii @ 2022-10-20 6:37 UTC (permalink / raw) To: Protesilaos Stavrou; +Cc: philipk, stefankangas, larsi, emacs-devel > From: Protesilaos Stavrou <info@protesilaos.com> > Cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org > Date: Thu, 20 Oct 2022 08:58:09 +0300 > > The format notwithstanding, C-h q could also be mentioned in the > TUTORIAL, no? I'm not sure, FWIW. Why is it important to have "C-h q" in the tutorial? We only show a handful of Help commands there, and we do that for a reason. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-20 6:37 ` Eli Zaretskii @ 2022-10-20 11:27 ` Philip Kaludercic 2022-10-20 12:51 ` Eli Zaretskii 0 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-10-20 11:27 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Protesilaos Stavrou, stefankangas, larsi, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Protesilaos Stavrou <info@protesilaos.com> >> Cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org >> Date: Thu, 20 Oct 2022 08:58:09 +0300 >> >> The format notwithstanding, C-h q could also be mentioned in the >> TUTORIAL, no? > > I'm not sure, FWIW. Why is it important to have "C-h q" in the > tutorial? We only show a handful of Help commands there, and we do > that for a reason. I could imagine that something along the lines of "If you find it difficult to remember the important bindings, you can always request an overview with C-h q". ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-20 11:27 ` Philip Kaludercic @ 2022-10-20 12:51 ` Eli Zaretskii 2022-10-20 16:37 ` Philip Kaludercic 0 siblings, 1 reply; 95+ messages in thread From: Eli Zaretskii @ 2022-10-20 12:51 UTC (permalink / raw) To: Philip Kaludercic; +Cc: info, stefankangas, larsi, emacs-devel > From: Philip Kaludercic <philipk@posteo.net> > Cc: Protesilaos Stavrou <info@protesilaos.com>, stefankangas@gmail.com, > larsi@gnus.org, emacs-devel@gnu.org > Date: Thu, 20 Oct 2022 11:27:34 +0000 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> From: Protesilaos Stavrou <info@protesilaos.com> > >> Cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org > >> Date: Thu, 20 Oct 2022 08:58:09 +0300 > >> > >> The format notwithstanding, C-h q could also be mentioned in the > >> TUTORIAL, no? > > > > I'm not sure, FWIW. Why is it important to have "C-h q" in the > > tutorial? We only show a handful of Help commands there, and we do > > that for a reason. > > I could imagine that something along the lines of "If you find it > difficult to remember the important bindings, you can always request an > overview with C-h q". There are more important C-h bindings than that, if we think we should have more in the tutorial. I think we should see how helpful this new binding is before we decide it is a good addition to the tutorial. We've just added it a few days ago. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-20 12:51 ` Eli Zaretskii @ 2022-10-20 16:37 ` Philip Kaludercic 2022-10-20 16:39 ` Eli Zaretskii 0 siblings, 1 reply; 95+ messages in thread From: Philip Kaludercic @ 2022-10-20 16:37 UTC (permalink / raw) To: Eli Zaretskii; +Cc: info, stefankangas, larsi, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Philip Kaludercic <philipk@posteo.net> >> Cc: Protesilaos Stavrou <info@protesilaos.com>, stefankangas@gmail.com, >> larsi@gnus.org, emacs-devel@gnu.org >> Date: Thu, 20 Oct 2022 11:27:34 +0000 >> >> Eli Zaretskii <eliz@gnu.org> writes: >> >> >> From: Protesilaos Stavrou <info@protesilaos.com> >> >> Cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org >> >> Date: Thu, 20 Oct 2022 08:58:09 +0300 >> >> >> >> The format notwithstanding, C-h q could also be mentioned in the >> >> TUTORIAL, no? >> > >> > I'm not sure, FWIW. Why is it important to have "C-h q" in the >> > tutorial? We only show a handful of Help commands there, and we do >> > that for a reason. >> >> I could imagine that something along the lines of "If you find it >> difficult to remember the important bindings, you can always request an >> overview with C-h q". > > There are more important C-h bindings than that, if we think we should > have more in the tutorial. Out of curiosity, what do you think these should be? > I think we should see how helpful this new binding is before we decide > it is a good addition to the tutorial. We've just added it a few days > ago. This sounds good to me. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-10-20 16:37 ` Philip Kaludercic @ 2022-10-20 16:39 ` Eli Zaretskii 0 siblings, 0 replies; 95+ messages in thread From: Eli Zaretskii @ 2022-10-20 16:39 UTC (permalink / raw) To: Philip Kaludercic; +Cc: info, stefankangas, larsi, emacs-devel > From: Philip Kaludercic <philipk@posteo.net> > Cc: info@protesilaos.com, stefankangas@gmail.com, larsi@gnus.org, > emacs-devel@gnu.org > Date: Thu, 20 Oct 2022 16:37:31 +0000 > > Eli Zaretskii <eliz@gnu.org> writes: > > > There are more important C-h bindings than that, if we think we should > > have more in the tutorial. > > Out of curiosity, what do you think these should be? "C-h m" and "C-h v" come to mind. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: Adding a "quick-help" menu 2022-09-18 10:53 ` Philip Kaludercic ` (2 preceding siblings ...) 2022-09-19 9:08 ` Stefan Kangas @ 2022-09-19 15:21 ` Howard Melman 3 siblings, 0 replies; 95+ messages in thread From: Howard Melman @ 2022-09-19 15:21 UTC (permalink / raw) To: emacs-devel [-- Attachment #1: Type: text/plain, Size: 260 bytes --] >> I think having a "cheat sheet" like this would be useful. > > Calling it a "cheat sheet" sounds like a good idea. I've added > `cheat-sheet' as an alias: I do think this could be useful. I tried running it on 28.2 and the last two rows didn't line up: [-- Attachment #2: Screen Shot 2022-09-19 at 11.17.52 AM.png --] [-- Type: image/png, Size: 91654 bytes --] [-- Attachment #3: Type: text/plain, Size: 145 bytes --] Also, I know this is meant to teach the key-bindings, but it seems like a transient of this stuff might also be useful to newbies. -- Howard ^ permalink raw reply [flat|nested] 95+ messages in thread
end of thread, other threads:[~2022-10-20 16:39 UTC | newest] Thread overview: 95+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-09-16 15:43 Adding a "quick-help" menu Philip Kaludercic 2022-09-16 16:11 ` Sean Whitton 2022-09-16 16:24 ` Stefan Kangas 2022-09-16 16:48 ` Philip Kaludercic 2022-09-16 17:03 ` Sławomir Grochowski 2022-09-16 17:22 ` Philip Kaludercic 2022-09-17 12:09 ` Gregor Zattler 2022-09-17 14:44 ` Philip Kaludercic 2022-09-17 17:48 ` Stefan Kangas 2022-09-17 21:45 ` Philip Kaludercic 2022-09-18 0:05 ` Stefan Kangas 2022-09-18 5:41 ` Eli Zaretskii 2022-09-18 9:10 ` Philip Kaludercic 2022-09-18 5:07 ` Visuwesh 2022-09-18 7:51 ` Gregor Zattler 2022-09-17 14:53 ` which-key (was: Adding a "quick-help" menu) Stefan Monnier 2022-09-18 5:12 ` which-key Visuwesh 2022-09-18 8:56 ` which-key Gregory Heytings 2022-09-18 8:58 ` which-key (was: Adding a "quick-help" menu) Gregory Heytings 2022-09-18 9:19 ` which-key Po Lu 2022-09-18 9:53 ` which-key Gregory Heytings 2022-09-18 10:10 ` which-key Lars Ingebrigtsen 2022-09-18 13:51 ` which-key Stefan Monnier 2022-09-18 15:39 ` which-key Stefan Kangas 2022-09-18 16:43 ` which-key Gregor Zattler 2022-09-18 16:49 ` which-key Gregory Heytings 2022-09-19 8:08 ` which-key Lars Ingebrigtsen 2022-09-19 8:19 ` which-key Gregory Heytings 2022-09-19 13:26 ` which-key Corwin Brust 2022-09-19 23:43 ` which-key Emanuel Berg 2022-09-19 8:06 ` which-key Lars Ingebrigtsen 2022-09-19 9:08 ` which-key Stefan Kangas 2022-09-18 11:09 ` which-key Po Lu 2022-09-17 16:47 ` [External] : Re: Adding a "quick-help" menu Drew Adams 2022-09-16 17:11 ` Stefan Kangas 2022-09-16 17:29 ` Philip Kaludercic 2022-09-16 17:38 ` [External] : " Drew Adams 2022-09-16 17:36 ` Drew Adams 2022-09-16 18:00 ` Stefan Monnier 2022-09-17 1:56 ` Po Lu 2022-09-16 21:03 ` Philip Kaludercic 2022-09-17 14:53 ` Philip Kaludercic 2022-09-17 1:54 ` Po Lu 2022-09-17 2:51 ` Stefan Kangas 2022-09-17 3:28 ` Stefan Monnier 2022-09-17 4:01 ` Visuwesh 2022-09-17 4:50 ` Po Lu 2022-09-17 4:48 ` Po Lu 2022-09-17 6:38 ` Stefan Kangas 2022-09-17 8:24 ` Po Lu 2022-09-17 8:49 ` Philip Kaludercic 2022-09-17 16:45 ` [External] : " Drew Adams 2022-09-17 17:36 ` Philip Kaludercic 2022-09-18 10:11 ` Lars Ingebrigtsen 2022-09-18 10:53 ` Philip Kaludercic 2022-09-18 17:03 ` Bob Rogers 2022-09-18 17:53 ` Philip Kaludercic 2022-09-18 19:25 ` Bob Rogers 2022-09-18 20:38 ` wilnerthomas--- via Emacs development discussions. 2022-09-18 21:21 ` Philip Kaludercic 2022-09-18 22:45 ` Christopher Dimech 2022-09-18 23:00 ` Philip Kaludercic 2022-09-19 1:40 ` Christopher Dimech 2022-09-19 7:54 ` Lars Ingebrigtsen 2022-09-19 8:26 ` Po Lu 2022-09-19 9:08 ` Stefan Kangas 2022-09-19 9:08 ` Stefan Kangas 2022-09-19 10:12 ` Philip Kaludercic 2022-10-13 14:30 ` Philip Kaludercic 2022-10-13 19:09 ` Lars Ingebrigtsen 2022-10-13 20:21 ` Philip Kaludercic 2022-10-14 11:03 ` Lars Ingebrigtsen 2022-10-14 7:30 ` Philip Kaludercic 2022-10-14 11:08 ` Lars Ingebrigtsen 2022-10-14 18:10 ` Philip Kaludercic 2022-10-16 0:29 ` Howard Melman 2022-10-16 16:01 ` Philip Kaludercic 2022-10-16 16:13 ` Howard Melman 2022-10-16 22:44 ` Philip Kaludercic 2022-10-17 1:00 ` Howard Melman 2022-10-17 1:00 ` [External] : " Drew Adams 2022-10-17 6:17 ` Eli Zaretskii 2022-10-17 6:29 ` Philip Kaludercic 2022-10-17 7:00 ` Eli Zaretskii 2022-10-17 7:12 ` Stefan Kangas 2022-10-17 15:32 ` Howard Melman 2022-10-17 5:10 ` Stefan Kangas 2022-10-17 6:31 ` Philip Kaludercic 2022-10-20 5:58 ` Protesilaos Stavrou 2022-10-20 6:37 ` Eli Zaretskii 2022-10-20 11:27 ` Philip Kaludercic 2022-10-20 12:51 ` Eli Zaretskii 2022-10-20 16:37 ` Philip Kaludercic 2022-10-20 16:39 ` Eli Zaretskii 2022-09-19 15:21 ` Howard Melman
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).