From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id 2226F26922 for ; Fri, 17 May 2024 16:01:38 +0200 (CEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1715954498; b=N35uDNC3vDyl/xZERCcv/h1Emv3hqBBtBx8QTbEX1g8fKjGs+q2ojy0LHLMGveACRHbUS8Ep7u SiKjD9sOPMfO+A/QB/Talte3KRMndcfovAMl3bhwZp1p74+sQNFKaZz2MO2h+DvWsK+MDyDbnw ABKX5uBWaREgSzRaMSYAUlghVNnfs7VGltTX8C2dFtqST0F5SEraARy3ChZvTT47iVbMMEEcBZ WcYQppRu6haxtmJlAYjeBxAs73Ucp/afWyB0pIWW9ZTWLBjt9kaaDEgaJ3ACv3TIsoN3fsw2ZG PNLSRWC5thsZSKUvMaWeq5qAwd4d1oCSToCDEn/yUBzMEQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (csmtpq1-prd-nl1-vmo.edge.unified.services) smtp.remote-ip=84.116.50.35; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1715954498; bh=g+DCxU6gv3FflAXeFxZdmiTD9HskWeltha1DhhjI9Rg=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject: References:In-Reply-To:Message-ID:To:From:Date:DKIM-Signature: DKIM-Signature; b=N4BGGUqgj1Cru71flTibHzdIcl66OflX3BwMzXmFKx2f/XKqcox41HZBb9Dk5TU8+hXOh2H5Mr N1LzbJFqcW8Oaz0zcrSiEtDHq/wdiaj8yfsJkIprOhlJ/Pzjm6qIj3ecHxVGb10gAH+H+1yg8G X3k6nNTeIipWvgVftKY676efXUBVnCWeed4aBzCK/gaJbS+unJtKQC8gTdYU94l/OxPfj4Umls lZaRiFC44ITt0MG1LJkWv5huLI8KyVY7ySnD1ufvo42Tq8mX+L3hnJHxN3EbB/B16kZLe/zhoe i1en5lCSZomfLPpfAJdDij3TkGk1BzZAiPufh9/zKgEaSg==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:References:In-Reply-To:Message-ID:To:From: Date:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=tWSkUEpuoYS0XLWVIUI8vkXrpndsCLJDNa1ydzPVr4I=; b=ku5imLCkpAq0hsBeLnJJGATNAD e8AD4Ccc+LSFt5Vrl1qGwao2GRPBQ2BKt9L8vF0Pm3VE4STIxOTX58Xsg17uhpSuHK4rU5OAg+maZ j4RvGaPDd6wUxu1QtSwYP6DANP4FP5bt5fUpXIeg++M+c5Ec2CDGhk958k01vP1wWy2FBjITqNNHO JCrnUZLiVMKJL+O9ohG2SglKy64vc5AjWKNtR89P4yzzLSUwq75OMsV3N3KcShXw5qk/uzOcZvIW+ hwm0kJ+TPbrljzTwjyeXwFrZKbzCoc8Fjxjtu6e4XnHZzX9cbKtlW/P4wVQhlcazlqDpTCXV5CUMN VcCz8QUg==; Received: by zero.zsh.org with local id 1s7y9S-000J2I-Gf; Fri, 17 May 2024 14:01:38 +0000 Authentication-Results: zsh.org; iprev=pass (csmtpq1-prd-nl1-vmo.edge.unified.services) smtp.remote-ip=84.116.50.35; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none Received: from csmtpq1-prd-nl1-vmo.edge.unified.services ([84.116.50.35]:23519) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_256_GCM_SHA384:256) id 1s7y8f-000INk-Rr; Fri, 17 May 2024 14:00:50 +0000 Received: from oxsmtp1-prd-nl1-vmo.nl1.unified.services ([100.107.83.138]) by csmtpq1-prd-nl1-vmo.edge.unified.services with esmtp (Exim 4.93) (envelope-from ) id 1s7y8c-007IRE-1x for zsh-users@zsh.org; Fri, 17 May 2024 16:00:48 +0200 Received: from oxbe8-prd-nl1-vmo.nl1.unified.services ([100.107.83.39]) by oxsmtp1-prd-nl1-vmo.nl1.unified.services with ESMTP id 7y8csioLQFn2v7y8cs5LnQ; Fri, 17 May 2024 16:00:46 +0200 X-Env-Mailfrom: p.w.stephenson@ntlworld.com X-Env-Rcptto: zsh-users@zsh.org X-SourceIP: 100.107.83.39 X-CNFS-Analysis: v=2.4 cv=Fdllx4+6 c=1 sm=1 tr=0 ts=6647630e cx=a_exe a=zePz/vicIvybvxPZ7mZqPg==:117 a=IvlwODmuRu4A:10 a=IkcTkHD0fZMA:10 a=pGLkceISAAAA:8 a=0H-Cfnt9UMMrmo6uAXIA:9 a=QEXdDO2ut3YA:10 a=ZXulRonScM0A:10 a=zZCYzV9kfG8A:10 a=HbQOABYz3jhqdZF7JfnK:22 X-Authenticated-Sender: p.w.stephenson@ntlworld.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ntlworld.com; s=meg.feb2017; t=1715954446; bh=g+DCxU6gv3FflAXeFxZdmiTD9HskWeltha1DhhjI9Rg=; h=Date:From:To:In-Reply-To:References:Subject; b=BYIZYX4h7JAehi6X5ecIDTq1pFxgNSbYB69M+zWBYX8ywLd79nM1wXL0WynqZBPC3 53t36tHvZOkbQhQ9bTxwB+jxzOhk7/qfYLBQjF9QJ6c8JDXztRTSVxxR48yYhLCfZN 6aKKxJsRDz766+v0R1jP7VTFeYEkTAkYVnb9fmDXGmLc4ZF83yDDsZsVEVk0P0tOAO RxakYCMcGl2kYqj5kYFiyWSKILlEGL+whfhtnzryVl/Ef39QzPTcIHaRTd1wW1ERqb B565ytcBEBKE/TMqFcFe2Nfb5w4kPyn6dwPoVTTiDB+9gdKKJKtVZZ7T6ldFlztLDC u/ii7/uVch6hQ== Date: Fri, 17 May 2024 15:00:46 +0100 (BST) From: Peter Stephenson To: Allomorphy , zsh-users@zsh.org Message-ID: <672456907.1840983.1715954446011@mail.virginmedia.com> In-Reply-To: References: Subject: Re: creating a mnemonic for a history command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer X-Originating-IP: 147.161.224.196 X-Originating-Client: open-xchange-appsuite X-CMAE-Envelope: MS4xfD/hD84u+VD3S7dJLaT9Bj7UPqP/oLFJd8WYtQq6cvUluGM+nvqWYlxKQrUtUCi5fTjoPe4NdDM6hsnhB2HgSAdexF5bKJAKr2LDiG3INI0L18OFKWDu wPEfhOlA54vB8pKoXAbDzrC+JPk1c79XVBEcqYsYMa7ZmBMkz+4YJuHyaEtOtZ2tJAzcsvto16bwzMlkYYoIsDSKrcrUhntGq8TPuKfqz8/1RjrFlmiHZIgv Hu2r2/b+Ivad7RHEFsQ4K7JhWKnP/uKjx8YybifrLpI= X-Seq: 29938 Archived-At: X-Loop: zsh-users@zsh.org Errors-To: zsh-users-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-users-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: > On 17/05/2024 12:03 BST Allomorphy wrote: > This is one of the most useful incantations for me: > !?foo?:% > > It searches in the history for the latest command that contains the > string `foo' and returns the token (or phrase between spaces) in that > command. > > Its a pain to type. > What is an elegant way to set up a mnemonic like say an alias or > something else to type > gimme(foo) > or > !@#foo Your best bet is probably to use an editor function --- not a lot else happens before the history expansion so it's hard to do in the main shell. gimme() { LBUFFER='!?'$LBUFFER RBUFFER='?:%'$RBUFFER zle accept-line } zle -N gimme bindkey '^xg' gimme Type "foo" or whatever on the command line and then hit ^xg. Note I have not made any attempt to add sanity checks. pws