1

The problem seems to be that evil-mode translates the key chord M-<left> into M-h. Unsetting M-h by binding it to nil in the local, global or org-mode map in a org-mode hook does not help.

6
  • Is it bound in an evil-mode keymap? If so, consider unbinding it there.
    – Drew
    Commented Aug 31, 2017 at 17:06
  • I don't know where it is bound. How can I figure it out? As I said, I suspect that evil-mode creates a binding M-h matching M-<left> because h is essentially the left arrow key in VIM.
    – Lenar Hoyt
    Commented Aug 31, 2017 at 18:25
  • Look in the evil source code. Or just try evil-mode-map or something. Or wait till someone here points you in the right direction. It's also possible that Evil uses its own special functions to create or change key bindings...
    – Drew
    Commented Aug 31, 2017 at 23:27
  • I'd refrain from such wild guesses until I've verified they're true, like by pasting the output of F1 k M-<left>.
    – wasamasa
    Commented Sep 1, 2017 at 5:14
  • <M-left> runs the command org-metaleft (found in org-mode-map), M-h runs the command org-metaleft. I tried unbinding it from all evil state maps and spacemacs-org-mode-map. I also tried listing all maps that contain (kbd "M-h") but it's only diff-mode-map which is unrelated. So does evil perhaps dynamically remap <left> to h, not via a key map?
    – Lenar Hoyt
    Commented Sep 1, 2017 at 22:05

1 Answer 1

1

I've been struggling with this too. I have a custom minor mode that I used for defining keys but all my keybindings were getting overwritten by org mode. I tried unbinding the M-{j,k,h,l} keys from org-mode specifically and even disabling all keybindings in org mode but nothing worked. M-h was still running the function to demote the header.

It ended up being the evil-collection package I was using. The dumb fix (which i don't mind) is to only enable evil-collection for the modes I want to use it in. You'd have to google how to disable keybinds from that package.

I'm okay with not using it in org mode. This is how I'm loading evil-collection now

   (use-package evil-collection
   :after evil
   :ensure t
   :config
  (evil-collection-init
   '(dired-mode ibuffer-mode))
   )

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.