From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3206 invoked by alias); 10 May 2011 14:20:39 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 16014 Received: (qmail 19277 invoked from network); 10 May 2011 14:20:38 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.3.1 Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.google.com designates 209.85.215.171 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:content-transfer-encoding; bh=CjosboCQcorXW9Do7SxRItz3hsBUtoxQ10D5HLJBFfo=; b=BQTZ3AdzRSTjuXLMbSBoFiemT14g6H5ne00Bl6dr8/DwsNhueP4KjUiun5kk0zuPxd j9LLYiWvm3XYAqmiXArBR5NglTmLG+//vTYLm1YR07dc0ernJR5elzbMgtE+F82PjVts AXs4xVIclFxh61KZyVq3C5EjZCF0ZdGE9hd14= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; b=AbUI3eyns3CCefDpyYL5Hbomb+fi+pBdaB9n5GoXJ5rONSFnnAcBPLBwbCmHHa0l6y rocakTCHwDbniirlrPzy07UJQbqsotzNeB8EawYxWUwDdYupo4bihN2CkxCv3Hrx0Oak nxs0gGSMaRFp1V0UYotldFRCgpvyUhTM7F4Tk= MIME-Version: 1.0 In-Reply-To: References: From: =?UTF-8?B?SsOpcsOpbWllIFJvcXVldA==?= Date: Tue, 10 May 2011 16:14:01 +0200 Message-ID: Subject: Re: Substituting grep (and other) output to open files in Vim To: zsh-users@zsh.org Cc: Richard Hartmann Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Richard, 2011/5/10 Richard Hartmann : > I would like to be able to do the following, but I am stuck. Every > pair of lines is what I would execute and what it would be transferred > to. I am assuming that every file "name" (i.e. including colons etc) I > am running Vim on does not exist. If it exists, it should be opened > instead of magic happening. "foo" exists while "foo:" etc do not. > > vim foo: > vim foo > > vim foo:bar > vim foo > > vim foo:123 > vim foo +123 > > vim foo:123: > vim foo +123 > > vim foo:123:bar > vim foo +123 > > Ideally, the same would happen for vimdiff. And yes, vimdiff heeds > only one +n and the last one on the command line wins. That's fine. > > > I am pretty sure this is trivial to do in zsh, but as I said I am at a > loss as to how.. Something like vim() { if test -r $1; then command vim $1 else args=3D(${(s.:.)1}) [[ $args[2] =3D <-> ]] && command vim $args[1] +$args[2] || command vim $args[1] fi } ? Best regards, --=20 J=C3=A9r=C3=A9mie