From b4e36e9628758c637181252051a3fa6992f67ebd Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Tue, 12 Oct 2021 18:23:46 +0200 Subject: [PATCH] Double the default value of kill-ring-max * lisp/simple.el (kill-ring-max): Double the default to 120. * lisp/menu-bar.el (yank-menu-length): Doc fix. (yank-menu-max-items): New variable. (menu-bar-update-yank-menu): Don't display more than 'yank-menu-max-items' in the yank menu. * doc/emacs/custom.texi (Changing a Variable): * doc/emacs/killing.texi (Kill Ring): * doc/lispintro/emacs-lisp-intro.texi (kill-new function): * doc/lispref/text.texi (Internals of Kill Ring): Doc fix to use the new value. --- doc/emacs/custom.texi | 2 +- doc/emacs/killing.texi | 2 +- doc/lispintro/emacs-lisp-intro.texi | 2 +- doc/lispref/text.texi | 2 +- etc/NEWS | 8 ++++++++ lisp/menu-bar.el | 13 ++++++++++--- lisp/simple.el | 5 +++-- 7 files changed, 25 insertions(+), 9 deletions(-) diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 73dfe03898..eb30a6acc5 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -195,7 +195,7 @@ Changing a Variable The first line shows that the variable is named @code{kill-ring-max}, formatted as @samp{Kill Ring Max} for easier -viewing. Its value is @samp{60}. The button labeled @samp{[Hide]}, +viewing. Its value is @samp{120}. The button labeled @samp{[Hide]}, if activated, hides the variable's value and state; this is useful to avoid cluttering up the customization buffer with very long values (for this reason, variables that have very long values may start out diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi index 6e4fd77e8b..76fccdbdfe 100644 --- a/doc/emacs/killing.texi +++ b/doc/emacs/killing.texi @@ -353,7 +353,7 @@ Kill Ring @vindex kill-ring-max The maximum number of entries in the kill ring is controlled by the -variable @code{kill-ring-max}. The default is 60. If you make a new +variable @code{kill-ring-max}. The default is 120. If you make a new kill when this limit has been reached, Emacs makes room by deleting the oldest entry in the kill ring. diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 6ecd552ebb..81ae253633 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -8767,7 +8767,7 @@ kill-new function The code checks whether the length of the kill ring is greater than the maximum permitted length. This is the value of -@code{kill-ring-max} (which is 60, by default). If the length of the +@code{kill-ring-max} (which is 120, by default). If the length of the kill ring is too long, then this code sets the last element of the kill ring to @code{nil}. It does this by using two functions, @code{nthcdr} and @code{setcdr}. diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 1e062be2c6..163ac9038b 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -1342,7 +1342,7 @@ Internals of Kill Ring @defopt kill-ring-max The value of this variable is the maximum length to which the kill ring can grow, before elements are thrown away at the end. The default -value for @code{kill-ring-max} is 60. +value for @code{kill-ring-max} is 120. @end defopt @node Undo diff --git a/etc/NEWS b/etc/NEWS index 9daf958b07..82847cf9b9 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -78,6 +78,14 @@ the point is now moved only when releasing the mouse button. This no longer results in a bogus selection, unless the mouse has been effectively dragged. ++++ +** 'kill-ring-max' now defaults to 120. + +--- +** New user option 'yank-menu-max-items'. +Customize this option to limit the amount of entries in the menu +"Edit->Paste from Kill Menu". The default is 60. + * Changes in Specialized Modes and Packages in Emacs 29.1 diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 7c9fc1aeba..923b0c6060 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -2169,10 +2169,16 @@ delete-frame-enabled-p (> count 1))) (defcustom yank-menu-length 20 - "Maximum length to display in the `yank-menu'." + "Maximum length of entries in the `yank-menu'." :type 'integer :group 'menu) +(defcustom yank-menu-max-items 60 + "Maximum number of entries to display in the `yank-menu'." + :type 'integer + :group 'menu + :version "29.1") + (defun menu-bar-update-yank-menu (string old) (let ((front (car (cdr yank-menu))) (menu-string (if (<= (length string) yank-menu-length) @@ -2196,8 +2202,9 @@ menu-bar-update-yank-menu (cons (cons string (cons menu-string 'menu-bar-select-yank)) (cdr yank-menu))))) - (if (> (length (cdr yank-menu)) kill-ring-max) - (setcdr (nthcdr kill-ring-max yank-menu) nil))) + (let ((max-items (min yank-menu-max-items kill-ring-max))) + (if (> (length (cdr yank-menu)) max-items) + (setcdr (nthcdr max-items yank-menu) nil)))) (put 'menu-bar-select-yank 'apropos-inhibit t) (defun menu-bar-select-yank () diff --git a/lisp/simple.el b/lisp/simple.el index 841983a3b6..d9cc382775 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -5076,10 +5076,11 @@ kill-ring interaction; you may want to use them instead of manipulating the kill ring directly.") -(defcustom kill-ring-max 60 +(defcustom kill-ring-max 120 "Maximum length of kill ring before oldest elements are thrown away." :type 'integer - :group 'killing) + :group 'killing + :version "29.1") (defvar kill-ring-yank-pointer nil "The tail of the kill ring whose car is the last thing yanked.") -- 2.30.2