Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [PATCH] Zed bindings uplift – page up/page down in ViCmd plus home, end in ViCmd
- X-seq: zsh-workers 43709
- From: Sebastian Gniazdowski <sgniazdowski@xxxxxxxxx>
- To: Peter Stephenson <p.stephenson@xxxxxxxxxxx>
- Subject: Re: [PATCH] Zed bindings uplift – page up/page down in ViCmd plus home, end in ViCmd
- Date: Thu, 18 Oct 2018 06:52:55 +0200
- Cc: Zsh hackers list <zsh-workers@xxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=eXW3H28UO5jXYX1YL4L9jhxYdHwkeQG4CBvjPxANBDc=; b=IybeJJDn9P6aZuZ41ulvJljtFNIyWekeTqZFiVrM2sT2+TQ007bBrc9ffO/MMvJXyu Ui80RvHHwYihKkrx+YL0x8YvXmwJi71d29kUx9Npkq18LMER3GBvcrHgUYqd0aN3ugn8 jIY3R7o3nXR0CdCz+j2f7t2nx7eV8hBCHXDTh8v+2NfgKphnzxTdZqOlK+ypVmZt+tw8 GRcfRBvF4DPuQnalECMIvtycTcOKjtJIp11dhdPqhHwVglNG7843R5qRccVATyRXAali n8qNrdOMEvrNNHcbh4Hypq3RGFohzoKXvCqSD8Q7ZDSKiqUPYZdwQ8KT1c1YQDcr4koz CBZQ==
- In-reply-to: <20180605083126eucas1p25c1d546e911ff275828ffb756fd5c6bb~1NmwdWAEk2550425504eucas1p2m@eucas1p2.samsung.com>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- List-unsubscribe: <mailto:zsh-workers-unsubscribe@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <CGME20180604111827epcas3p3431473d4909d3c2eefa3631c71bb1661@epcas3p3.samsung.com> <CAKc7PVDTMBRnS3sH_8Mg6c2Oev9uhtfr_D-S0rvVgiQ+=F40Eg@mail.gmail.com> <20180605083126eucas1p25c1d546e911ff275828ffb756fd5c6bb~1NmwdWAEk2550425504eucas1p2m@eucas1p2.samsung.com>
On Tue, 5 Jun 2018 at 10:32, Peter Stephenson <p.stephenson@xxxxxxxxxxx> wrote:
>
> On Mon, 4 Jun 2018 13:17:34 +0200
> Sebastian Gniazdowski <sgniazdowski@xxxxxxxxx> wrote:
> > the page up / page down bindings that I've added earlier were only for
> > insert mode. The patch binds them also in vicmd.
>
> Thanks. The first two mentions of zed-vicmd should actually be zed.
> I'll fix those and commit it.
The patch wasn't commited, but I have a new version of it:
- followed Oliver point that zle -N is idempotent, so one can just
call `zle -N ...' without `zle -la' check,
- fixed the first two zed-vicmd mentions,
- terminfo-fallback bindings aren't guarded by ${+terminfo} = 1 check.
--
Sebastian Gniazdowski
News: https://twitter.com/ZdharmaI
IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin
Blog: http://zdharma.org
diff --git a/Functions/Misc/zed b/Functions/Misc/zed
index f571daf..3325dd5 100644
--- a/Functions/Misc/zed
+++ b/Functions/Misc/zed
@@ -3,7 +3,7 @@
#
# No other shell could do this.
# Edit small files with the command line editor.
-# Use ^X^W to save, ^C to abort.
+# Use ^X^W to save (or ZZ in vicmd mode), ^C to abort.
# Option -f: edit shell functions. (Also if called as fned.)
setopt localoptions noksharrays
@@ -60,6 +60,9 @@ __zed_pg_down()
done
}
+zle -N __zed_pg_up
+zle -N __zed_pg_down
+
if (( bind )) || ! bindkey -M zed >&/dev/null; then
# Make the zed keymap a copy of the current main.
bindkey -N zed main
@@ -75,10 +78,17 @@ if (( bind )) || ! bindkey -M zed >&/dev/null; then
bindkey -M zed '^x^w' accept-line
bindkey -M zed '^M' self-insert-unmeta
- zle -N __zed_pg_up
- zle -N __zed_pg_down
- [[ ${+terminfo} = 1 && -n "$terminfo[kpp]" ]] && bindkey -M zed "$terminfo[kpp]" __zed_pg_up
- [[ ${+terminfo} = 1 && -n "$terminfo[knp]" ]] && bindkey -M zed "$terminfo[knp]" __zed_pg_down
+ [[ ${+terminfo} = 1 ]] && {
+ [[ -n "$terminfo[kpp]" ]] && bindkey -M zed "$terminfo[kpp]" __zed_pg_up
+ [[ -n "$terminfo[knp]" ]] && bindkey -M zed "$terminfo[knp]" __zed_pg_down
+ [[ -n "$terminfo[khome]" ]] && bindkey -M zed "$terminfo[khome]" beginning-of-line
+ [[ -n "$terminfo[kend]" ]] && bindkey -M zed "$terminfo[kend]" end-of-line
+ }
+
+ # A fallback to a well known key-sequence code as terminfo
+ # might be wrong (often) sometimes
+ bindkey -M zed "^[[H" beginning-of-line
+ bindkey -M zed "^[[F" end-of-line
# Make zed-set-file-name available.
# Assume it's in fpath; there's no error at this point if it isn't
@@ -89,6 +99,17 @@ if (( bind )) || ! bindkey -M zed-vicmd >&/dev/null; then
bindkey -N zed-vicmd vicmd
bindkey -M zed-vicmd "ZZ" accept-line
+ [[ ${+terminfo} = 1 ]] && {
+ [[ -n "$terminfo[kpp]" ]] && bindkey -M zed-vicmd "$terminfo[kpp]" __zed_pg_up
+ [[ -n "$terminfo[knp]" ]] && bindkey -M zed-vicmd "$terminfo[knp]" __zed_pg_down
+ [[ -n "$terminfo[khome]" ]] && bindkey -M zed-vicmd "$terminfo[khome]" vi-beginning-of-line
+ [[ -n "$terminfo[kend]" ]] && bindkey -M zed-vicmd "$terminfo[kend]" vi-end-of-line
+ }
+
+ # A fallback to a well known key-sequence code as terminfo
+ # might be wrong (often) sometimes (vicmd keymap)
+ bindkey -M zed-vicmd "^[[H" vi-beginning-of-line
+ bindkey -M zed-vicmd "^[[F" vi-end-of-line
fi
(( bind )) && return 0
Messages sorted by:
Reverse Date,
Date,
Thread,
Author