From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 10662 invoked from network); 20 Apr 2021 20:13:56 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 20 Apr 2021 20:13:56 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1618949636; b=iVCzy6UpH5LfyUyR3NCWtKoj0+NYq3wKWCA2M7e8Sas2dSsYAZz8MfxOGrm6ZQDfBsulEBCKFV sGTX0yyjYhSDNJW+znmpQZL2NtOlmHrgorhen//16EKWlSkFlUOTPxyEb45foqpjmCSe7dcqOV F52YGOwHWBdKG6H71XiD8PUTn5b1lCHwXYy406haQqMFS5OYDfHdrgDlIQ4pYWUf7cdU9MiOD7 RbMsFewaayx2/iAuTT7q63Hdm7nTawQjpKNzUE4R1C029Hobxl3hBuqD9+4AUMBpOxyZkM4C9o fZtUg9nfrY3p1LLTxTUj690e7KQBjTreRwU11BnghGImvw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lf1-f53.google.com) smtp.remote-ip=209.85.167.53; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1618949636; bh=tyIAp8vie12tiPb3P+pisuYa8CgxsW69GOWd3CU6JQg=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:References:To:Cc:In-Reply-To:Date:Subject:MIME-Version: Content-Type:Message-ID:From:DKIM-Signature:DKIM-Signature; b=DDC5XR4FkOkrdow/De54Ws2iDj7tsM3hRQfkWwPjAUL4iVC6vyMak54EuuJ/ymg58URsgftfvN IJ8slL+N7dSHJTVZTFxyIMYTNcGSzhdC82eWUmSf8As/82+i7t6AtU0BauGhdE6Yc5IUKDEUYY Urd4M1y1vg9brzW2wLAtjCbgZFseAbX271lg+FPiQmKm4DIqBZmpjML1DCvKNUptUJ/2/Og+UT ALL0hOLL1YLNtMCdJ4T7L6O0JRrqBxv1yxaCzI76fyA9UGQM3w9eE6+9hl/lF0vSMdyGwa22x4 Ep99BzkT5gX5+bhQs6GSU1j5/CjCOfzjP05yJo1kv5z8SQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:References:To:Cc:In-Reply-To:Date: Subject:Mime-Version:Content-Type:Message-Id:From:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=xqx5/KcmYx6gOSqOEKOwRlEUMoZ6B/2TAZ0OFT27V6k=; b=XFCWNmt3rRSmKqRO169Z7jStwE jKyd2e0tadbQAzoy0aqe8OIowM7+8USQwsLvYd+czT/y7q/JUvQH++TYapiXCtgl32jBvZhs1fneW 2IXdkY4Nt3vfEcGwzOKDEvR7dDOcYMBAbMPq3iWsEOATv2PirAbbCgfQZ8xrln25Qx2bzczXsMuR3 2R6QjLhwpVlUyKlVF988dYh5mCyudQEffbi10eHQ5TBXK+fkpofnup27P6TE4Ot8hh4dGK9azvA4q TWWqy5L0gwlqyWUDBdr/0mhEYew4oZ7aMkTnBN7UrVrZalmM0mtKZM6IzkRq2rDcBWClmzN8W3b7x 8Q9on7kQ==; Received: from authenticated user by zero.zsh.org with local id 1lYwkr-000GgJ-Mc; Tue, 20 Apr 2021 20:13:53 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lf1-f53.google.com) smtp.remote-ip=209.85.167.53; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lf1-f53.google.com ([209.85.167.53]:35744) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1lYwkb-000GSC-Ff; Tue, 20 Apr 2021 20:13:43 +0000 Received: by mail-lf1-f53.google.com with SMTP id x19so32973041lfa.2 for ; Tue, 20 Apr 2021 13:13:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=xqx5/KcmYx6gOSqOEKOwRlEUMoZ6B/2TAZ0OFT27V6k=; b=QOhioUtvzuqHdZC6nKKXx09/nd8vPxGjxmgBu4icP1HYTT1Dv27w01We9K7Ghjbpgo Drq8h3+Tic+zZRt5aE6EkHQw0gS0uHNVA/NGBxPqf0gTBy+wt5Pcnc2dKuu6fSkgpKgJ 0lditEZScgreSHO1cCXgD7BiDYMl1Lts+g+A3AupQVHikC7ommVKRNAgUjanScJV0wPD W83eG8Unf9s6gyoyrTw8D/moN/I3Wspot/vIkplDiYS92+kgc8JU8hF7E2kWwWrJSUod +a7dD+uPgj0oS4b5W+OaiBBH/9vXidKabIrSg7W9DJzRgxjgP/42Trf8a8qKxet1xRk4 Y5gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=xqx5/KcmYx6gOSqOEKOwRlEUMoZ6B/2TAZ0OFT27V6k=; b=ExZcXcsvNJsGcF295T19UT6nOFUJUliDhBRW9XRRRR23Ccc8NSF7b9+Ytxw60YmJJl tR53Bw/4Cl2Xd0/8QK9Qp87fQZR2rhE0S/fYlHhkKmvfgO1/+sTvAApr5iu6s+SeVB0T AlP30GoOscEuhEyJDv/pxAMC8fP7PUKusa3O2DYknoxhiaQdjb3AiWP0SZJVhiMR3/M5 M/M8KQF3j9wtbsh7PDC4fkGOqRt2FrpzMiI4inphheP8GMgWW6m0LXNp48QFdhekJZQA x30i2da+57DG69hDRRwvow751OtcVeCFp61JmZXJoPlbJKCbffnz7cOnb19D1t8JL3C2 C5OQ== X-Gm-Message-State: AOAM531uLc0E6zecPQrpmn2vCKcpERt2A+tRhwPSdJ2MGLIqbM1qOszd fTsXa3eMq2vVSXF+iyOkIBvuaa0YZNbHfw== X-Google-Smtp-Source: ABdhPJwuIaOHVpS/O6svX584gw8RMQsvcsfOR0bMJ96bacBvcmmnXQYwzDi0IKFQwuRoDVoFGReHcg== X-Received: by 2002:a05:6512:1046:: with SMTP id c6mr17254452lfb.297.1618949616724; Tue, 20 Apr 2021 13:13:36 -0700 (PDT) Received: from [192.168.1.15] (hag-tkubng22-50df3e-132.dhcp.inet.fi. [80.223.62.132]) by smtp.gmail.com with ESMTPSA id i25sm2110088lfl.256.2021.04.20.13.13.35 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Apr 2021 13:13:36 -0700 (PDT) From: Marlon Richert Message-Id: <4D587C0C-EB5F-4A58-A0AE-D45E43F432CD@gmail.com> Content-Type: multipart/mixed; boundary="Apple-Mail=_9784A101-62C7-4085-BC6D-D64BB2872320" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Subject: Re: [RFC][PATCH] Add change-directory() widget function Date: Tue, 20 Apr 2021 23:13:35 +0300 In-Reply-To: Cc: Zsh hackers list To: Bart Schaefer References: <95CDA630-4EE5-4003-8D9C-CCCB9A47F109@gmail.com> X-Mailer: Apple Mail (2.3654.60.0.2.21) X-Seq: 48626 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: --Apple-Mail=_9784A101-62C7-4085-BC6D-D64BB2872320 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 On 20 Apr 2021, at 22:43, Bart Schaefer = wrote: > There seem to be a whole lot of spurious diff lines in contrib.yo in > this patch? What's going on there? If the delta is that trailing > whitespace has been removed, please don't do that. Oh, my bad. That has been unintentional. Here=E2=80=99s the patch again = but without the whitespace changes. --Apple-Mail=_9784A101-62C7-4085-BC6D-D64BB2872320 Content-Disposition: attachment; filename=0001-Add-change-directory-widget-function.txt Content-Type: text/plain; x-unix-mode=0644; name="0001-Add-change-directory-widget-function.txt" Content-Transfer-Encoding: quoted-printable =46rom 25684843ae02bd7b57137a8e50c661b991dec23b Mon Sep 17 00:00:00 2001 From: Marlon Richert Date: Tue, 20 Apr 2021 23:12:22 +0300 Subject: [PATCH] Add change-directory() widget function --- Doc/Zsh/contrib.yo | 15 +++++++++++++++ Functions/Zle/change-directory | 29 +++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Functions/Zle/change-directory diff --git a/Doc/Zsh/contrib.yo b/Doc/Zsh/contrib.yo index 3c4fdded0..6ad59798c 100644 --- a/Doc/Zsh/contrib.yo +++ b/Doc/Zsh/contrib.yo @@ -2423,6 +2423,21 @@ history is restricted, so cursor motions, etc., = may not pass outside of the pasted content. Text assigned to tt(BUFFER) by the active widgets is copied back into tt(PASTED) before tt(paste-finish). ) +tindex(change-directory) +item(tt(change-directory))( +This function implements the widgets tt(cd-upward), tt(cd-backward) and +tt(cd-forward). They can be used, respectively, to change to the = current +directory's parent or the previous/next entry in the directory stack. = They +should be initialized as follows: + +example(autoload -Uz change-directory +zle -N cd-upward change-directory +zle -N cd-backward change-directory +zle -N cd-forward change-directory +bindkey '^[^[OA' cd-upward # Alt-Up +bindkey '^[^[OD' cd-backward # Alt-Left +bindkey '^[^[OC' cd-forward # Alt-Right +) tindex(copy-earlier-word) item(tt(copy-earlier-word))( This widget works like a combination of tt(insert-last-word) and diff --git a/Functions/Zle/change-directory = b/Functions/Zle/change-directory new file mode 100644 index 000000000..376e4414c --- /dev/null +++ b/Functions/Zle/change-directory @@ -0,0 +1,29 @@ +zle .push-line-or-edit +case $WIDGET in + *-upward ) + if [[ -o autocd ]]; then + BUFFER=3D'..' + else + BUFFER=3D'cd ..' + fi + ;; + *-backward ) + if [[ -o pushdminus ]]; then + BUFFER=3D'pushd -1' + else + BUFFER=3D'pushd +1' + fi + ;; + *-forward ) + if [[ -o pushdminus ]]; then + BUFFER=3D'pushd +0' + else + BUFFER=3D'pushd -0' + fi + ;; + * ) + print -u2 'change-directory: widget name should end in = -(up|back|for)ward' + return 1 + ;; +esac +zle .accept-line --=20 2.31.1 --Apple-Mail=_9784A101-62C7-4085-BC6D-D64BB2872320 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_9784A101-62C7-4085-BC6D-D64BB2872320--