From fe06b7a73db3af0a4ba6988c5c467a90d36a2a76 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 6 Jul 2001 17:25:53 +0000 Subject: 15279: ${(S)...%%...} etc. doc; 15288: bash word functions + doc --- ChangeLog | 10 ++++++++++ Doc/Zsh/contrib.yo | 17 +++++++++++++++++ Doc/Zsh/expn.yo | 24 ++++++++++++++++++++---- Functions/Zle/.distfiles | 2 ++ Functions/Zle/bash-backward-kill-word | 5 +++-- Functions/Zle/bash-backward-word | 9 +++++++++ Functions/Zle/bash-forward-word | 9 +++++++++ Functions/Zle/bash-kill-word | 9 +++++++++ 8 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 Functions/Zle/bash-backward-word create mode 100644 Functions/Zle/bash-forward-word create mode 100644 Functions/Zle/bash-kill-word diff --git a/ChangeLog b/ChangeLog index 5dad2875c..b0f7566c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2001-07-06 Peter Stephenson + + * 15288: Doc/Zsh/contrib.yo, + Functions/Zle/bash-forward-word, Functions/Zle/bash-bacward-word, + Functions/Zle/bash-kill-word, Functions/Zle/bash-backward-kill-word: + complete set of bash-compatible word functions with documentation. + + * 15279: Doc/Zsh/expn.yo: describe those ${(S)...%%...} things + so that even I understand what the code does. + 2001-07-06 Oliver Kiddle * 15252 (and Akinori Musha: 15245): Completion/BSD/Command/_kld, diff --git a/Doc/Zsh/contrib.yo b/Doc/Zsh/contrib.yo index cff9f2d39..9919117e5 100644 --- a/Doc/Zsh/contrib.yo +++ b/Doc/Zsh/contrib.yo @@ -362,6 +362,23 @@ followed by an appropriate tt(bindkey) command to associate the function with a key sequence. Suggested bindings are described below. startitem() +tindex(bash-forward-word) +tindex(bash-backward-word) +tindex(bash-kill-word) +tindex(bash-backward-kill-word) +xitem(tt(bash-forward-word), tt(bash-backward-word)) +item(tt(bash-kill-word), tt(bash-backward-kill-word))( +These work similarly to the corresponding builtin zle functions without the +`tt(bash-)' prefix, but a word is considered to consist of alphanumeric +characters only. If you wish to replace your existing bindings with these +four widgets, the following is sufficient: + +example(for widget in kill-word backward-kill-word \ +forward-word backward-word; do + autoload bash-$widget + zle -N $widget bash-$widget +done) +) tindex(cycle-completion-positions) item(tt(cycle-completion-positions))( After inserting an unambiguous string into the command line, the new diff --git a/Doc/Zsh/expn.yo b/Doc/Zsh/expn.yo index 562e9bef2..a4631f37b 100644 --- a/Doc/Zsh/expn.yo +++ b/Doc/Zsh/expn.yo @@ -791,10 +791,26 @@ Search the var(expr)th match (where var(expr) evaluates to a number). This only applies when searching for substrings, either with the tt(S) flag, or with tt(${)...tt(/)...tt(}) (only the var(expr)th match is substituted) or tt(${)...tt(//)...tt(}) (all matches from the -var(expr)th on are substituted). The var(expr)th match is counted -such that there is either one or zero matches from each starting -position in the string, although for global substitution matches -overlapping previous replacements are ignored. +var(expr)th on are substituted). The default is to take the first match. + +The var(expr)th match is counted such that there is either one or zero +matches from each starting position in the string, although for global +substitution matches overlapping previous replacements are ignored. With +the tt(${)...tt(%)...tt(}) and tt(${)...tt(%%)...tt(}) forms, the starting +position for the match moves backwards from the end as the index increases, +while with the other forms it moves forward from the start. + +Hence with the string +example(which switch is the right switch for Ipswich?) +substitutions of the form +tt(${)LPAR()tt(SI:)var(N)tt(:)RPAR()tt(string#w*ch}) as var(N) increases +from 1 will match and remove `tt(which)', `tt(witch)', `tt(witch)' and +`tt(wich)'; the form using `tt(##)' will match and remove `tt(which switch +is the right switch for Ipswich)', `tt(witch is the right switch for +Ipswich)', `tt(witch for Ipswich)' and `tt(wich)'. The form using `tt(%)' +will remove the same matches as for `tt(#)', but in reverse order, and the +form using `tt(%%)' will remove the same matches as for `tt(##)' in reverse +order. ) item(tt(M))( Include the matched portion in the result. diff --git a/Functions/Zle/.distfiles b/Functions/Zle/.distfiles index b17029a7e..7de26ec71 100644 --- a/Functions/Zle/.distfiles +++ b/Functions/Zle/.distfiles @@ -1,5 +1,7 @@ DISTFILES_SRC=' .distfiles +bash-backward-kill-word bash-backward-word +bash-kill-word bash-forward-word cycle-completion-positions incarg predict-on edit-command-line incremental-complete-word smart-insert-last-word history-search-end insert-files diff --git a/Functions/Zle/bash-backward-kill-word b/Functions/Zle/bash-backward-kill-word index a85c9ba3e..6c4f3ba18 100644 --- a/Functions/Zle/bash-backward-kill-word +++ b/Functions/Zle/bash-backward-kill-word @@ -1,8 +1,9 @@ -# function bash-backward-kill-word { # This implements a bash-style backward-kill-word. # To use, # zle -N bash-backward-kill-word # bindkey '...' bash-backward-kill-word +# or if you wish to replace existing backward-kill-word bindings, +# zle -N backward-kill-word bash-backward-kill-word + local WORDCHARS='' zle .backward-kill-word -# } diff --git a/Functions/Zle/bash-backward-word b/Functions/Zle/bash-backward-word new file mode 100644 index 000000000..23da8b3fe --- /dev/null +++ b/Functions/Zle/bash-backward-word @@ -0,0 +1,9 @@ +# This implements a bash-style backward-word. +# To use, +# zle -N bash-backward-word +# bindkey '...' bash-backward-word +# or if you wish to replace existing backward-word bindings, +# zle -N backward-word bash-backward-word + +local WORDCHARS='' +zle .backward-word diff --git a/Functions/Zle/bash-forward-word b/Functions/Zle/bash-forward-word new file mode 100644 index 000000000..963ea012a --- /dev/null +++ b/Functions/Zle/bash-forward-word @@ -0,0 +1,9 @@ +# This implements a bash-style forward-word. +# To use, +# zle -N bash-forward-word +# bindkey '...' bash-forward-word +# or if you wish to replace existing forward-word bindings, +# zle -N forward-word bash-forward-word + +local WORDCHARS='' +zle .forward-word diff --git a/Functions/Zle/bash-kill-word b/Functions/Zle/bash-kill-word new file mode 100644 index 000000000..ba638a3c7 --- /dev/null +++ b/Functions/Zle/bash-kill-word @@ -0,0 +1,9 @@ +# This implements a bash-style kill-word. +# To use, +# zle -N bash-kill-word +# bindkey '...' bash-kill-word +# or if you wish to replace existing kill-word bindings, +# zle -N kill-word bash-kill-word + +local WORDCHARS='' +zle .kill-word -- cgit 1.4.1