diff options
| author | Peter Stephenson <pws@zsh.org> | 2014-07-24 10:49:50 +0100 |
|---|---|---|
| committer | Peter Stephenson <pws@zsh.org> | 2014-07-24 10:49:50 +0100 |
| commit | 6076c474f2427ec9a75cecab1fc95f7cd9f066f6 (patch) | |
| tree | 4566847be9d1225eefc9ad150df95f1d76c01efb /Functions/Zle/replace-argument | |
| parent | users/18981: improved tmux function completion (diff) | |
| download | zsh-6076c474f2427ec9a75cecab1fc95f7cd9f066f6.tar zsh-6076c474f2427ec9a75cecab1fc95f7cd9f066f6.tar.gz zsh-6076c474f2427ec9a75cecab1fc95f7cd9f066f6.tar.bz2 zsh-6076c474f2427ec9a75cecab1fc95f7cd9f066f6.tar.lz zsh-6076c474f2427ec9a75cecab1fc95f7cd9f066f6.tar.xz zsh-6076c474f2427ec9a75cecab1fc95f7cd9f066f6.tar.zst zsh-6076c474f2427ec9a75cecab1fc95f7cd9f066f6.zip | |
unposted: replace-argument can take negative prefix to count from end
Diffstat (limited to 'Functions/Zle/replace-argument')
| -rw-r--r-- | Functions/Zle/replace-argument | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/Functions/Zle/replace-argument b/Functions/Zle/replace-argument index b43fc39bb..0ef3de7b5 100644 --- a/Functions/Zle/replace-argument +++ b/Functions/Zle/replace-argument @@ -12,21 +12,23 @@ if (( ${#BUFFER} == 0 )); then CURSOR=${#BUFFER} fi -local widget=$WIDGET -integer numeric cursor=CURSOR +local widget=$WIDGET numeric +integer cursor=CURSOR if (( ${+NUMERIC} )); then numeric=$NUMERIC -else - numeric=-1 fi local reply REPLY REPLY2 integer index split-shell-arguments -if (( numeric >= 0 )); then - index=$(( 2 + 2*numeric )) +if [[ -n $numeric ]]; then + if (( numeric < 0 )); then + (( index = ${#reply} - 1 + 2*(numeric+1) )) + else + (( index = 2 + 2*numeric )) + fi else - index=$((REPLY & ~1 )) + (( index = REPLY & ~1 )) fi local edit |
