Previous: Cooperation, Up: Interaction
shift-selection-mode
is on by default, meaning that
cursor motions combined with the shift key should start or enlarge regions.
This conflicts with the use of S-<cursor> commands in Org to change
timestamps, TODO keywords, priorities, and item bullet types if the cursor is
at such a location. By default, S-<cursor> commands outside
special contexts don't do anything, but you can customize the variable
org-support-shift-select
. Org mode then tries to accommodate shift
selection by (i) using it outside of the special contexts where special
commands apply, and by (ii) extending an existing active region even if the
cursor moves across a special context.
pc-select-mode
and s-region-mode
) to select and extend the
region. In fact, Emacs 23 has this built-in in the form of
shift-selection-mode
, see previous paragraph. If you are using Emacs
23, you probably don't want to use another package for this purpose. However,
if you prefer to leave these keys to a different package while working in
Org mode, configure the variable org-replace-disputed-keys
. When set,
Org will move 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. If you want
to have other replacement keys, look at the variable
org-disputed-keys
.
(add-hook 'org-mode-hook 'turn-off-filladapt-mode)
[tab]
instead of
"\t"
) overrules YASnippet's access to this key. The following code
fixed this problem:
(add-hook 'org-mode-hook (lambda () (org-set-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, start by defining the following function:
(defun yas/org-very-safe-expand () (let ((yas/fallback-behavior 'return-nil)) (yas/expand)))
Then, tell Org mode what to do with the new 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
viper-vi-global-user-map
with
(define-key viper-vi-global-user-map "C-c /" 'org-sparse-tree)