ergoemacs / ergoemacs-mode

ergoemacs-mode
ergoemacs.github.io/
GNU General Public License v3.0
293 stars 35 forks source link

f11 and f12 with iswitchb #278

Closed mattfidler closed 10 years ago

mattfidler commented 10 years ago

https://groups.google.com/forum/#!topic/ergoemacs/N79lFBAMBM0

mattfidler commented 10 years ago

Started in 2a56a36

mattfidler commented 10 years ago

For some reason the keymap is blank.

mattfidler commented 10 years ago

Also applies to isearch-mode-hook

mattfidler commented 10 years ago

But does not apply to minibuffer-setup-hook

mattfidler commented 10 years ago

The mode indeed modifies the keymap:

|--------------------+-------------------------------------|
| key                | binding                             |
|--------------------+-------------------------------------|
| [Alt+D]            | `iswitchb-kill-buffer'              |
| [Ctrl+X][Ctrl+F]   | `iswitchb-find-file'                |
| [↑]                | `previous-history-element'          |
| [↓]                | `next-history-element'              |
| [Ctrl+S]           | `iswitchb-next-match'               |
| [Ctrl+R]           | `iswitchb-prev-match'               |
| [Ctrl+N]           | `iswitchb-toggle-ignore'            |
| [Ctrl+K]           | `iswitchb-kill-buffer'              |
| [Ctrl+G]           | `minibuffer-keyboard-quit'          |
| [Ctrl+C]           | `iswitchb-toggle-case'              |
| [Ctrl+F]           | `iswitchb-next-match'               |
| [Ctrl+G]           | `minibuffer-keyboard-quit'          |
| [↹Tab]             | `iswitchb-complete'                 |
| [Ctrl+J]           | `iswitchb-select-buffer-text'       |
| [Ctrl+K]           | `iswitchb-kill-buffer'              |
| [Enter⏎]           | `iswitchb-exit-minibuffer'          |
| [Ctrl+N]           | `iswitchb-toggle-ignore'            |
| [Ctrl+O]           | `iswitchb-find-file'                |
| [Ctrl+R]           | `iswitchb-prev-match'               |
| [Ctrl+S]           | `iswitchb-next-match'               |
| [Ctrl+T]           | `iswitchb-toggle-regexp'            |
| [?]                | `iswitchb-completion-help'          |
| [Ctrl+.]           | `minibuffer-keyboard-quit'          |
| [Ctrl+tab]         | `file-cache-minibuffer-complete'    |
| [Alt+f11]          | `previous-matching-history-element' |
| [Alt+f12]          | `next-matching-history-element'     |
| [⇧Shift+f11]       | `iswitchb-prev-match'               |
| [⇧Shift+f12]       | `iswitchb-next-match'               |
| [XF86Back]         | `previous-history-element'          |
| [XF86Forward]      | `next-history-element'              |
| [↓]                | `next-history-element'              |
| [escape]           | `minibuffer-keyboard-quit'          |
| [F11]              | `iswitchb-prev-match'               |
| [F12]              | `iswitchb-next-match'               |
| [PgDn]             | `next-history-element'              |
| [PgUp]             | `previous-history-element'          |
| [↑]                | `previous-history-element'          |
|--------------------+-------------------------------------|
| [▤][y]             | `iswitchb-find-file'                |
|--------------------+-------------------------------------|
| [Ctrl+X][Ctrl+F]   | `iswitchb-find-file'                |
|--------------------+-------------------------------------|
| [Alt+Enter⏎]       | `iswitchb-select-buffer-text'       |
| [Alt+/]            | `iswitchb-toggle-regexp'            |
| [Alt+?]            | `iswitchb-toggle-case'              |
| [Alt+⇧Shift+J]     | `iswitchb-prev-match'               |
| [Alt+D]            | `iswitchb-kill-buffer'              |
| [Alt+E]            | `next-history-element'              |
| [Alt+H][..][Alt+I] | `iswitchb-next-match'               |
| [Alt+J]            | `iswitchb-prev-match'               |
| [Alt+N]            | `iswitchb-prev-match'               |
| [Alt+P]            | `previous-history-element'          |
| [Alt+R]            | `previous-matching-history-element' |
| [Alt+S]            | `next-matching-history-element'     |
| [Alt+U]            | `previous-history-element'          |
|--------------------+-------------------------------------|

In theory it should work.

Addititionally decomposing the keymap doesn't work

(keymap
 (apps keymap
       (121 . iswitchb-find-file))
 (15 . iswitchb-find-file)
 (6 . iswitchb-next-match)
 (11 . iswitchb-kill-buffer)
 (3 . iswitchb-toggle-case)
 (14 . iswitchb-toggle-ignore)
 (24 keymap
     (6 . iswitchb-find-file))
 (20 . iswitchb-toggle-regexp)
 (18 . iswitchb-prev-match)
 (19 . iswitchb-next-match)
 (63 . iswitchb-completion-help)
 (f11 . iswitchb-prev-match)
 (f12 . iswitchb-next-match)
 (S-f11 . iswitchb-prev-match)
 (S-f12 . iswitchb-next-match)
 (M-f11 . previous-matching-history-element)
 (M-f12 . next-matching-history-element)
 (67108910 . minibuffer-keyboard-quit)
 (escape . minibuffer-keyboard-quit)
 (menu-bar keymap
       (minibuf "Minibuf" keymap
            (previous menu-item "Previous History Item" previous-history-element :help "Put previous minibuffer history element in the minibuffer")
            (next menu-item "Next History Item" next-history-element :help "Put next minibuffer history element in the minibuffer")
            (isearch-backward menu-item "Isearch History Backward" isearch-backward :help "Incrementally search minibuffer history backward")
            (isearch-forward menu-item "Isearch History Forward" isearch-forward :help "Incrementally search minibuffer history forward")
            (return menu-item "Enter" exit-minibuffer :key-sequence "
" :help "Terminate input and exit minibuffer")
            (quit menu-item "Quit" abort-recursive-edit :help "Abort input and exit minibuffer")
            "Minibuf"))
 (10 . iswitchb-select-buffer-text)
 (13 . iswitchb-exit-minibuffer)
 (7 . minibuffer-keyboard-quit)
 (C-tab . file-cache-minibuffer-complete)
 (9 . iswitchb-complete)
 (XF86Back . previous-history-element)
 (up . previous-history-element)
 (prior . previous-history-element)
 (XF86Forward . next-history-element)
 (down . next-history-element)
 (next . next-history-element)
 (27 keymap
     (106 . iswitchb-prev-match)
     (74 . iswitchb-prev-match)
     (100 . iswitchb-kill-buffer)
     (104 . iswitchb-next-match)
     (105 . iswitchb-next-match)
     (47 . iswitchb-toggle-regexp)
     (63 . iswitchb-toggle-case)
     (117 . previous-history-element)
     (101 . next-history-element)
     (13 . iswitchb-select-buffer-text)
     (114 . previous-matching-history-element)
     (115 . next-matching-history-element)
     (112 . previous-history-element)
     (110 . iswitchb-prev-match)))
mattfidler commented 10 years ago

I think it is the order that matters.

minibuffer-setup-hook is a variable defined in `C source code'.
Its value is
(iswitchb-minibuffer-setup ergoemacs--for-minibuffer-setup-hook-and-minibuffer-local-map rfn-eshadow-setup-minibuffer minibuffer-history-isearch-setup minibuffer-history-initialize)

  This variable may be risky if used as a file-local variable.

Documentation:
Normal hook run just after entry to minibuffer.

[back]
mattfidler commented 10 years ago

Well after changing that, the issue still exists.

minibuffer-setup-hook is a variable defined in `C source code'.
Its value is
(ergoemacs--for-minibuffer-setup-hook-and-minibuffer-local-map iswitchb-minibuffer-setup rfn-eshadow-setup-minibuffer minibuffer-history-isearch-setup minibuffer-history-initialize)

  This variable may be risky if used as a file-local variable.

Documentation:
Normal hook run just after entry to minibuffer.

[back]
mattfidler commented 10 years ago

The order that it runs now is:

Run ergoemacs--for-minibuffer-setup-hook-and-minibuffer-local-map
Iswitchb mode enabled
Run ergoemacs--for-iswitchb-define-mode-map-hook-and-iswitchb-mode-map
Run ergoemacs--for-minibuffer-setup-hook-and-minibuffer-local-map