From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.help Subject: Re: Apply replacement on word occurring at point using a lisp function Date: Fri, 12 Aug 2022 23:24:03 +0300 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4473"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/+ () (2022-06-11) Cc: "help-gnu-emacs@gnu.org" To: uzibalqa Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Fri Aug 12 22:24:43 2022 Return-path: Envelope-to: geh-help-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 1oMbD1-00011y-PX for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 12 Aug 2022 22:24:43 +0200 Original-Received: from localhost ([::1]:51858 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oMbD0-00005C-M7 for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 12 Aug 2022 16:24:42 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44452) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMbCe-000052-I4 for help-gnu-emacs@gnu.org; Fri, 12 Aug 2022 16:24:20 -0400 Original-Received: from stw1.rcdrun.com ([217.170.207.13]:49583) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMbCc-0000du-LM for help-gnu-emacs@gnu.org; Fri, 12 Aug 2022 16:24:20 -0400 Original-Received: from localhost ([::ffff:197.239.4.196]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 00000000000B5B05.0000000062F6B6ED.00001F99; Fri, 12 Aug 2022 13:24:12 -0700 Mail-Followup-To: uzibalqa , "help-gnu-emacs@gnu.org" Content-Disposition: inline In-Reply-To: Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com 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, RCVD_IN_SBL=0.141, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:138829 Archived-At: * uzibalqa via Users list for the GNU Emacs text editor [2022-08-12 22:49]: > I want to insert the letter `k' for words with initial `cog', `col', `com', `con', `cor', `coun', `cum'." > > For this I have written > > (replace-regexp "\\<\\(co[glmnr]\\|coun\\|cum\\)" "k") > > What I want to do is apply the replacement on the word occurring at > point using a lisp function. How can this be achieved? (thing-at-point 'word) is to find word at point Then you may find cursor position and replace the region with new word. This is the way to go: (defun change-word-at-point () (interactive) (let* ((bounds (bounds-of-thing-at-point 'word)) (word (buffer-substring (car bounds) (cdr bounds))) (point (point))) (goto-char (car bounds)) (delete-char (length word)) (insert (replace-regexp-in-string "\\<\\(co[glmnr]\\|coun\\|cum\\)" "k" word)) (goto-char point))) But your regular expression is incorrect in the above function, as you are replacing it with "k" only. Maybe you try your best to tell what exactly you wish to replace with what. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/