shift-selection-modecombines cursor motions with shift key to enlarge regions. Emacs sets this mode by default. This conflicts with Org's use of S-<cursor> commands to change timestamps, TODO keywords, priorities, and item bullet types, etc. Since S-<cursor> commands outside of specific contexts don't do anything, Org offers the variable
org-support-shift-selectfor customization. Org mode accommodates shift selection by (i) making it available outside of the special contexts where special commands apply, and (ii) extending an existing active region even if the cursor moves across a special context.
org-replace-disputed-keys. When set, Org moves the following key bindings in Org files, and in the agenda buffer (but not during date selection).
S-<UP> ⇒ M-p S-<DOWN> ⇒ M-n S-<LEFT> ⇒ M-- S-<RIGHT> ⇒ M-+ C-S-<LEFT> ⇒ M-S-- C-S-<RIGHT> ⇒ M-S-+
Yes, these are unfortunately more difficult to remember. To define a
different replacement keys, look at the variable
(add-hook 'org-mode-hook 'turn-off-filladapt-mode)
"\t") overrules YASnippet's access to this key. The following code fixed this problem:
(add-hook 'org-mode-hook (lambda () (setq-local yas/trigger-key [tab]) (define-key yas/keymap [tab] 'yas/next-field-or-maybe-expand)))
The latest version of yasnippet doesn't play well with Org mode. If the above code does not fix the conflict, first define the following function:
(defun yas/org-very-safe-expand () (let ((yas/fallback-behavior 'return-nil)) (yas/expand)))
Then tell Org mode to use that function:
(add-hook 'org-mode-hook (lambda () (make-variable-buffer-local 'yas/trigger-key) (setq yas/trigger-key [tab]) (add-to-list 'org-tab-first-hook 'yas/org-very-safe-expand) (define-key yas/keymap [tab] 'yas/next-field)))
;; Make windmove work in 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)
org-sparse-tree. You need to find another key for this command, or override the key in
(define-key viper-vi-global-user-map "C-c /" 'org-sparse-tree)