Emacs24 の selection挙動

Emacs24ではselectionの挙動が変更されています。Emacs24のNEWSによれば

Selection changes.

The default handling of clipboard and primary selections has been changed to conform with modern X applications. In short, most commands for killing and yanking text now use the clipboard, while mouse commands use the primary selection.

In the following, we provide a list of these changes, followed by a list of steps to get the old behavior back if you prefer that.

  • `select-active-regions’ now defaults to t. Merely selecting text (e.g. with drag-mouse-1) no longer puts it in the kill ring. The selected text is put in the primary selection, if the system possesses a separate primary selection facility (e.g. X).
    • `select-active-regions’ also accepts a new value, `only’. This means to only set the primary selection for temporarily active regions (usually made by mouse-dragging or shift-selection); “ordinary” active regions, such as those made with C-SPC followed by point motion, do not alter the primary selection.
    • `mouse-drag-copy-region’ now defaults to nil.
  • mouse-2 is now bound to `mouse-yank-primary’. This pastes from the primary selection, ignoring the kill-ring. Previously, mouse-2 was bound to `mouse-yank-at-click’.
  • `x-select-enable-clipboard’ now defaults to t on all platforms.
  • `x-select-enable-primary’ now defaults to nil. Thus, commands that kill text or copy it to the kill-ring (such as M-w, C-w, and C-k) also use the clipboard—not the primary selection.
        The “Copy”, “Cut”, and “Paste” items in the “Edit” menu are now exactly equivalent to M-w, C-w, and C-y respectively.
        Note that on MS-Windows, `x-select-enable-clipboard’ was already non-nil by default, as Windows does not support the primary selection between applications.
  • To return to the previous behavior, do the following:
    • Change `select-active-regions’ to nil.
    • Change `mouse-drag-copy-region’ to t.
    • Change `x-select-enable-primary’ to t (on X only).
    • Change `x-select-enable-clipboard’ to nil.
    • Bind `mouse-yank-at-click’ to mouse-2.
  • Support for X cut buffers has been removed.
  • X clipboard managers are now supported. To inhibit this, change `x-select-enable-clipboard-manager’ to nil.

となっています(整形と色による強調は私によるものです。)

作業効率的には以前の振る舞いの方が良いように私は思っています。ですので

(setq x-select-enable-clipboard nil)
(setq select-active-regions t)
(setq mouse-drag-copy-region t)
(setq x-select-enable-primary t)

(global-set-key [mouse-2] 'mouse-yank-at-click)

としています。