12.3.1 Using the Clipboard
The clipboard is the facility that most graphical applications use for “cutting and pasting". When the clipboard exists, the kill and yank commands in Emacs make use of it.
When you kill some text with a command such as C-w
(kill-region
), or copy it to the kill ring with a command such as M-w
(kill-ring-save
), that text is also put in the clipboard.
When an Emacs kill command puts text in the clipboard, the existing clipboard contents are normally lost. Optionally, you can change save-interprogram-paste-before-kill
to t
. Then Emacs will first save the clipboard to its kill ring, preventing you from losing the old clipboard data—at the risk of high memory consumption if that data turns out to be large.
Yank commands, such as C-y
(yank
), also use the clipboard. If another application “owns" the clipboard—i.e., if you cut or copied text there more recently than your last kill command in Emacs—then Emacs yanks from the clipboard instead of the kill ring.
Normally, rotating the kill ring with M-y
(yank-pop
) does not alter the clipboard. However, if you change yank-pop-change-selection
to t
, then M-y
saves the new yank to the clipboard.
To prevent kill and yank commands from accessing the clipboard, change the variable select-enable-clipboard
to nil
.
Many X desktop environments support a feature called the clipboard manager. If you exit Emacs while it is the current “owner" of the clipboard data, and there is a clipboard manager running, Emacs transfers the clipboard data to the clipboard manager so that it is not lost. In some circumstances, this may cause a delay when exiting Emacs; if you wish to prevent Emacs from transferring data to the clipboard manager, change the variable x-select-enable-clipboard-manager
to nil
.
Since strings containing NUL bytes are usually truncated when passed through the clipboard, Emacs replaces such characters with “\0" before transferring them to the system’s clipboard.
Prior to Emacs 24, the kill and yank commands used the primary selection (see Primary Selection), not the clipboard. If you prefer this behavior, change select-enable-clipboard
to nil
, select-enable-primary
to t
, and mouse-drag-copy-region
to t
. In this case, you can use the following commands to act explicitly on the clipboard: clipboard-kill-region
kills the region and saves it to the clipboard; clipboard-kill-ring-save
copies the region to the kill ring and saves it to the clipboard; and clipboard-yank
yanks the contents of the clipboard at point.