From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Sean Whitton Newsgroups: gmane.emacs.bugs Subject: bug#69097: [PATCH] Add 'kill-region-or-word' command Date: Mon, 02 Sep 2024 19:45:25 +0100 Message-ID: <87seuhki7u.fsf@zephyr.silentflame.com> References: <871q9g8z8k.fsf@posteo.net> <87wmob73ds.fsf@posteo.net> <861q6jji0i.fsf@gnu.org> <87o79n6uj6.fsf@posteo.net> <86v83vi2kr.fsf@gnu.org> <86seyzi2by.fsf@gnu.org> <87cyq26bt8.fsf@posteo.net> <864jbeixkt.fsf@gnu.org> <874jbe65u0.fsf@posteo.net> <8634qwkbtc.fsf@mail.linkov.net> <86h6fceij2.fsf@gnu.org> <87edaeevmr.fsf@zephyr.silentflame.com> <87a5l2evdn.fsf@zephyr.silentflame.com> <86ikzqbzac.fsf@gnu.org> <87seujf8bb.fsf@posteo.net> <867cbu9uce.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33053"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: Stefan Kangas , Eli Zaretskii , Philip Kaludercic , Andrea Corallo , juri@linkov.net, rms@gnu.org, 69097@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Sep 02 20:46:26 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1slC4I-0008Si-6e for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 02 Sep 2024 20:46:26 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1slC3w-0001Hr-7J; Mon, 02 Sep 2024 14:46:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1slC3t-0001Hg-Pi for bug-gnu-emacs@gnu.org; Mon, 02 Sep 2024 14:46:01 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1slC3s-0007Ru-KS for bug-gnu-emacs@gnu.org; Mon, 02 Sep 2024 14:46:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:References:In-Reply-To:From:To:Subject; bh=osxeRgwK3b0hVBqKlOR88+5HG6eedMbVZtZf2sxxSZA=; b=XgB7fK+VQ1w9bWcInbBAvmHmsHu8dA19rZaIr3wScFsW3/tdGIn7ozm+T3/mdpsV85q3xGPHfejBpXpRGXTAhMH2pzXf0DSVGgPZ/d2M4vYaV0xFkKG1PyUz0Vg4r7wbFtQL2IEAQOdWzJkVrmPSXUT4I7we6ou2LD9G44kERUjG45KwozqMqGyBKF1FbYZZG5k/2YP4DRuHS7i1aOt5R92y1bqERgf96cShGMNrZe9mNCcpNWwiehuoDutgRmpOGaHlt1TjSEW7LkorXv4cMliUnQv9uC1ju6IgF/2smK8xGMTkz3hsv2dl20TGJnPhQ2nKKOv81PZnCKZ7iTzwKA==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1slC4r-0001Ec-O4 for bug-gnu-emacs@gnu.org; Mon, 02 Sep 2024 14:47:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 02 Sep 2024 18:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69097 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 69097-submit@debbugs.gnu.org id=B69097.17253027994678 (code B ref 69097); Mon, 02 Sep 2024 18:47:01 +0000 Original-Received: (at 69097) by debbugs.gnu.org; 2 Sep 2024 18:46:39 +0000 Original-Received: from localhost ([127.0.0.1]:52103 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1slC4U-0001DN-E5 for submit@debbugs.gnu.org; Mon, 02 Sep 2024 14:46:38 -0400 Original-Received: from sendmail.purelymail.com ([34.202.193.197]:39954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1slC4S-0001Cu-7w for 69097@debbugs.gnu.org; Mon, 02 Sep 2024 14:46:37 -0400 DKIM-Signature: a=rsa-sha256; b=eadfuc01WiSXiLj3aUbrxzwZ6Bct+RHwQQQS8kWtOhO1sjwppHdZNyfXeuJ99aT/0AN17GY8Mp2RH6VrkfyJPi8aivsFxgIL/fN3TeCtmQtWAc0ZmPbGdVoRe/jD8mJP/Fj9tJ3bELiPIM3G3ft0J1Pg84TSFGDZyo2y4YUVF6WFty3Jx4PRgevzwGOnFAa+4io2jDFlNUQ/3m75dcRQb0OG0CjwfhKrLAgwkTItdLBD4yqDgNFlOlpmzscIBuLMvuNcJPSWviVPoqr50mvm8haIEcK17rPIwYDe5hnKAJYyVq5eRYnBiwN7XCtwa2TEjpGQxHUbOO748bDQRPt4Ww==; s=purelymail3; d=spwhitton.name; v=1; bh=W9/yQW+HqHCY324V99/ne1JhkwbVGcYGJ+YltrE/R7M=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=K2dVyjbHvQvexwbvlbvu4Ds6hCl6zQhVh1Sxd/CaueESMiI1Z2aqr7EHhwxx2Ds2gTRmrB6Lx+UoYLcJKRFZufZptlB2aPl9zIIUT4stbNbhaKm2Sn0dIIXXTuQDwVLIFMe1a3s6hU2Nm9c9yQAWwwoBQJWQNbft/HOqN/K4vzSpgvTz16AErefY23UZ+g7dzsxnH+jpRxQD+e8S7ZiGbLX+y9KaYF2qU7PmzYzhsKwwyuaO0kwEatOYOVkXfnF8HSmDm9JV1/pFU47g9LeywMhSlDMlcJQgfxLqppCgVxmamBccu7bj5cphiaR9oLSMl3y/Hctpd6UPRkj7SiFumA==; s=purelymail3; d=purelymail.com; v=1; bh=W9/yQW+HqHCY324V99/ne1JhkwbVGcYGJ+YltrE/R7M=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 69097@debbugs.gnu.org Original-Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1480653900; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 02 Sep 2024 18:45:26 +0000 (UTC) Original-Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 9CA3A9427D5; Mon, 2 Sep 2024 19:45:25 +0100 (BST) In-Reply-To: (Stefan Kangas's message of "Mon, 2 Sep 2024 11:30:14 -0700") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:291117 Archived-At: Hello, On Mon 02 Sep 2024 at 11:30am -07, Stefan Kangas wrote: > Binding C-w to backward-kill-word, or some version thereof, is an old > Emacs power user trick that has been recommended in many places over the > years. See, for example: > https://sites.google.com/site/steveyegge2/effective-emacs#h.p_ID_193 > https://emacs-fu.blogspot.com/2009/11/copying-lines-without-selecting-them.html > > So I think this command would be a good addition. Making the word > boundary behaviour into a tristate option sounds like a reasonable way > forward, which should make everyone happy and let people experiment with > what works best for them. For reference purposes while implementing the tristate, here is my implementation of the Unix behaviour from my init. Should be helpful, though there is lots of room for improvement :) (defun spw/unix-word-rubout (arg &optional pos neg) (interactive "p") ;; Do skip over \n because `backward-kill-word' does. (unless pos (setq pos "[:space:]\n")) (unless neg (setq neg "^[:space:]\n")) (undo-boundary) (let ((start (point))) ;; Go only backwards. (dotimes (_ (abs arg)) (skip-chars-backward pos) (skip-chars-backward neg)) ;; Skip forward over any read-only text (e.g. an Eshell or comint prompt). (when-let ((beg (and (get-char-property (point) 'read-only) (next-single-char-property-change (point) 'read-only nil start)))) (goto-char beg)) (kill-region start (point)))) -- Sean Whitton