13

Org-mode keymapping defaults to using the arrow keys for commons functions. Has anyone sanely remapped their org-mode settings to entirely avoid arrow keys?

Please share.

Jeff Bauer
  • 861
  • 1
  • 10
  • 22

2 Answers2

13

Without remapping, you can already get by pretty well without arrow keys.

C-c C-x C-h in an Org buffer:

C-c C-x D       org-shiftmetadown
C-c C-x L       org-shiftmetaleft
C-c C-x R       org-shiftmetaright
C-c C-x U       org-shiftmetaup
C-c C-x d       org-metadown
C-c C-x l       org-metaleft
C-c C-x m       org-meta-return
C-c C-x r       org-metaright
C-c C-x u       org-metaup

As mentioned in the comments, whether or not these keys are set depends on your environment (for example, if you are using Emacs in the terminal or as a daemon). To make sure these always show up, you can enable org-use-extra-keys. (This needs to be done before Org is loaded.)

Kyle Meyer
  • 6,914
  • 26
  • 22
  • 1
    Those bindings don't appear in my org buffer. When I describe-mode, I see: org-shiftmetadown org-shiftmetaleft ... – Jeff Bauer Dec 14 '14 at 13:50
  • 3
    These are defined by `org-use-extra-keys` which is on be default for example in a terminal. Customize that option to get this also in a windowed emacs. Cf. http://emacs.stackexchange.com/a/3991/2710 – Andrew Swann Dec 14 '14 at 15:40
  • @AndrewSwann Thanks for pointing that out. – Kyle Meyer Dec 14 '14 at 16:29
3

Yay, finally a moment to shamelessly advertise http://abo-abo.github.io/worf/README.html.

h, j, k and l are arrows.

c toggles change mode:

(worf-defverb
 "change"
 '(("j" org-metadown)
   ("k" org-metaup)
   ("h" org-metaleft)
   ("l" org-metaright)
   ("t" org-set-tags :disable)
   ("n" worf-change-name :disable :break)
   ("a" org-meta-return :disable :break)))

cf enters change tree mode:

(worf-defverb
 "change-tree"
 '(("j" org-shiftmetadown)
   ("k" org-shiftmetaup)
   ("h" org-shiftmetaleft)
   ("l" org-shiftmetaright)))

cs enters change shift mode:

(worf-defverb
 "change-shift"
 '(("j" org-shiftdown)
   ("k" org-shiftup)
   ("h" org-shiftleft)
   ("l" org-shiftright)))

cr enters change shift-control mode:

(worf-defverb
 "change-shiftcontrol"
 '(("j" org-shiftcontroldown)
   ("k" org-shiftcontrolup)
   ("h" org-shiftcontrolleft)
   ("l" org-shiftcontrolright)))

q will quit any mode and make hjkl arrows again.

I'm still experimenting with the package, so these bindings might change in the future. If you want to try it, it's in MELPA. And as long as you're trying, check out g - it's the best feature of the package.

abo-abo
  • 13,943
  • 1
  • 29
  • 43