From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Recentish C-s M-y change Date: Sat, 02 Jan 2021 09:03:15 +0000 Message-ID: References: <87r1na4tyu.fsf@gnus.org> <87tus6tj7s.fsf@mail.linkov.net> <87a6txigm1.fsf@gnus.org> <874kk5lzew.fsf@mail.linkov.net> Reply-To: Gregory Heytings Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17143"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Alpine 2.22 (NEB 394 2020-01-19) Cc: emacs-devel@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Jan 02 10:04:11 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kvcpX-0004O1-CK for ged-emacs-devel@m.gmane-mx.org; Sat, 02 Jan 2021 10:04:11 +0100 Original-Received: from localhost ([::1]:51172 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kvcpW-0004i8-6v for ged-emacs-devel@m.gmane-mx.org; Sat, 02 Jan 2021 04:04:10 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35794) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kvcos-0004FM-OL for emacs-devel@gnu.org; Sat, 02 Jan 2021 04:03:30 -0500 Original-Received: from mx.sdf.org ([205.166.94.24]:61811) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kvcoq-00012R-Hb; Sat, 02 Jan 2021 04:03:30 -0500 Original-Received: from sdf.org (IDENT:ghe@faeroes.freeshell.org [205.166.94.9]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 10293I2V012007 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sat, 2 Jan 2021 09:03:18 GMT Original-Received: (from ghe@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 102943IE025299; Sat, 2 Jan 2021 09:04:03 GMT In-Reply-To: Received-SPF: pass client-ip=205.166.94.24; envelope-from=ghe@sdf.org; helo=mx.sdf.org X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, GAPPY_SUBJECT=0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:262302 Archived-At: >> In isearch-mode-map at least, the number of changes on control keys >> during the last twenty years or so is very small: C-u (to allow >> arguments to subcommands), C-h (to enable help on the isearch-mode-map >> keys) and C-x (to allow C-x 8 RET). > > Recent discussion shows there has been at least one more -- C-y. And I > recall C-w. And C-e, I think. > No, as I wrote a few lines above in the message you are replying to, C-y and C-w are bound in isearch-mode-map since at least 1992. C-y was isearch-yank-line until 2011; it then became isearch-yank-kill. C-w was isearch-yank-word until 2004; it then became isearch-yank-word-or-char. C-e is not (and AFAIK was never) bound in isearch-mode-map, at least not in vanilla Emacs. Anyway, this moves the discussion away from my proposal, which was to bind C-u C-y and C-u M-y to the new isearch-yank-pop feature. I include the code (which changes a few lines in isearch.el) again: (defun isearch-yank-select () (with-isearch-suspended (let ((string (read-from-kill-ring))) (if (and isearch-case-fold-search (eq 'not-yanks search-upper-case)) (setq string (downcase string))) (if isearch-regexp (setq string (regexp-quote string))) (setq isearch-yank-flag t) (setq isearch-new-string (concat isearch-string string) isearch-new-message (concat isearch-message (mapconcat 'isearch-text-char-description string "")))))) (defun isearch-yank-pop (&optional arg) "Replace just-yanked search string with previously killed string." (interactive "p") (if (and arg (> arg 1)) (isearch-yank-select) (if (not (memq last-command '(isearch-yank-kill isearch-yank-pop))) (isearch-yank-kill) (isearch-pop-state) (isearch-yank-string (current-kill 1))))) (defun isearch-yank-kill (&optional arg) "Pull string from kill ring into search string." (interactive "p") (unless isearch-mode (isearch-mode t)) (if (and arg (> arg 1)) (isearch-yank-select) (isearch-yank-string (current-kill 0))))