8

I installed a package that changes emacs windows using Shift+arrow, and it works in various modes I use but not in org-mode. Is there a reason why org-mode shadows this command?

  • The following link demonstrates how to disable a few org-mode-map key bindings: stackoverflow.com/a/17540326/2112489 That approach will permit global key bindings to be used again. – lawlist May 16 '16 at 1:50
  • 1
    It would be helpful to know the package for window changing you are referring to (windmove?). Have a look at orgmode.org/manual/Conflicts.html. – Kaushal Modi May 16 '16 at 12:01
  • Thanks for prompting me, I have now found it in my init file. It is framemove. – Alejandro Erickson May 16 '16 at 14:48
  • @AlejandroErickson OK. The org-mode Conflicts section should help for that too. Check out the CUA and windmove sections over there. – Kaushal Modi May 16 '16 at 15:17
5

Add the following to your config, like described in "Packages that conflict with Org mode":

(add-hook 'org-shiftup-final-hook 'windmove-up)
(add-hook 'org-shiftleft-final-hook 'windmove-left)
(add-hook 'org-shiftdown-final-hook 'windmove-down)
(add-hook 'org-shiftright-final-hook 'windmove-right)

Set org-support-shift-select customization variable to "Everywhere except timestamps" (setq org-support-shift-select 'always), otherwise shift+arrows will still have org-mode keybidnings on headings.

| improve this answer | |
0

In Emacs 26.2 you only need to set the variable org-replace-disputed-keys to true while enabling windmove-default-keybindings to have the default windmove keybindings work normally. You don't need to configure the variable org-support-shift-select as said by the answer of kolen if you don't need the shift selection function because enabling default windmove keybindings will disable shift selection automatically (see C-h i g (emacs)Window Convenience). You only need to add

(add-hook 'org-shiftup-final-hook 'windmove-up)
(add-hook 'org-shiftleft-final-hook 'windmove-left)
(add-hook 'org-shiftdown-final-hook 'windmove-down)
(add-hook 'org-shiftright-final-hook 'windmove-right)

to init file if you want to keep the original org mode keybindings on regions where they take effect such as headings or list items and enable windmove on other regions (see C-h i g (org)conflicts). You may need to restart Emacs after making these changes to let them take effect.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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