summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2011-11-07 11:13:48 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2011-11-07 11:13:48 +0000
commitec6914b061c652a26078af71a29a3d3402583b52 (patch)
tree0a7b73bffa50d3434268aacccd3f070645a0bbda
parenta6e039e12e5b9e480b876971ff644c3180efb2bc (diff)
downloadzsh-ec6914b061c652a26078af71a29a3d3402583b52.tar.gz
zsh-ec6914b061c652a26078af71a29a3d3402583b52.zip
29894: display and use previous replacement in replace-string
-rw-r--r--ChangeLog7
-rw-r--r--Doc/Zsh/contrib.yo5
-rw-r--r--Functions/Zle/replace-string20
3 files changed, 26 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 8eda2f415..b9ac1e6ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-11-07 Peter Stephenson <pws@csr.com>
+
+ * 29894: Doc/Zsh/contrib.yo, Functions/Zle/replace-string:
+ display previous replacement and reuse if source string is empty.
+
2011-11-04 Peter Stephenson <pws@csr.com>
* 29892: Functions/Zle/read-from-minibuffer,
@@ -15543,5 +15548,5 @@
*****************************************************
* This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5493 $
+* $Revision: 1.5494 $
*****************************************************
diff --git a/Doc/Zsh/contrib.yo b/Doc/Zsh/contrib.yo
index 05bbcd7ec..b02c61c45 100644
--- a/Doc/Zsh/contrib.yo
+++ b/Doc/Zsh/contrib.yo
@@ -2335,6 +2335,11 @@ regular expression matching is performed, else a literal string
replacement. Note that the previous source and replacement text are the
same whether pattern, regular expression or string matching is used.
+In addition, tt(replace-string) shows the previous replacement above
+the prompt, so long as there was one during the current session; if the
+source string is empty, that replacement will be repeated without
+the widget prompting for a replacement string.
+
For example, starting from the line:
example(print This line contains fan and fond)
diff --git a/Functions/Zle/replace-string b/Functions/Zle/replace-string
index bc608e577..a3416a403 100644
--- a/Functions/Zle/replace-string
+++ b/Functions/Zle/replace-string
@@ -3,7 +3,15 @@ setopt extendedglob
autoload -Uz read-from-minibuffer replace-string-again
-local p1="Replace: " p2=" with: "
+local p1 p2
+
+if [[ -n $_replace_string_src ]]; then
+ p1="[$_replace_string_src -> $_replace_string_rep]"$'\n'
+fi
+
+p1+="Replace: "
+p2=" with: "
+
# Saving curwidget is necessary to avoid the widget name being overwritten.
local REPLY previous curwidget=$WIDGET
@@ -14,10 +22,12 @@ else
fi
read-from-minibuffer $p1 ${previous:+$_replace_string_src} || return 1
-typeset -g _replace_string_src=$REPLY
+if [[ -n $REPLY ]]; then
+ typeset -g _replace_string_src=$REPLY
-read-from-minibuffer "$p1$_replace_string_src$p2" \
- ${previous:+$_replace_string_rep} || return 1
-typeset -g _replace_string_rep=$REPLY
+ read-from-minibuffer "$p1$_replace_string_src$p2" \
+ ${previous:+$_replace_string_rep} || return 1
+ typeset -g _replace_string_rep=$REPLY
+fi
replace-string-again $curwidget