4

This question already has an answer here:

I am writing a small window navigation and manipulation package. Windows are numbered very much like WindowNumberingMode.

To make this concrete I have a series of commands:

"C-, 1"   ; Move focus to (select) window #1
..        ; ..
"C-, 9"   ; Move focus to (select) window #9
"C-, m 1" ; Move current buffer and focus to window #1
..        ; ..
"C-, m 9" ; Move current buffer and focus to window #9
"C-, x 1" ; Exchange current buffer and focus with window #1
..        ; ..
"C-, x 9" ; Exchange current buffer and focus with window #9
..        ; ..

At the time that I type "C-," I would like to offer visual prompts (similar to switch-window):

Can I do this and continue collecting the remainder of my key-sequence? Do I need "C-," to switch to a new minor-mode?

marked as duplicate by Drew, Andrew Swann, Tyler, Mark Karpov, Stefan Apr 12 '16 at 13:22

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 5
    I am not trying to demotivate your package development, but I believe the ace-window package gives this or similar functionality. You can study that package to see how it implements it. – Kaushal Modi Sep 17 '15 at 14:15
  • 1
    You can also look at hydra : C-, would be bound to the hydra body, and 1, 9... would be hydra heads. See :pre and :post to set up visual hints. – ffevotte Sep 17 '15 at 18:43
  • 2
    IIUC, this question is not a duplicate of Emacs bind key to prefix: in this question the OP wants the prefix to do something while still allowing the user to subsequently press keys to terminate the action. In the other question, the OP wants to "alias" a prefix sequence to a key binding, in such a way that for example pressing C-x C-x a is the same as pressing C-c a. – ffevotte Sep 18 '15 at 7:11
  • 1
    I think that you can do what you want using set-transient-map. You can find examples of its use. I don't think there should be a problem with multiple requests, whether from pre-command-hook or otherwise - they are handled sequentially, after all. But give it a try, to see. – Drew Sep 18 '15 at 21:30
  • 1
    Wrt my parenthetical remark: A key can be bound to a command that, when invoked, returns a keymap. See C-h f keymapp and the Elisp manual, node Format of Keymaps. IOW, this is one possibility for (keymapp f): (and (symbolp f) (fboundp f) (keymapp (symbol-function f))) – Drew Sep 18 '15 at 21:35

Browse other questions tagged or ask your own question.