New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
evil-collection-mu4e update required #695
Comments
There have been even more significant refactoring of mu4e which has now completely broken the evil-colleciton mu4e module for mu4e version 1.9.14. In particular, the code which updated the mu4e main 'menu' screen so that the key bindings reflect the new evil bindings is now broken because the way the data in that screen is being generated has been completely re-factored. The bad news is the existing evil-collection code in the mu4e module will need complete re-working. The good news is that this could be cleaner and easier given the refactoring which has been done in mu4e. The challenge will be in keeping compatibility with the 1.8.x (release) branch, which still uses the older code. The quick and dirty fix I've used was to just comment out the add-hook call which adds the function that updates the main screen. I don't care if it shows the wrong key bindings as I don't actually use that information anyway. |
We'll need a volunteer for someone to update mu4e as both I and @condy0919 don't use mu4e anymore/ever. |
I reached out to the creator of mu4e to see if there was anything that
could be done in mu4e to simplify updating of the interface to handle
evil key bindings.
Good news is, Dirk responded very quickly and made some adjustments to
the development version of mu4e so that modified key bindings are
automatically reflected in the mu4e main page. This *greatly* simplifies
the evil collection mu4e module as it removes the need to do the search
and replace operations on the mu4e main buffer to update key binding
info.
I made a very simple cut down version of the evil collection mu4e module
for testing purposes and it seems to be working really well. The mu4e
main buffer now reports the evil key bidings rather than the standard
emacs bindings and there is no need to do any search/replace on that
buffer (which was fragile and prone to breakage with updates).
A couple of issues have since been identified for people using hydra
which Dirk is working on, so things are still in a little flux. I really
just wanted to update the issue to let people know what progress is
happening. Just in case anyone is interested, attached is the elisp file
I'm using in place of the normal evil colleciton mu4e module. Note that
it only works with the most recent development version of mu4e and
things are likely to change.
Once things settle and assuming I can find the time, I will submit a
PR. However, that may be a ways off.
(require 'mu4e nil t)
(defconst evil-collection-mu4e-maps '(mu4e-main-mode-map
mu4e-headers-mode-map
mu4e-view-mode-map
mu4e-compose-mode-map
mu4e-search-minor-mode-map))
(defun evil-collection-mu4e-set-state ()
"Set the appropriate initial state of all mu4e modes."
(dolist (mode '(mu4e-main-mode
mu4e-headers-mode
mu4e-view-mode
mu4e-org-mode))
(evil-set-initial-state mode 'normal))
(evil-set-initial-state 'mu4e-compose-mode 'insert))
;; When using org-mu4e, the above leads to an annoying behaviour, because
;; switching from message body to header activates mu4e-compose-mode, thus
;; putting the user into insert-state. The below code, together with the hooks
;; set in evil-collection-mu4e-setup fixes this issue.
(defun evil-collection-mu4e-org-set-header-to-normal-mode ()
(evil-set-initial-state 'mu4e-compose-mode 'normal))
(defun evil-collection-mu4e-org-set-header-to-insert-mode ()
(evil-set-initial-state 'mu4e-compose-mode 'insert))
(defvar evil-collection-mu4e-mode-map-bindings
`((mu4e-main-mode-map
"J" mu4e~headers-jump-to-maildir
"j" next-line
"k" previous-line
"u" mu4e-update-mail-and-index
"gr" revert-buffer
"b" mu4e-search-bookmark
"B" mu4e-search-bookmark-edit
"N" mu4e-news
";" mu4e-context-switch
"H" mu4e-display-manual
"C" mu4e-compose-new
"cc" mu4e-compose-new
"x" mu4e-kill-update-mail
"A" mu4e-about
"f" smtpmail-send-queued-mail
"m" mu4e~main-toggle-mail-sending-mode
"s" mu4e-search
"q" mu4e-quit)
(mu4e-headers-mode-map
"q" mu4e~headers-quit-buffer
"J" mu4e~headers-jump-to-maildir
"C" mu4e-compose-new
"E" mu4e-compose-edit
"F" mu4e-compose-forward
"R" mu4e-compose-reply
"cc" mu4e-compose-new
"ce" mu4e-compose-edit
"cf" mu4e-compose-forward
"cr" mu4e-compose-reply
"o" mu4e-headers-change-sorting
"j" mu4e-headers-next
"k" mu4e-headers-prev
"gr" mu4e-search-rerun
"b" mu4e-search-bookmark
"B" mu4e-search-bookmark-edit
";" mu4e-context-switch
,(kbd "RET") mu4e-headers-view-message
"/" mu4e-search-narrow
"s" mu4e-search
"S" mu4e-search-edit
"x" mu4e-mark-execute-all
"a" mu4e-headers-action
"*" mu4e-headers-mark-for-something ; TODO: Don't override evil-seach-word-forward?
"&" mu4e-headers-mark-custom
"A" mu4e-headers-mark-for-action
"m" mu4e-headers-mark-for-move
"r" mu4e-headers-mark-for-refile
"D" mu4e-headers-mark-for-delete
"d" mu4e-headers-mark-for-trash
"=" mu4e-headers-mark-for-untrash
"u" mu4e-headers-mark-for-unmark
"U" mu4e-mark-unmark-all
"?" mu4e-headers-mark-for-unread
"!" mu4e-headers-mark-for-read
"%" mu4e-headers-mark-pattern
"+" mu4e-headers-mark-for-flag
"-" mu4e-headers-mark-for-unflag
"[[" mu4e-headers-prev-unread
"]]" mu4e-headers-next-unread
"gk" mu4e-headers-prev-unread
"gj" mu4e-headers-next-unread
"\C-j" mu4e-headers-next
"\C-k" mu4e-headers-prev
"zr" mu4e-headers-toggle-include-related
"zt" mu4e-headers-toggle-threading
"zd" mu4e-headers-toggle-skip-duplicates
"gl" mu4e-show-log
"gv" mu4e-select-other-view
"T" (lambda ()
(interactive)
(mu4e-headers-mark-thread nil '(read))))
(mu4e-compose-mode-map
"gg" mu4e-compose-goto-top
"G" mu4e-compose-goto-bottom
"ZD" message-dont-send
"ZF" mml-attach-file
"ZQ" mu4e-message-kill-buffer
"ZZ" message-send-and-exit)
(mu4e-search-minor-mode-map
"J" mu4e-search-maildir)
(mu4e-view-mode-map
" " mu4e-view-scroll-up-or-next
[tab] shr-next-link
[backtab] shr-previous-link
"q" mu4e-view-quit
"gx" mu4e-view-go-to-url
"gX" mu4e-view-fetch-url
"C" mu4e-compose-new
"H" mu4e-view-toggle-html
;; "E" mu4e-compose-edit
;; "F" mu4e-compose-forward
"R" mu4e-compose-reply
"cc" mu4e-compose-new
"ce" mu4e-compose-edit
"cf" mu4e-compose-forward
"cr" mu4e-compose-reply
"p" mu4e-view-save-attachments
"O" mu4e-headers-change-sorting
"A" mu4e-view-mime-part-action ; Since 1.6, uses gnus view by default
"a" mu4e-view-action
"J" mu4e~headers-jump-to-maildir
"[[" mu4e-view-headers-prev-unread
"]]" mu4e-view-headers-next-unread
"gk" mu4e-view-headers-prev-unread
"gj" mu4e-view-headers-next-unread
"\C-j" mu4e-view-headers-next
"\C-k" mu4e-view-headers-prev
"x" mu4e-view-marked-execute
"&" mu4e-view-mark-custom
"*" mu4e-view-mark-for-something ; TODO: Don't override "*".
"m" mu4e-view-mark-for-move
"r" mu4e-view-mark-for-refile
"D" mu4e-view-mark-for-delete
"d" mu4e-view-mark-for-trash
"=" mu4e-view-mark-for-untrash
"u" mu4e-view-unmark
"U" mu4e-view-unmark-all
"?" mu4e-view-mark-for-unread
"!" mu4e-view-mark-for-read
"%" mu4e-view-mark-pattern
"+" mu4e-view-mark-for-flag
"-" mu4e-view-mark-for-unflag
"zr" mu4e-headers-toggle-include-related
"zt" mu4e-headers-toggle-threading
"za" mu4e-view-toggle-hide-cited
"gl" mu4e-show-log
"s" mu4e-view-search-edit
"|" mu4e-view-pipe
"." mu4e-view-raw-message
,(kbd "C--") mu4e-headers-split-view-shrink
,(kbd "C-+") mu4e-headers-split-view-grow
"T" (lambda ()
(interactive)
(mu4e-headers-mark-thread nil '(read)))
,@(when evil-want-C-u-scroll
'("\C-u" evil-scroll-up))))
"All evil-mu4e bindings.")
(defun evil-collection-mu4e-set-bindings ()
"Set the bindings."
;; WARNING: With lexical binding, lambdas from `mapc' and `dolist' become
;; closures in which we must use `evil-define-key*' instead of
;; `evil-define-key'.
(dolist (binding evil-collection-mu4e-mode-map-bindings)
(apply #'evil-collection-define-key 'normal binding))
(evil-collection-define-key 'visual 'mu4e-compose-mode-map
"gg" 'mu4e-compose-goto-top
"G" 'mu4e-compose-goto-bottom)
(evil-set-command-property 'mu4e-compose-goto-bottom :keep-visual t)
(evil-set-command-property 'mu4e-compose-goto-top :keep-visual t)
;; yu
(evil-collection-define-operator-key 'yank 'mu4e-view-mode-map
"u" 'mu4e-view-save-url))
(defun evil-collection-mu4e-setup ()
"Initialize evil-mu4e if necessary.
If mu4e-main-mode is in evil-state-motion-modes, initialization
is already done earlier."
(evil-collection-mu4e-set-state)
(evil-collection-mu4e-set-bindings)
;;(add-hook 'org-mode-hook #'evil-collection-mu4e-org-set-header-to-normal-mode)
;;(add-hook 'mu4e-compose-pre-hook #'evil-collection-mu4e-org-set-header-to-insert-mode)
)
(provide 'tx-mu4e-evil)
|
The fix provided by @theophilusx works well for me without modifications on the latest git build for mu4e 1.9.8 👍 .
From the mailing list it appears like a new stable release is just a couple of weeks away, see Towards 1.10. I would still wait until the next stable release is actually out, but I'd advice to be prepared to make a PR once it is. I'm on the development branch of mu4e and am currently using my personal fork of evil-collection where I just replaced the evil-collection mu4e module with the above code by @theophilusx , see the If we make a PR, a question would be whether we want to support multiple versions, as e.g. some linux distributions might take a while to update their mu4e version. We could do a version check and load an evil mu4e-module based on the release. Though I think it might be better to keep things simple an just update the module to the latest recommended mu4e version, and get rid of all main menu modifications code, as it's complex and not needed anymore since 1.9. We might still support some keybindings for old mu4e versions, e.g. change which function is called by a binding depending on the version. But personally I think it's fine if the main menu isn't adapted for the old 1.8 versions, in my opinion that's not essential for mu4e to be usable and eventually users should update. |
👍 |
After today's release of mu/mu4e 1.10, I've disabled the |
I found I had to mock the function I just did this: (use-package mu4e
:init
(defun mu4e--main-action-str (name func)
"This seems to be needed until evil-collection supports the latest
version of mu4e."
"mu4e-main-action")
(require 'mu4e)
(remove-hook 'mu4e-main-mode-hook 'evil-collection-mu4e-update-main-view)
;; etc. |
Wait for update, totally delete evil-collection-mu4e currently. |
Just need to override (defun mu4e--main-action-str (str &optional func-or-shortcut))
(defun evil-collection-mu4e-update-main-view@override())
(advice-add 'evil-collection-mu4e-update-main-view :override #'evil-collection-mu4e-update-main-view@override) |
Tianshu Wang ***@***.***> writes:
Just need to override evil-collection-mu4e-update-main-view without requiring mu4e:
(defun mu4e--main-action-str (str &optional func-or-shortcut))
(defun ***@***.***())
(advice-add 'evil-collection-mu4e-update-main-view :override ***@***.***)
or just see the attachment I posted earlier in this thread. You can just
drop it in to replace the evil-collection module code and all will work.
|
Feel free to submit a PR earlier and help everyone. There might be a lot of churn (additional PRs required) but I'll be happy to pull them in as is. I don't really have opinions on the mu4e bindings at the moment since I don't use it. |
I opened the PR #720 with the changes from @theophilusx . It's still very raw, I didn't work on backwards-compatibility, and there is key overlap due to the new menu for toggling threading/duplicates/related. So help welcome. But I thought better start the PR than just discuss. |
I think the main issue that has to be resolved is to decide on the backwards compatibility strategy -- do we want to maintain backwards compatibility, and if so, how do we do it? I've opened #672 before to fix evil-collection for mu/mu4e 1.6.x., and have asked (#672 (comment)) whether adding version checks would be worthwhile. Shortly after, I upgraded to mu/mu4e 1.8.x and most of the issues I had went away as the then-current version of evil-collection was mostly tracking 1.8.x anyway. I still discovered a few minor issues for which I had opened #675. Those fixes are still relevant and could be merged depending on how we decide to go about backwards compatibility. Since mu4e is maintained and packaged together with mu itself, upgrading mu4e necessarily means upgrading mu as well, which depending on your distro might or might not be a simple thing to do. This is the main reason why backwards compatibility would be useful, rather than just tracking the latest version of mu/mu4e (which users might have to then install from source manually). @jojojames mentioned creating a separate file for different versions of mu/mu4e (#720 (comment)) to handle backwards compatibility. Another option are explicit version checks (within a single file) that I mentioned before. I'm honestly not sure which is preferable -- perhaps it depends on how big the changes are between the versions? Automatically detecting the version and choosing the appropriate configuration would be a convenient thing to do in any case (i.e. even in the one-file-per-version case). If we decide to be backwards-compatible (which I think would be useful), we should probably just concentrate on starting with 1.8.x, as it has been the stable release for a while now. |
This is great. The separate file approach without a lot of version logic branching will be the cleanest and easiest to follow solution I think. Also, later changes that only affect new versions would not require any testing on older versions, as that file would be left alone. |
Changes taken from Tim Cross <theophilusx@gmail.com> (@theophilusx) in emacs-evil#695 (comment).
Changes taken from Tim Cross <theophilusx@gmail.com> (@theophilusx) in #695 (comment).
@milanglacier something has changed between @meliache branch and this merge, because my key bindings are bypassed. |
how about showing the git diff content of the branch you are using that has no conflict with your layout and the master branch? I have no idea what’s happening here, since I never touched the keybindings code base, especially keybindings like j, i. |
Unfortunately, the branch no longer exists. I was using this branch : I suspect that the current master branch loads the evil keybindings differently, so that the remapping is not effective. |
this problem is hard to solve as it is hard to reproduce. Firstly you don’t have the branch anymore and you can’t reproduce the problem; secondly I don’t use bepo layout keyboard. Have you ever tried “emacs -Q” and only load evil, evil-collection, and mu4e and see if the problem is still there? |
Well, if I try with "emacs -Q", it won’t load the bepo layout. It is indeed quite hard to reproduce. Maybe @meliache can have an idea because his branch was doing what I expect. With a little luck, he can tell the diff with the current branch. EDIT: I tried to explicitly load evil-collection after evil and mu4e, with this config: (use-package! evil-collection
:after evil mu4e
:config
(evil-collection-init)) and now I have this error:
In debug mode, it gives me: Debugger entered--Lisp error: (error "Key sequence T k starts with non-prefix key T")
#<subr define-key>((keymap "Auxiliary keymap for Normal state" (119) (201) (233) (200) (232 . gnus-summary-refer-parent-article) (187) (171) (12 keymap (6 . gnus-summary-mail-forward)) (8) (108 keymap (87 . gnus-summary-very-wide-reply-with-original) (119 . gnus-summary-very-wide-reply) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) (105 . gnus-summary-news-other-window) (99 . gnus-summary-mail-other-window)) (72 . gnus-summary-reply-with-original) (104 . gnus-summary-reply) (18) (19 . gnus-summary-prev-article) (20 . gnus-summary-next-article) (75) (107) (106) (83) (115) (116) (76 . gnus-summary-mail-other-window) (73 . gnus-summary-increase-score) (42 . gnus-cache-enter-article) (follow-link . mouse-face) (mouse-2 . gnus-mouse-pick-article) (38 . gnus-summary-execute-command) (66 keymap (112 . gnus-summary-article-posted-p) (116 . gnus-summary-respool-trace) (113 . gnus-summary-respool-query) (119 . gnus-summary-edit-article) (114 . gnus-summary-respool-article) (73 . gnus-summary-create-article) (105 . gnus-summary-import-article) (98 . gnus-summary-crosspost-article) (99 . gnus-summary-copy-article) (109 . gnus-summary-move-article) (100 . gnus-summary-delete-article) (69 . gnus-summary-expire-articles-now) (101 . gnus-summary-expire-articles)) (88 keymap (89 . gnus-uu-decode-yenc) (98 . gnus-uu-decode-binhex) (111 . gnus-uu-decode-save) (80 . gnus-uu-decode-postscript-and-save) (112 . gnus-uu-decode-postscript) (83 . gnus-uu-decode-unshar-and-save) (115 . gnus-uu-decode-unshar) (118 keymap (80 . gnus-uu-decode-postscript-and-save-view) (112 . gnus-uu-decode-postscript-view) (83 . gnus-uu-decode-unshar-and-save-view) (115 . gnus-uu-decode-unshar-view) (85 . gnus-uu-decode-uu-and-save-view) (117 . gnus-uu-decode-uu-view)) (85 . gnus-uu-decode-uu-and-save) (117 . gnus-uu-decode-uu)) (124 . gnus-summary-pipe-output) (79 keymap (80 . gnus-summary-muttprint) (112 . gnus-summary-pipe-output) (118 . gnus-summary-save-article-vm) (104 . gnus-summary-save-article-folder) (98 . gnus-summary-save-article-body-file) (70 . gnus-summary-write-article-file) (102 . gnus-summary-save-article-file) (114 . gnus-summary-save-article-rmail) (109 . gnus-summary-save-article-mail) (111 . gnus-summary-save-article)) (84 . gnus-summary-goto-article) (111 keymap (116 . gnus-summary-sort-by-recipient) (115 . gnus-summary-sort-by-subject) (114 . gnus-summary-sort-by-random) (111 . gnus-summary-sort-by-original) (110 . gnus-summary-sort-by-number) (109 keymap (110 . gnus-summary-sort-by-most-recent-number) (109 . gnus-summary-sort-by-marks) (100 . gnus-summary-sort-by-most-recent-date)) (108 . gnus-summary-sort-by-lines) (105 . gnus-summary-sort-by-score) (100 . gnus-summary-sort-by-date) (99 . gnus-summary-sort-by-chars) (97 . gnus-summary-sort-by-author)) (27 keymap (76) (108) (72 . gnus-summary-repeat-search-article-backward) (104 . gnus-summary-search-article-backward) (75 . gnus-summary-repeat-search-article-forward) (107 . gnus-summary-search-article-forward) (74) (106) (84) (116) (67) (99) (105 . gnus-symbolic-argument) (42 . gnus-cache-remove-article) (38 . gnus-summary-universal-argument) (82) (83) (114) (115) (94 . gnus-summary-refer-article)) (94 . gnus-summary-refer-parent-article) (120 . gnus-summary-limit-to-unread) (69 . gnus-summary-mark-as-expirable) (101 . gnus-summary-edit-article) (74 . gnus-summary-goto-article) (61 . gnus-summary-tick-article-forward) (33 . gnus-summary-mark-as-read-forward) (44 . gnus-summary-best-unread-article) (46 . gnus-summary-first-unread-article) (3 keymap (6 . gnus-summary-mail-forward)) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) ...) "Tk" gnus-summary-kill-thread)
apply(#<subr define-key> ((keymap "Auxiliary keymap for Normal state" (119) (201) (233) (200) (232 . gnus-summary-refer-parent-article) (187) (171) (12 keymap (6 . gnus-summary-mail-forward)) (8) (108 keymap (87 . gnus-summary-very-wide-reply-with-original) (119 . gnus-summary-very-wide-reply) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) (105 . gnus-summary-news-other-window) (99 . gnus-summary-mail-other-window)) (72 . gnus-summary-reply-with-original) (104 . gnus-summary-reply) (18) (19 . gnus-summary-prev-article) (20 . gnus-summary-next-article) (75) (107) (106) (83) (115) (116) (76 . gnus-summary-mail-other-window) (73 . gnus-summary-increase-score) (42 . gnus-cache-enter-article) (follow-link . mouse-face) (mouse-2 . gnus-mouse-pick-article) (38 . gnus-summary-execute-command) (66 keymap (112 . gnus-summary-article-posted-p) (116 . gnus-summary-respool-trace) (113 . gnus-summary-respool-query) (119 . gnus-summary-edit-article) (114 . gnus-summary-respool-article) (73 . gnus-summary-create-article) (105 . gnus-summary-import-article) (98 . gnus-summary-crosspost-article) (99 . gnus-summary-copy-article) (109 . gnus-summary-move-article) (100 . gnus-summary-delete-article) (69 . gnus-summary-expire-articles-now) (101 . gnus-summary-expire-articles)) (88 keymap (89 . gnus-uu-decode-yenc) (98 . gnus-uu-decode-binhex) (111 . gnus-uu-decode-save) (80 . gnus-uu-decode-postscript-and-save) (112 . gnus-uu-decode-postscript) (83 . gnus-uu-decode-unshar-and-save) (115 . gnus-uu-decode-unshar) (118 keymap (80 . gnus-uu-decode-postscript-and-save-view) (112 . gnus-uu-decode-postscript-view) (83 . gnus-uu-decode-unshar-and-save-view) (115 . gnus-uu-decode-unshar-view) (85 . gnus-uu-decode-uu-and-save-view) (117 . gnus-uu-decode-uu-view)) (85 . gnus-uu-decode-uu-and-save) (117 . gnus-uu-decode-uu)) (124 . gnus-summary-pipe-output) (79 keymap (80 . gnus-summary-muttprint) (112 . gnus-summary-pipe-output) (118 . gnus-summary-save-article-vm) (104 . gnus-summary-save-article-folder) (98 . gnus-summary-save-article-body-file) (70 . gnus-summary-write-article-file) (102 . gnus-summary-save-article-file) (114 . gnus-summary-save-article-rmail) (109 . gnus-summary-save-article-mail) (111 . gnus-summary-save-article)) (84 . gnus-summary-goto-article) (111 keymap (116 . gnus-summary-sort-by-recipient) (115 . gnus-summary-sort-by-subject) (114 . gnus-summary-sort-by-random) (111 . gnus-summary-sort-by-original) (110 . gnus-summary-sort-by-number) (109 keymap (110 . gnus-summary-sort-by-most-recent-number) (109 . gnus-summary-sort-by-marks) (100 . gnus-summary-sort-by-most-recent-date)) (108 . gnus-summary-sort-by-lines) (105 . gnus-summary-sort-by-score) (100 . gnus-summary-sort-by-date) (99 . gnus-summary-sort-by-chars) (97 . gnus-summary-sort-by-author)) (27 keymap (76) (108) (72 . gnus-summary-repeat-search-article-backward) (104 . gnus-summary-search-article-backward) (75 . gnus-summary-repeat-search-article-forward) (107 . gnus-summary-search-article-forward) (74) (106) (84) (116) (67) (99) (105 . gnus-symbolic-argument) (42 . gnus-cache-remove-article) (38 . gnus-summary-universal-argument) (82) (83) (114) (115) (94 . gnus-summary-refer-article)) (94 . gnus-summary-refer-parent-article) (120 . gnus-summary-limit-to-unread) (69 . gnus-summary-mark-as-expirable) (101 . gnus-summary-edit-article) (74 . gnus-summary-goto-article) (61 . gnus-summary-tick-article-forward) (33 . gnus-summary-mark-as-read-forward) (44 . gnus-summary-best-unread-article) (46 . gnus-summary-first-unread-article) (3 keymap (6 . gnus-summary-mail-forward)) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) ...) "Tk" gnus-summary-kill-thread))
#f(advice-wrapper :filter-args #<subr define-key> explain-pause--wrap-define-key)((keymap "Auxiliary keymap for Normal state" (119) (201) (233) (200) (232 . gnus-summary-refer-parent-article) (187) (171) (12 keymap (6 . gnus-summary-mail-forward)) (8) (108 keymap (87 . gnus-summary-very-wide-reply-with-original) (119 . gnus-summary-very-wide-reply) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) (105 . gnus-summary-news-other-window) (99 . gnus-summary-mail-other-window)) (72 . gnus-summary-reply-with-original) (104 . gnus-summary-reply) (18) (19 . gnus-summary-prev-article) (20 . gnus-summary-next-article) (75) (107) (106) (83) (115) (116) (76 . gnus-summary-mail-other-window) (73 . gnus-summary-increase-score) (42 . gnus-cache-enter-article) (follow-link . mouse-face) (mouse-2 . gnus-mouse-pick-article) (38 . gnus-summary-execute-command) (66 keymap (112 . gnus-summary-article-posted-p) (116 . gnus-summary-respool-trace) (113 . gnus-summary-respool-query) (119 . gnus-summary-edit-article) (114 . gnus-summary-respool-article) (73 . gnus-summary-create-article) (105 . gnus-summary-import-article) (98 . gnus-summary-crosspost-article) (99 . gnus-summary-copy-article) (109 . gnus-summary-move-article) (100 . gnus-summary-delete-article) (69 . gnus-summary-expire-articles-now) (101 . gnus-summary-expire-articles)) (88 keymap (89 . gnus-uu-decode-yenc) (98 . gnus-uu-decode-binhex) (111 . gnus-uu-decode-save) (80 . gnus-uu-decode-postscript-and-save) (112 . gnus-uu-decode-postscript) (83 . gnus-uu-decode-unshar-and-save) (115 . gnus-uu-decode-unshar) (118 keymap (80 . gnus-uu-decode-postscript-and-save-view) (112 . gnus-uu-decode-postscript-view) (83 . gnus-uu-decode-unshar-and-save-view) (115 . gnus-uu-decode-unshar-view) (85 . gnus-uu-decode-uu-and-save-view) (117 . gnus-uu-decode-uu-view)) (85 . gnus-uu-decode-uu-and-save) (117 . gnus-uu-decode-uu)) (124 . gnus-summary-pipe-output) (79 keymap (80 . gnus-summary-muttprint) (112 . gnus-summary-pipe-output) (118 . gnus-summary-save-article-vm) (104 . gnus-summary-save-article-folder) (98 . gnus-summary-save-article-body-file) (70 . gnus-summary-write-article-file) (102 . gnus-summary-save-article-file) (114 . gnus-summary-save-article-rmail) (109 . gnus-summary-save-article-mail) (111 . gnus-summary-save-article)) (84 . gnus-summary-goto-article) (111 keymap (116 . gnus-summary-sort-by-recipient) (115 . gnus-summary-sort-by-subject) (114 . gnus-summary-sort-by-random) (111 . gnus-summary-sort-by-original) (110 . gnus-summary-sort-by-number) (109 keymap (110 . gnus-summary-sort-by-most-recent-number) (109 . gnus-summary-sort-by-marks) (100 . gnus-summary-sort-by-most-recent-date)) (108 . gnus-summary-sort-by-lines) (105 . gnus-summary-sort-by-score) (100 . gnus-summary-sort-by-date) (99 . gnus-summary-sort-by-chars) (97 . gnus-summary-sort-by-author)) (27 keymap (76) (108) (72 . gnus-summary-repeat-search-article-backward) (104 . gnus-summary-search-article-backward) (75 . gnus-summary-repeat-search-article-forward) (107 . gnus-summary-search-article-forward) (74) (106) (84) (116) (67) (99) (105 . gnus-symbolic-argument) (42 . gnus-cache-remove-article) (38 . gnus-summary-universal-argument) (82) (83) (114) (115) (94 . gnus-summary-refer-article)) (94 . gnus-summary-refer-parent-article) (120 . gnus-summary-limit-to-unread) (69 . gnus-summary-mark-as-expirable) (101 . gnus-summary-edit-article) (74 . gnus-summary-goto-article) (61 . gnus-summary-tick-article-forward) (33 . gnus-summary-mark-as-read-forward) (44 . gnus-summary-best-unread-article) (46 . gnus-summary-first-unread-article) (3 keymap (6 . gnus-summary-mail-forward)) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) ...) "Tk" gnus-summary-kill-thread)
general-unbind-non-prefix-key(#f(advice-wrapper :filter-args #<subr define-key> explain-pause--wrap-define-key) (keymap "Auxiliary keymap for Normal state" (119) (201) (233) (200) (232 . gnus-summary-refer-parent-article) (187) (171) (12 keymap (6 . gnus-summary-mail-forward)) (8) (108 keymap (87 . gnus-summary-very-wide-reply-with-original) (119 . gnus-summary-very-wide-reply) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) (105 . gnus-summary-news-other-window) (99 . gnus-summary-mail-other-window)) (72 . gnus-summary-reply-with-original) (104 . gnus-summary-reply) (18) (19 . gnus-summary-prev-article) (20 . gnus-summary-next-article) (75) (107) (106) (83) (115) (116) (76 . gnus-summary-mail-other-window) (73 . gnus-summary-increase-score) (42 . gnus-cache-enter-article) (follow-link . mouse-face) (mouse-2 . gnus-mouse-pick-article) (38 . gnus-summary-execute-command) (66 keymap (112 . gnus-summary-article-posted-p) (116 . gnus-summary-respool-trace) (113 . gnus-summary-respool-query) (119 . gnus-summary-edit-article) (114 . gnus-summary-respool-article) (73 . gnus-summary-create-article) (105 . gnus-summary-import-article) (98 . gnus-summary-crosspost-article) (99 . gnus-summary-copy-article) (109 . gnus-summary-move-article) (100 . gnus-summary-delete-article) (69 . gnus-summary-expire-articles-now) (101 . gnus-summary-expire-articles)) (88 keymap (89 . gnus-uu-decode-yenc) (98 . gnus-uu-decode-binhex) (111 . gnus-uu-decode-save) (80 . gnus-uu-decode-postscript-and-save) (112 . gnus-uu-decode-postscript) (83 . gnus-uu-decode-unshar-and-save) (115 . gnus-uu-decode-unshar) (118 keymap (80 . gnus-uu-decode-postscript-and-save-view) (112 . gnus-uu-decode-postscript-view) (83 . gnus-uu-decode-unshar-and-save-view) (115 . gnus-uu-decode-unshar-view) (85 . gnus-uu-decode-uu-and-save-view) (117 . gnus-uu-decode-uu-view)) (85 . gnus-uu-decode-uu-and-save) (117 . gnus-uu-decode-uu)) (124 . gnus-summary-pipe-output) (79 keymap (80 . gnus-summary-muttprint) (112 . gnus-summary-pipe-output) (118 . gnus-summary-save-article-vm) (104 . gnus-summary-save-article-folder) (98 . gnus-summary-save-article-body-file) (70 . gnus-summary-write-article-file) (102 . gnus-summary-save-article-file) (114 . gnus-summary-save-article-rmail) (109 . gnus-summary-save-article-mail) (111 . gnus-summary-save-article)) (84 . gnus-summary-goto-article) (111 keymap (116 . gnus-summary-sort-by-recipient) (115 . gnus-summary-sort-by-subject) (114 . gnus-summary-sort-by-random) (111 . gnus-summary-sort-by-original) (110 . gnus-summary-sort-by-number) (109 keymap (110 . gnus-summary-sort-by-most-recent-number) (109 . gnus-summary-sort-by-marks) (100 . gnus-summary-sort-by-most-recent-date)) (108 . gnus-summary-sort-by-lines) (105 . gnus-summary-sort-by-score) (100 . gnus-summary-sort-by-date) (99 . gnus-summary-sort-by-chars) (97 . gnus-summary-sort-by-author)) (27 keymap (76) (108) (72 . gnus-summary-repeat-search-article-backward) (104 . gnus-summary-search-article-backward) (75 . gnus-summary-repeat-search-article-forward) (107 . gnus-summary-search-article-forward) (74) (106) (84) (116) (67) (99) (105 . gnus-symbolic-argument) (42 . gnus-cache-remove-article) (38 . gnus-summary-universal-argument) (82) (83) (114) (115) (94 . gnus-summary-refer-article)) (94 . gnus-summary-refer-parent-article) (120 . gnus-summary-limit-to-unread) (69 . gnus-summary-mark-as-expirable) (101 . gnus-summary-edit-article) (74 . gnus-summary-goto-article) (61 . gnus-summary-tick-article-forward) (33 . gnus-summary-mark-as-read-forward) (44 . gnus-summary-best-unread-article) (46 . gnus-summary-first-unread-article) (3 keymap (6 . gnus-summary-mail-forward)) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) ...) "Tk" gnus-summary-kill-thread)
apply(general-unbind-non-prefix-key #f(advice-wrapper :filter-args #<subr define-key> explain-pause--wrap-define-key) ((keymap "Auxiliary keymap for Normal state" (119) (201) (233) (200) (232 . gnus-summary-refer-parent-article) (187) (171) (12 keymap (6 . gnus-summary-mail-forward)) (8) (108 keymap (87 . gnus-summary-very-wide-reply-with-original) (119 . gnus-summary-very-wide-reply) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) (105 . gnus-summary-news-other-window) (99 . gnus-summary-mail-other-window)) (72 . gnus-summary-reply-with-original) (104 . gnus-summary-reply) (18) (19 . gnus-summary-prev-article) (20 . gnus-summary-next-article) (75) (107) (106) (83) (115) (116) (76 . gnus-summary-mail-other-window) (73 . gnus-summary-increase-score) (42 . gnus-cache-enter-article) (follow-link . mouse-face) (mouse-2 . gnus-mouse-pick-article) (38 . gnus-summary-execute-command) (66 keymap (112 . gnus-summary-article-posted-p) (116 . gnus-summary-respool-trace) (113 . gnus-summary-respool-query) (119 . gnus-summary-edit-article) (114 . gnus-summary-respool-article) (73 . gnus-summary-create-article) (105 . gnus-summary-import-article) (98 . gnus-summary-crosspost-article) (99 . gnus-summary-copy-article) (109 . gnus-summary-move-article) (100 . gnus-summary-delete-article) (69 . gnus-summary-expire-articles-now) (101 . gnus-summary-expire-articles)) (88 keymap (89 . gnus-uu-decode-yenc) (98 . gnus-uu-decode-binhex) (111 . gnus-uu-decode-save) (80 . gnus-uu-decode-postscript-and-save) (112 . gnus-uu-decode-postscript) (83 . gnus-uu-decode-unshar-and-save) (115 . gnus-uu-decode-unshar) (118 keymap (80 . gnus-uu-decode-postscript-and-save-view) (112 . gnus-uu-decode-postscript-view) (83 . gnus-uu-decode-unshar-and-save-view) (115 . gnus-uu-decode-unshar-view) (85 . gnus-uu-decode-uu-and-save-view) (117 . gnus-uu-decode-uu-view)) (85 . gnus-uu-decode-uu-and-save) (117 . gnus-uu-decode-uu)) (124 . gnus-summary-pipe-output) (79 keymap (80 . gnus-summary-muttprint) (112 . gnus-summary-pipe-output) (118 . gnus-summary-save-article-vm) (104 . gnus-summary-save-article-folder) (98 . gnus-summary-save-article-body-file) (70 . gnus-summary-write-article-file) (102 . gnus-summary-save-article-file) (114 . gnus-summary-save-article-rmail) (109 . gnus-summary-save-article-mail) (111 . gnus-summary-save-article)) (84 . gnus-summary-goto-article) (111 keymap (116 . gnus-summary-sort-by-recipient) (115 . gnus-summary-sort-by-subject) (114 . gnus-summary-sort-by-random) (111 . gnus-summary-sort-by-original) (110 . gnus-summary-sort-by-number) (109 keymap (110 . gnus-summary-sort-by-most-recent-number) (109 . gnus-summary-sort-by-marks) (100 . gnus-summary-sort-by-most-recent-date)) (108 . gnus-summary-sort-by-lines) (105 . gnus-summary-sort-by-score) (100 . gnus-summary-sort-by-date) (99 . gnus-summary-sort-by-chars) (97 . gnus-summary-sort-by-author)) (27 keymap (76) (108) (72 . gnus-summary-repeat-search-article-backward) (104 . gnus-summary-search-article-backward) (75 . gnus-summary-repeat-search-article-forward) (107 . gnus-summary-search-article-forward) (74) (106) (84) (116) (67) (99) (105 . gnus-symbolic-argument) (42 . gnus-cache-remove-article) (38 . gnus-summary-universal-argument) (82) (83) (114) (115) (94 . gnus-summary-refer-article)) (94 . gnus-summary-refer-parent-article) (120 . gnus-summary-limit-to-unread) (69 . gnus-summary-mark-as-expirable) (101 . gnus-summary-edit-article) (74 . gnus-summary-goto-article) (61 . gnus-summary-tick-article-forward) (33 . gnus-summary-mark-as-read-forward) (44 . gnus-summary-best-unread-article) (46 . gnus-summary-first-unread-article) (3 keymap (6 . gnus-summary-mail-forward)) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) ...) "Tk" gnus-summary-kill-thread))
define-key((keymap "Auxiliary keymap for Normal state" (119) (201) (233) (200) (232 . gnus-summary-refer-parent-article) (187) (171) (12 keymap (6 . gnus-summary-mail-forward)) (8) (108 keymap (87 . gnus-summary-very-wide-reply-with-original) (119 . gnus-summary-very-wide-reply) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) (105 . gnus-summary-news-other-window) (99 . gnus-summary-mail-other-window)) (72 . gnus-summary-reply-with-original) (104 . gnus-summary-reply) (18) (19 . gnus-summary-prev-article) (20 . gnus-summary-next-article) (75) (107) (106) (83) (115) (116) (76 . gnus-summary-mail-other-window) (73 . gnus-summary-increase-score) (42 . gnus-cache-enter-article) (follow-link . mouse-face) (mouse-2 . gnus-mouse-pick-article) (38 . gnus-summary-execute-command) (66 keymap (112 . gnus-summary-article-posted-p) (116 . gnus-summary-respool-trace) (113 . gnus-summary-respool-query) (119 . gnus-summary-edit-article) (114 . gnus-summary-respool-article) (73 . gnus-summary-create-article) (105 . gnus-summary-import-article) (98 . gnus-summary-crosspost-article) (99 . gnus-summary-copy-article) (109 . gnus-summary-move-article) (100 . gnus-summary-delete-article) (69 . gnus-summary-expire-articles-now) (101 . gnus-summary-expire-articles)) (88 keymap (89 . gnus-uu-decode-yenc) (98 . gnus-uu-decode-binhex) (111 . gnus-uu-decode-save) (80 . gnus-uu-decode-postscript-and-save) (112 . gnus-uu-decode-postscript) (83 . gnus-uu-decode-unshar-and-save) (115 . gnus-uu-decode-unshar) (118 keymap (80 . gnus-uu-decode-postscript-and-save-view) (112 . gnus-uu-decode-postscript-view) (83 . gnus-uu-decode-unshar-and-save-view) (115 . gnus-uu-decode-unshar-view) (85 . gnus-uu-decode-uu-and-save-view) (117 . gnus-uu-decode-uu-view)) (85 . gnus-uu-decode-uu-and-save) (117 . gnus-uu-decode-uu)) (124 . gnus-summary-pipe-output) (79 keymap (80 . gnus-summary-muttprint) (112 . gnus-summary-pipe-output) (118 . gnus-summary-save-article-vm) (104 . gnus-summary-save-article-folder) (98 . gnus-summary-save-article-body-file) (70 . gnus-summary-write-article-file) (102 . gnus-summary-save-article-file) (114 . gnus-summary-save-article-rmail) (109 . gnus-summary-save-article-mail) (111 . gnus-summary-save-article)) (84 . gnus-summary-goto-article) (111 keymap (116 . gnus-summary-sort-by-recipient) (115 . gnus-summary-sort-by-subject) (114 . gnus-summary-sort-by-random) (111 . gnus-summary-sort-by-original) (110 . gnus-summary-sort-by-number) (109 keymap (110 . gnus-summary-sort-by-most-recent-number) (109 . gnus-summary-sort-by-marks) (100 . gnus-summary-sort-by-most-recent-date)) (108 . gnus-summary-sort-by-lines) (105 . gnus-summary-sort-by-score) (100 . gnus-summary-sort-by-date) (99 . gnus-summary-sort-by-chars) (97 . gnus-summary-sort-by-author)) (27 keymap (76) (108) (72 . gnus-summary-repeat-search-article-backward) (104 . gnus-summary-search-article-backward) (75 . gnus-summary-repeat-search-article-forward) (107 . gnus-summary-search-article-forward) (74) (106) (84) (116) (67) (99) (105 . gnus-symbolic-argument) (42 . gnus-cache-remove-article) (38 . gnus-summary-universal-argument) (82) (83) (114) (115) (94 . gnus-summary-refer-article)) (94 . gnus-summary-refer-parent-article) (120 . gnus-summary-limit-to-unread) (69 . gnus-summary-mark-as-expirable) (101 . gnus-summary-edit-article) (74 . gnus-summary-goto-article) (61 . gnus-summary-tick-article-forward) (33 . gnus-summary-mark-as-read-forward) (44 . gnus-summary-best-unread-article) (46 . gnus-summary-first-unread-article) (3 keymap (6 . gnus-summary-mail-forward)) (82 . gnus-summary-reply-with-original) (114 . gnus-summary-reply) (70 . gnus-summary-followup-with-original) (102 . gnus-summary-followup) ...) "Tk" gnus-summary-kill-thread)
evil-define-key*((normal) (keymap #^[nil nil keymap
#^^[3 0 nil nil nil (keymap (2 . gnus-bug) (22 keymap ...) (9 . gnus-info-find-node) (16 . gnus-summary-make-group-from-search) (4 . gnus-summary-describe-group) (6 . gnus-summary-mail-forward) (18 . gnus-summary-caesar-message) (19 keymap ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ...)) gnus-summary-enter-digest-group nil nil nil nil gnus-summary-button-forward nil gnus-summary-kill-same-subject gnus-recenter gnus-summary-scroll-up nil gnus-summary-save-article-mail nil nil nil nil toggle-truncate-lines nil nil gnus-summary-mark-region-as-read (keymap (19 . gnus-summary-reselect-current-group)) ...] #^^[1 0 #^^[2 0
#^^[3 0 nil nil nil ... gnus-summary-enter-digest-group nil nil nil nil gnus-summary-button-forward nil gnus-summary-kill-same-subject gnus-recenter gnus-summary-scroll-up nil gnus-summary-save-article-mail nil nil nil nil toggle-truncate-lines nil nil gnus-summary-mark-region-as-read ... ...] nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...] nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...] (backtab . gnus-summary-button-backward) (follow-link . mouse-face) (mouse-2 . gnus-mouse-pick-article) (M-up . gnus-summary-prev-thread) (M-down . gnus-summary-next-thread) (33554464 . gnus-summary-prev-page) (insert-state keymap "Auxiliary keymap for Inser..." (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...)) (operator-state keymap "Auxiliary keymap for Opera..." (119) (201) (233) (200) (232) (187) (171) (12) (8) (76) (108) (72) (104) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (11) (10) (18) (19) (20) (3) (75) (107) (74) ...) (visual-state keymap "Auxiliary keymap for Visua..." (119) (201) (233) (200) (232) (187) (171) (12) (8) (76) (108) (72) (104) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (11) (10) (18) (19) (20) (3) (75) (107) (74) ...) (motion-state keymap "Auxiliary keymap for Motio..." (119) (201) (233) (200) (232) (187) (171) (12) (8) (76) (108) (72) (104) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (11) (10) (18) (19) (20) (3) (75) (107) (74) ...) (normal-state keymap "Auxiliary keymap for Norma..." (119) (201) (233) (200) (232 . gnus-summary-refer-parent-article) (187) (171) (12 keymap ...) (8) (108 keymap ... ... ... ... ... ... ... ...) (72 . gnus-summary-reply-with-original) (104 . gnus-summary-reply) (18) (19 . gnus-summary-prev-article) (20 . gnus-summary-next-article) (75) (107) (106) (83) (115) (116) (76 . gnus-summary-mail-other-window) (73 . gnus-summary-increase-score) ...) (delete . gnus-summary-prev-page) (remap keymap (self-insert-command . undefined))) "Q" gnus-summary-exit-no-update "ZQ" gnus-summary-exit-no-update "q" gnus-summary-exit "ZZ" gnus-summary-exit "g?" gnus-summary-help-map [tab] gnus-summary-widget-forward [backtab] gnus-summary-widget-backward [delete] gnus-summary-prev-page [33554464] gnus-summary-prev-page "\15" gnus-summary-scroll-up "gk" gnus-summary-prev-unread-article "gj" gnus-summary-next-unread-article ...)
apply(evil-define-key* (normal) (keymap #^[nil nil keymap
#^^[3 0 nil nil nil (keymap (2 . gnus-bug) (22 keymap ...) (9 . gnus-info-find-node) (16 . gnus-summary-make-group-from-search) (4 . gnus-summary-describe-group) (6 . gnus-summary-mail-forward) (18 . gnus-summary-caesar-message) (19 keymap ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ...)) gnus-summary-enter-digest-group nil nil nil nil gnus-summary-button-forward nil gnus-summary-kill-same-subject gnus-recenter gnus-summary-scroll-up nil gnus-summary-save-article-mail nil nil nil nil toggle-truncate-lines nil nil gnus-summary-mark-region-as-read (keymap (19 . gnus-summary-reselect-current-group)) ...] #^^[1 0 #^^[2 0
#^^[3 0 nil nil nil ... gnus-summary-enter-digest-group nil nil nil nil gnus-summary-button-forward nil gnus-summary-kill-same-subject gnus-recenter gnus-summary-scroll-up nil gnus-summary-save-article-mail nil nil nil nil toggle-truncate-lines nil nil gnus-summary-mark-region-as-read ... ...] nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...] nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...] (backtab . gnus-summary-button-backward) (follow-link . mouse-face) (mouse-2 . gnus-mouse-pick-article) (M-up . gnus-summary-prev-thread) (M-down . gnus-summary-next-thread) (33554464 . gnus-summary-prev-page) (insert-state keymap "Auxiliary keymap for Inser..." (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...)) (operator-state keymap "Auxiliary keymap for Opera..." (119) (201) (233) (200) (232) (187) (171) (12) (8) (76) (108) (72) (104) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (11) (10) (18) (19) (20) (3) (75) (107) (74) ...) (visual-state keymap "Auxiliary keymap for Visua..." (119) (201) (233) (200) (232) (187) (171) (12) (8) (76) (108) (72) (104) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (11) (10) (18) (19) (20) (3) (75) (107) (74) ...) (motion-state keymap "Auxiliary keymap for Motio..." (119) (201) (233) (200) (232) (187) (171) (12) (8) (76) (108) (72) (104) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (11) (10) (18) (19) (20) (3) (75) (107) (74) ...) (normal-state keymap "Auxiliary keymap for Norma..." (119) (201) (233) (200) (232 . gnus-summary-refer-parent-article) (187) (171) (12 keymap ...) (8) (108 keymap ... ... ... ... ... ... ... ...) (72 . gnus-summary-reply-with-original) (104 . gnus-summary-reply) (18) (19 . gnus-summary-prev-article) (20 . gnus-summary-next-article) (75) (107) (106) (83) (115) (116) (76 . gnus-summary-mail-other-window) (73 . gnus-summary-increase-score) ...) (delete . gnus-summary-prev-page) (remap keymap (self-insert-command . undefined))) ("Q" gnus-summary-exit-no-update "ZQ" gnus-summary-exit-no-update "q" gnus-summary-exit "ZZ" gnus-summary-exit "g?" gnus-summary-help-map [tab] gnus-summary-widget-forward [backtab] gnus-summary-widget-backward [delete] gnus-summary-prev-page [33554464] gnus-summary-prev-page "\15" gnus-summary-scroll-up "gk" gnus-summary-prev-unread-article "gj" gnus-summary-next-unread-article "[[" gnus-summary-prev-unread-article ...))
evil-collection--define-key((normal) gnus-summary-mode-map ("Q" gnus-summary-exit-no-update "ZQ" gnus-summary-exit-no-update "q" gnus-summary-exit "ZZ" gnus-summary-exit "g?" gnus-summary-help-map [tab] gnus-summary-widget-forward [backtab] gnus-summary-widget-backward [delete] gnus-summary-prev-page [33554464] gnus-summary-prev-page "\15" gnus-summary-scroll-up "gk" gnus-summary-prev-unread-article "gj" gnus-summary-next-unread-article "[[" gnus-summary-prev-unread-article "]]" gnus-summary-next-unread-article "{" gnus-summary-prev-thread "}" gnus-summary-next-thread "\n" gnus-summary-next-article "\13" gnus-summary-prev-article "m" gnus-summary-mark-as-processable "M" gnus-uu-mark-buffer "u" gnus-summary-unmark-as-processable "U" gnus-summary-unmark-all-processable "%" gnus-uu-mark-by-regexp "C" gnus-summary-mail-other-window "cc" gnus-summary-mail-other-window ...))
evil-collection-define-key(normal gnus-summary-mode-map "Q" gnus-summary-exit-no-update "ZQ" gnus-summary-exit-no-update "q" gnus-summary-exit "ZZ" gnus-summary-exit "g?" gnus-summary-help-map [tab] gnus-summary-widget-forward [backtab] gnus-summary-widget-backward [delete] gnus-summary-prev-page [33554464] gnus-summary-prev-page " " gnus-summary-next-page "\15" gnus-summary-scroll-up "gk" gnus-summary-prev-unread-article "gj" gnus-summary-next-unread-article "[[" gnus-summary-prev-unread-article "]]" gnus-summary-next-unread-article "{" gnus-summary-prev-thread "}" gnus-summary-next-thread "\n" gnus-summary-next-article "\13" gnus-summary-prev-article "m" gnus-summary-mark-as-processable "M" gnus-uu-mark-buffer "u" gnus-summary-unmark-as-processable "U" gnus-summary-unmark-all-processable "%" gnus-uu-mark-by-regexp ...)
evil-collection-gnus-setup()
#f(compiled-function () #<bytecode -0xfb954ee2ddf023d>)()
eval-after-load(gnus #f(compiled-function () #<bytecode -0xfb954ee2ddf023d>))
evil-collection-init()
(progn (use-package-statistics-gather :init 'evil-collection nil) (require 'evil-collection nil nil) (use-package-statistics-gather :config 'evil-collection nil) (evil-collection-init) t (use-package-statistics-gather :config 'evil-collection t) (use-package-statistics-gather :init 'evil-collection t))
(lambda nil (progn (use-package-statistics-gather :init 'evil-collection nil) (require 'evil-collection nil nil) (use-package-statistics-gather :config 'evil-collection nil) (evil-collection-init) t (use-package-statistics-gather :config 'evil-collection t) (use-package-statistics-gather :init 'evil-collection t)))()
eval-after-load(evil (lambda nil (progn (use-package-statistics-gather :init 'evil-collection nil) (require 'evil-collection nil nil) (use-package-statistics-gather :config 'evil-collection nil) (evil-collection-init) t (use-package-statistics-gather :config 'evil-collection t) (use-package-statistics-gather :init 'evil-collection t))))
(lambda nil (eval-after-load 'evil #'(lambda nil (progn (use-package-statistics-gather :init 'evil-collection nil) (require 'evil-collection nil nil) (use-package-statistics-gather :config 'evil-collection nil) (evil-collection-init) t (use-package-statistics-gather :config 'evil-collection t) (use-package-statistics-gather :init 'evil-collection t)))))()
eval-after-load(mu4e (lambda nil (eval-after-load 'evil #'(lambda nil (progn (use-package-statistics-gather :init 'evil-collection nil) (require 'evil-collection nil nil) (use-package-statistics-gather :config 'evil-collection nil) (evil-collection-init) t (use-package-statistics-gather :config 'evil-collection t) (use-package-statistics-gather :init 'evil-collection t))))))
load-with-code-conversion("/home/romain/.config/doom/config.el" "/home/romain/.config/doom/config.el" nil t)
load("~/.config/doom/config" nil nomessage)
(condition-case e (load path noerror 'nomessage) ((debug doom-error) (signal (car e) (cdr e))) ((debug error) (setq path (locate-file path load-path (get-load-suffixes))) (signal (cond ((not (and path (featurep ...))) 'error) ((file-in-directory-p path (expand-file-name "cli" doom-core-dir)) 'doom-cli-error) ((file-in-directory-p path doom-core-dir) 'doom-core-error) ((file-in-directory-p path doom-user-dir) 'doom-user-error) ((file-in-directory-p path doom-profile-dir) 'doom-profile-error) ((file-in-directory-p path doom-modules-dir) 'doom-module-error) ('doom-error)) (list path e))))
doom-load("~/.config/doom/config")
byte-code("\305\306\307\"\210\310\311!\204\21\0\310\312!\203\251\2\10\30\313\314!\211\203'\0\211@\315\1!\210\1A\266\202\202\26\0\210\316\21\317\22\320\321\322\"\210\320..." [doom-context doom-modules doom-disabled-packages custom-file doom-module-context eval-after-load org #f(compiled-function () #<bytecode -0x6e4a2237e88e356>) doom-context-p init reload ensure-list modules doom-context-push #<hash-table equal 52/65 0x157468784df3> nil setplist :core (nil [0 -110 -110 :core nil nil nil]) :user (nil [1 105 -105 :user nil nil nil]) :input (layout [3 0 0 :input layout (+bepo) nil]) :completion (company [4 0 0 :completion company (+childframe) nil] vertico [5 0 0 :completion vertico (+icons) nil]) :ui (doom [6 0 0 :ui doom nil nil] doom-dashboard [7 0 0 :ui doom-dashboard nil nil] doom-quit [8 0 0 :ui doom-quit nil nil] emoji [9 0 0 :ui emoji (+unicode) nil] hl-todo [10 0 0 :ui hl-todo nil nil] indent-guides [11 0 0 :ui indent-guides nil nil] modeline [12 0 0 :ui modeline nil nil] nav-flash [13 0 0 :ui nav-flash nil nil] ophints [14 0 0 :ui ophints nil nil] popup [15 0 0 :ui popup (+defaults) nil] vc-gutter [16 0 0 :ui vc-gutter nil nil] vi-tilde-fringe [17 0 0 :ui vi-tilde-fringe nil nil] workspaces [18 0 0 :ui workspaces nil nil]) :editor (evil [19 0 0 :editor evil (+everywhere) nil] file-templates [20 0 0 :editor file-templates nil nil] fold [21 0 0 :editor fold nil nil] format [22 0 0 :editor format (+onsave) nil] multiple-cursors [23 0 0 :editor multiple-cursors nil nil] snippets [24 0 0 :editor snippets nil nil]) :emacs (dired [25 0 0 :emacs dired (+icons) nil] electric [26 0 0 :emacs electric nil nil] undo [27 0 0 :emacs undo (+tree) nil] vc [28 0 0 :emacs vc nil nil]) :term (vterm [29 0 0 :term vterm nil nil]) :checkers (syntax [30 0 0 :checkers syntax nil nil] spell [31 0 0 :checkers spell (+flyspell +hunspell) nil]) :tools (eval [32 0 0 :tools eval (+overlay) nil] lookup [33 0 0 :tools lookup nil nil] lsp [34 0 0 :tools lsp (+peek) nil] magit [35 0 0 :tools magit (+forge) nil] pdf [36 0 0 :tools pdf nil nil] rgb [37 0 0 :tools rgb nil nil]) :lang (cc [38 0 0 :lang cc (+lsp) nil] common-lisp [39 0 0 :lang common-lisp nil nil] data [40 0 0 :lang data nil nil] emacs-lisp [41 0 0 :lang emacs-lisp nil nil] latex [42 0 0 :lang latex (+latexmk +cdlatex) nil] markdown [43 0 0 :lang markdown nil nil] org [44 0 0 :lang org (+pretty +jupyter +pandoc) nil] python [45 0 0 :lang python (+lsp +pyright) nil] sh [46 0 0 :lang sh (+fish) nil] yaml [47 0 0 :lang yaml nil nil]) :email (mu4e [48 0 0 :email mu4e (+org) nil]) :app (calendar [49 0 0 :app calendar nil nil] irc [50 0 0 :app irc nil nil]) :config (use-package [2 -111 -111 :config use-package nil nil] default [51 0 0 :config default (+bindings +smartparens) nil]) [2 -111 -111 :config use-package nil nil] doom-load "~/.config/emacs/modules/config/use-package/init" [0 -110 -110 :core nil nil nil] "~/.config/emacs/lisp/init" ...] 4)
load("/home/romain/.config/emacs/.local/etc/@/init.28.el..." noerror nomessage nosuffix)
(progn (load init-file-name 'noerror 'nomessage 'nosuffix))
(if init-file-name (progn (load init-file-name 'noerror 'nomessage 'nosuffix)))
(let ((init-file-name (file-name-concat doom-profile-dir (format "init.%d.elc" emacs-major-version)))) (setq user-init-file t) (if init-file-name (progn (load init-file-name 'noerror 'nomessage 'nosuffix))) (if (eq user-init-file t) (progn (signal 'doom-nosync-error (list init-file-name)))) (setq user-init-file (concat (string-remove-suffix ".elc" user-init-file) ".el")))
(progn (let ((init-file-name (file-name-concat doom-profile-dir (format "init.%d.elc" emacs-major-version)))) (setq user-init-file t) (if init-file-name (progn (load init-file-name 'noerror 'nomessage 'nosuffix))) (if (eq user-init-file t) (progn (signal 'doom-nosync-error (list init-file-name)))) (setq user-init-file (concat (string-remove-suffix ".elc" user-init-file) ".el"))))
(if init-file-user (progn (let ((init-file-name (file-name-concat doom-profile-dir (format "init.%d.elc" emacs-major-version)))) (setq user-init-file t) (if init-file-name (progn (load init-file-name 'noerror 'nomessage 'nosuffix))) (if (eq user-init-file t) (progn (signal 'doom-nosync-error (list init-file-name)))) (setq user-init-file (concat (string-remove-suffix ".elc" user-init-file) ".el")))))
(condition-case error (if init-file-user (progn (let ((init-file-name (file-name-concat doom-profile-dir (format "init.%d.elc" emacs-major-version)))) (setq user-init-file t) (if init-file-name (progn (load init-file-name 'noerror 'nomessage 'nosuffix))) (if (eq user-init-file t) (progn (signal 'doom-nosync-error (list init-file-name)))) (setq user-init-file (concat (string-remove-suffix ".elc" user-init-file) ".el"))))) ((debug error) (display-warning 'initialization (format-message "An error occurred while loading `%s':\n\n%s%s%s\n\nTo ..." user-init-file (get (car error) 'error-message) (if (cdr error) ": " "") (mapconcat #'(lambda (s) (prin1-to-string s t)) (cdr error) ", ")) :warning) (setq init-file-had-error t)))
(let ((debug-on-error debug-on-error-initial)) (condition-case error (if init-file-user (progn (let ((init-file-name (file-name-concat doom-profile-dir ...))) (setq user-init-file t) (if init-file-name (progn (load init-file-name ... ... ...))) (if (eq user-init-file t) (progn (signal ... ...))) (setq user-init-file (concat (string-remove-suffix ".elc" user-init-file) ".el"))))) ((debug error) (display-warning 'initialization (format-message "An error occurred while loading `%s':\n\n%s%s%s\n\nTo ..." user-init-file (get (car error) 'error-message) (if (cdr error) ": " "") (mapconcat #'(lambda ... ...) (cdr error) ", ")) :warning) (setq init-file-had-error t))) (or (eq debug-on-error debug-on-error-initial) (setq debug-on-error-should-be-set t debug-on-error-from-init-file debug-on-error)))
(let ((debug-on-error-from-init-file nil) (debug-on-error-should-be-set nil) (debug-on-error-initial (if (eq init-file-debug t) 'startup init-file-debug)) (inhibit-null-byte-detection t)) (let ((debug-on-error debug-on-error-initial)) (condition-case error (if init-file-user (progn (let ((init-file-name ...)) (setq user-init-file t) (if init-file-name (progn ...)) (if (eq user-init-file t) (progn ...)) (setq user-init-file (concat ... ".el"))))) ((debug error) (display-warning 'initialization (format-message "An error occurred while loading `%s':\n\n%s%s%s\n\nTo ..." user-init-file (get (car error) 'error-message) (if (cdr error) ": " "") (mapconcat #'... (cdr error) ", ")) :warning) (setq init-file-had-error t))) (or (eq debug-on-error debug-on-error-initial) (setq debug-on-error-should-be-set t debug-on-error-from-init-file debug-on-error))) (if debug-on-error-should-be-set (progn (setq debug-on-error debug-on-error-from-init-file))))
startup--load-user-init-file@init-doom(nil)
apply(startup--load-user-init-file@init-doom nil)
#f(advice-wrapper :override #<subr startup--load-user-init-file> startup--load-user-init-file@init-doom ((depth . 100)))(nil)
apply(#f(advice-wrapper :override #<subr startup--load-user-init-file> startup--load-user-init-file@init-doom ((depth . 100))) nil)
#f(advice-wrapper :before #f(advice-wrapper :override #<subr startup--load-user-init-file> startup--load-user-init-file@init-doom ((depth . 100))) startup--load-user-init-file@undo-silence)(nil)
apply(#f(advice-wrapper :before #f(advice-wrapper :override #<subr startup--load-user-init-file> startup--load-user-init-file@init-doom ((depth . 100))) startup--load-user-init-file@undo-silence) nil)
#f(advice-wrapper :after #f(advice-wrapper :before #f(advice-wrapper :override #<subr startup--load-user-init-file> startup--load-user-init-file@init-doom ((depth . 100))) startup--load-user-init-file@undo-silence) startup--load-user-init-file@undo-inhibit-vars)(nil)
apply(#f(advice-wrapper :after #f(advice-wrapper :before #f(advice-wrapper :override #<subr startup--load-user-init-file> startup--load-user-init-file@init-doom ((depth . 100))) startup--load-user-init-file@undo-silence) startup--load-user-init-file@undo-inhibit-vars) nil)
startup--load-user-init-file(nil)
(unwind-protect (startup--load-user-init-file nil) (general-auto-unbind-keys t))
(progn (general-auto-unbind-keys) (unwind-protect (startup--load-user-init-file nil) (general-auto-unbind-keys t)))
(condition-case err (progn (general-auto-unbind-keys) (unwind-protect (startup--load-user-init-file nil) (general-auto-unbind-keys t))) ((debug error) (message "PRIVATE CONFIG ERROR: %s" err) nil))
(let ((doom-context doom-context)) (let ((--dolist-tail-- (ensure-list '(reload modules)))) (while --dolist-tail-- (let ((context (car --dolist-tail--))) (doom-context-push context) (setq --dolist-tail-- (cdr --dolist-tail--))))) (doom-run-hooks 'doom-before-reload-hook) (doom-load (file-name-concat doom-user-dir doom-module-init-file) t) (condition-case err (progn (general-auto-unbind-keys) (unwind-protect (startup--load-user-init-file nil) (general-auto-unbind-keys t))) ((debug error) (message "PRIVATE CONFIG ERROR: %s" err) nil)) (doom-run-hooks 'doom-after-reload-hook) (message "Config successfully reloaded!"))
(progn (delete-window w) (let ((doom-context doom-context)) (let ((--dolist-tail-- (ensure-list '(reload modules)))) (while --dolist-tail-- (let ((context (car --dolist-tail--))) (doom-context-push context) (setq --dolist-tail-- (cdr --dolist-tail--))))) (doom-run-hooks 'doom-before-reload-hook) (doom-load (file-name-concat doom-user-dir doom-module-init-file) t) (condition-case err (progn (general-auto-unbind-keys) (unwind-protect (startup--load-user-init-file nil) (general-auto-unbind-keys t))) ((debug error) (message "PRIVATE CONFIG ERROR: %s" err) nil)) (doom-run-hooks 'doom-after-reload-hook) (message "Config successfully reloaded!")))
(if (equal status "finished\n") (progn (delete-window w) (let ((doom-context doom-context)) (let ((--dolist-tail-- (ensure-list '...))) (while --dolist-tail-- (let ((context ...)) (doom-context-push context) (setq --dolist-tail-- (cdr --dolist-tail--))))) (doom-run-hooks 'doom-before-reload-hook) (doom-load (file-name-concat doom-user-dir doom-module-init-file) t) (condition-case err (progn (general-auto-unbind-keys) (unwind-protect (startup--load-user-init-file nil) (general-auto-unbind-keys t))) ((debug error) (message "PRIVATE CONFIG ERROR: %s" err) nil)) (doom-run-hooks 'doom-after-reload-hook) (message "Config successfully reloaded!"))) (user-error "Failed to reload your config"))
(closure ((w . #<window 27>) t) (_buf status) (if (equal status "finished\n") (progn (delete-window w) (let ((doom-context doom-context)) (let ((--dolist-tail-- ...)) (while --dolist-tail-- (let ... ... ...))) (doom-run-hooks 'doom-before-reload-hook) (doom-load (file-name-concat doom-user-dir doom-module-init-file) t) (condition-case err (progn (general-auto-unbind-keys) (unwind-protect ... ...)) ((debug error) (message "PRIVATE CONFIG ERROR: %s" err) nil)) (doom-run-hooks 'doom-after-reload-hook) (message "Config successfully reloaded!"))) (user-error "Failed to reload your config")))(#<buffer *compilation*<emacs>> "finished\n")
compilation-handle-exit(exit 0 "finished\n")
compilation-sentinel(#<process comint> "finished\n")
apply(compilation-sentinel (#<process comint> "finished\n"))
explain-pause--wrap-callback(#s(explain-pause-command-record :command process-sentinel :native nil :parent #s(explain-pause-command-record :command "comint" :native nil :parent #s(explain-pause-command-record :command doom/reload :native nil :parent #s(explain-pause-command-record :command root-emacs :native nil :parent nil :executing-time 1493 :entry-snap (25696 693 126483 909000) :too-slow nil :is-profiled nil :under-profile nil :profile nil :depth 0) :executing-time 138 :entry-snap (25696 691 528695 540000) :too-slow t :is-profiled nil :under-profile nil :profile nil :depth 1) :executing-time 0 :entry-snap nil :too-slow nil :is-profiled nil :under-profile nil :profile nil :depth 2) :executing-time 0 :entry-snap nil :too-slow nil :is-profiled nil :under-profile nil :profile nil :depth 3) compilation-sentinel #<process comint> "finished\n")
apply(explain-pause--wrap-callback #s(explain-pause-command-record :command process-sentinel :native nil :parent #s(explain-pause-command-record :command "comint" :native nil :parent #s(explain-pause-command-record :command doom/reload :native nil :parent #s(explain-pause-command-record :command root-emacs :native nil :parent nil :executing-time 1493 :entry-snap (25696 693 126483 909000) :too-slow nil :is-profiled nil :under-profile nil :profile nil :depth 0) :executing-time 138 :entry-snap (25696 691 528695 540000) :too-slow t :is-profiled nil :under-profile nil :profile nil :depth 1) :executing-time 0 :entry-snap nil :too-slow nil :is-profiled nil :under-profile nil :profile nil :depth 2) :executing-time 0 :entry-snap nil :too-slow nil :is-profiled nil :under-profile nil :profile nil :depth 3) compilation-sentinel (#<process comint> "finished\n"))
#f(compiled-function (&rest callback-args) #<bytecode -0xa39a10c24aa5ce5>)(#<process comint> "finished\n")
|
I have some news. The branch that worked has been forked by kepi, you can find it here: EDIT: Ok, I think I get what happened. Doom emacs seems to pin the evil-collection to an old version, which is why I got this problem. It works if I specifically pin the evil-collection to the current master branch: (unpin! evil-collection)
(package! evil-collection
:recipe (:repo "emacs-evil/evil-collection" :branch "master")) Sorry for this, because it has nothing to do with evil-collection. It is a doom emacs problem. |
@jojojames @condy0919 This issue can probably be closed. |
There are some changes in the development version of mu4e which break evil-collection-mu4e.el In particular, the function, mu4e
view-quit-buffer no longer exists. This means that mu4e-view-mode-map entry for 'q' needs to be changed. Instead of binding q to mu4eview-quit-buffer, I found binding to quit-window works.Note that this only affect the current 1.9.x version (1.9.7 specifically). It does not affect earlier versions of mu4e.
As it stands now, when the user hits q to leave the view buffer (mu4e-article window), an error is thrown - wrong argument commandp as the function mu4e~viewquit-buffer does not exist.
The text was updated successfully, but these errors were encountered: