Previous: Cooperation, Up: Interaction

#### 15.10.2 Packages that lead to conflicts with Org-mode

In Emacs 23, `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.
`CUA.el` by Kim. F. Storm
  Key bindings in Org conflict with the `S-<cursor>` keys used by CUA mode (as well as `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`.

`yasnippet.el`
  The way Org-mode binds the TAB key (binding to `[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-group)))

`windmove.el` by Hovav Shacham
  This package also uses the `S-<cursor>` keys, so everything written in the paragraph above about CUA mode also applies here. If you want make the windmove function active in locations where Org-mode does not have special functionality on `S-<cursor>`, add this to your configuration:

                ;; 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)

`viper.el` by Michael Kifer
  Viper uses `C-c /` and therefore makes this key not access the corresponding Org-mode command `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)