From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Rupert" Newsgroups: gmane.emacs.help Subject: Re: Flexible Killing Date: 10 Jan 2007 17:15:33 -0800 Organization: http://groups.google.com Message-ID: <1168478133.448778.302780@77g2000hsv.googlegroups.com> References: <1168455652.420443.245060@i39g2000hsf.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Trace: sea.gmane.org 1168479697 18052 80.91.229.12 (11 Jan 2007 01:41:37 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 11 Jan 2007 01:41:37 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Jan 11 02:41:35 2007 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1H4owc-0000JA-CP for geh-help-gnu-emacs@m.gmane.org; Thu, 11 Jan 2007 02:41:30 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1H4owc-0007YS-5t for geh-help-gnu-emacs@m.gmane.org; Wed, 10 Jan 2007 20:41:30 -0500 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!postnews.google.com!77g2000hsv.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 34 Original-NNTP-Posting-Host: 81.152.121.110 Original-X-Trace: posting.google.com 1168478140 22015 127.0.0.1 (11 Jan 2007 01:15:40 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Thu, 11 Jan 2007 01:15:40 +0000 (UTC) In-Reply-To: <1168455652.420443.245060@i39g2000hsf.googlegroups.com> User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20061205 Iceweasel/2.0.0.1 (Debian-2.0.0.1+dfsg-1),gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: 77g2000hsv.googlegroups.com; posting-host=81.152.121.110; posting-account=gzV7zA0AAABSTAJnd6XhxICCG2AoOEvs Original-Xref: shelby.stanford.edu gnu.emacs.help:144620 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:40224 Archived-At: haws wrote: > Hello! > > I'm a emacs beginner and would like to write a function that performs > this: > If there is a region selected, then it would kill-region, otherwise it > would kill-line. > Can anyone tell me how? I bet it's 2 lines of code! > > Thank you very much, > > Hugo Well, I'm a bit of a beginner too, but came up with this: (defun flexikill () (interactive) (let ((m nil)) (if (not (setq m (mark 1))) (kill-line) (let ((p (point))) (if (= p m) (kill-line) (kill-region (region-beginning) (region-end))))))) The problem is that we can't use (interactive 'r') as if there is no region, an (uncatchable) error message is printed, rather than us being able to do something. Thus we need to check that a mark exists in the buffer and that it's not equal to point (otherwise kill-region wouldn't make much sense). Rupert