From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6925 invoked from network); 22 Jun 2006 10:26:29 -0000 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00, FORGED_RCVD_HELO autolearn=ham version=3.1.3 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 22 Jun 2006 10:26:29 -0000 Received-SPF: none (ns1.primenet.com.au: domain at sunsite.dk does not designate permitted sender hosts) Received: (qmail 43487 invoked from network); 22 Jun 2006 10:26:14 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 22 Jun 2006 10:26:14 -0000 Received: (qmail 5407 invoked by alias); 22 Jun 2006 10:26:07 -0000 Mailing-List: contact zsh-users-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 10408 Received: (qmail 5397 invoked from network); 22 Jun 2006 10:26:06 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 22 Jun 2006 10:26:06 -0000 Received: (qmail 42431 invoked from network); 22 Jun 2006 10:26:06 -0000 Received: from cluster-c.mailcontrol.com (168.143.177.190) by a.mx.sunsite.dk with SMTP; 22 Jun 2006 10:26:05 -0000 Received: from cameurexb01.EUROPE.ROOT.PRI ([62.189.241.200]) by rly23c.srv.mailcontrol.com (MailControl) with ESMTP id k5MAND46006314 for ; Thu, 22 Jun 2006 11:26:01 +0100 Received: from news01.csr.com ([10.103.143.38]) by cameurexb01.EUROPE.ROOT.PRI with Microsoft SMTPSVC(6.0.3790.1830); Thu, 22 Jun 2006 11:25:14 +0100 Received: from news01.csr.com (localhost.localdomain [127.0.0.1]) by news01.csr.com (8.13.4/8.13.4) with ESMTP id k5MAPE8I010978 for ; Thu, 22 Jun 2006 11:25:14 +0100 Received: from csr.com (pws@localhost) by news01.csr.com (8.13.4/8.13.4/Submit) with ESMTP id k5MAPD8f010975 for ; Thu, 22 Jun 2006 11:25:14 +0100 Message-Id: <200606221025.k5MAPD8f010975@news01.csr.com> X-Authentication-Warning: news01.csr.com: pws owned process doing -bs To: zsh-users@sunsite.dk Subject: Re: Accidently wrote a command in CAPS LOCK In-reply-to: References: Comments: In-reply-to zzapper message dated "Thu, 22 Jun 2006 09:51:48 -0000." Date: Thu, 22 Jun 2006 11:25:13 +0100 From: Peter Stephenson X-OriginalArrivalTime: 22 Jun 2006 10:25:14.0387 (UTC) FILETIME=[26476E30:01C695E6] Content-Type: text/plain MIME-Version: 1.0 X-Scanned-By: MailControl A-07-00-10 (www.mailcontrol.com) on 10.67.0.133 zzapper wrote: > > Accidently wrote a command in CAPS LOCK > > FTX SUCC BOOK > > What's the best way to lowercase this? Well, going to the start and using down-case-word (ESC l in Emacs mode) until you get to the end is the obvious way. But it's not hard (after you've worked out the offsets, anyway) to write a widget that transforms the region---I hadn't realised there wasn't one: down-case-region() { emulate -L zsh integer p1 p2 if (( CURSOR < MARK )); then (( p1=CURSOR+1, p2=MARK )) else (( p1=MARK+1, p2=CURSOR )) fi BUFFER[p1,p2]=${(L)BUFFER[p1,p2]} } zle -N down-case-region Unfortunately ${(L)...} and parameter indexing don't handle multibyte characters yet, so down-case-word, which is implemented internally, should be safer. You could use some kind of hybrid. -- Peter Stephenson Software Engineer CSR PLC, Churchill House, Cambridge Business Park, Cowley Road Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070 To access the latest news from CSR copy this link into a web browser: http://www.csr.com/email_sig.php