* Re: Bug#270632: zsh: Completion and spaces [not found] ` <20040908194101.GD2775@larve.net> @ 2004-09-08 20:26 ` Clint Adams 2004-09-08 21:22 ` Hugo Haas 2004-09-08 23:48 ` Bart Schaefer 0 siblings, 2 replies; 9+ messages in thread From: Clint Adams @ 2004-09-08 20:26 UTC (permalink / raw) To: zsh-workers; +Cc: Hugo Haas, 270632-forwarded > Oh, you're right. It's not insert-last-word which is the culprit, but > smart-insert-last-word. > > I have done: > > autoload smart-insert-last-word > zle -N insert-last-word smart-insert-last-word > > With this, you should be able to witness the problem. Is this the correct fix? Index: Functions/Zle/smart-insert-last-word =================================================================== RCS file: /cvsroot/zsh/zsh/Functions/Zle/smart-insert-last-word,v retrieving revision 1.2 diff -u -r1.2 smart-insert-last-word --- Functions/Zle/smart-insert-last-word 27 Jan 2003 16:41:17 -0000 1.2 +++ Functions/Zle/smart-insert-last-word 8 Sep 2004 20:25:14 -0000 @@ -86,5 +86,5 @@ fi done fi -LBUFFER[lcursor+1,cursor+1]=$lastcmd[-NUMERIC] +LBUFFER[lcursor+1,cursor+1]=" $lastcmd[-NUMERIC]" _ilw_cursor=$CURSOR ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug#270632: zsh: Completion and spaces 2004-09-08 20:26 ` Bug#270632: zsh: Completion and spaces Clint Adams @ 2004-09-08 21:22 ` Hugo Haas 2004-09-08 23:48 ` Bart Schaefer 1 sibling, 0 replies; 9+ messages in thread From: Hugo Haas @ 2004-09-08 21:22 UTC (permalink / raw) To: Clint Adams; +Cc: zsh-workers, 270632-quiet [-- Attachment #1: Type: text/plain, Size: 1897 bytes --] * Clint Adams <schizo@debian.org> [2004-09-08 16:26-0400] > > Oh, you're right. It's not insert-last-word which is the culprit, but > > smart-insert-last-word. > > > > I have done: > > > > autoload smart-insert-last-word > > zle -N insert-last-word smart-insert-last-word > > > > With this, you should be able to witness the problem. > > Is this the correct fix? > > Index: Functions/Zle/smart-insert-last-word > =================================================================== > RCS file: /cvsroot/zsh/zsh/Functions/Zle/smart-insert-last-word,v > retrieving revision 1.2 > diff -u -r1.2 smart-insert-last-word > --- Functions/Zle/smart-insert-last-word 27 Jan 2003 16:41:17 -0000 1.2 > +++ Functions/Zle/smart-insert-last-word 8 Sep 2004 20:25:14 -0000 > @@ -86,5 +86,5 @@ > fi > done > fi > -LBUFFER[lcursor+1,cursor+1]=$lastcmd[-NUMERIC] > +LBUFFER[lcursor+1,cursor+1]=" $lastcmd[-NUMERIC]" > _ilw_cursor=$CURSOR Your patch fixes the issue with a minor other issue, which is purely cosmetic. This always insert a space, whether it's needed or not. Basically, with my original scenario: hugo@buena /tmp% touch test hugo@buena /tmp% alias myfoobarcat=cat hugo@buena /tmp% cat test Then: hugo@buena /tmp% myfoob[] Tab: hugo@buena /tmp% myfoobarcat [] smart-insert-last-word: hugo@buena /tmp% myfoobarcat test[] smart-insert-last-word again: hugo@buena /tmp% myfoobarcattest myfoobarcat=cat[] So the first call to smart-insert-last-word did put a space between myfoobarcat and test, but the second call added another leading space between myfoobarcattest and myfoobarcat=cat. This extra space should only be added if the previous word was generated by a completion function, FWICT. Again, this is purely cosmetic IMO. Regards, Hugo -- Hugo Haas - http://larve.net/people/hugo/ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 307 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug#270632: zsh: Completion and spaces 2004-09-08 20:26 ` Bug#270632: zsh: Completion and spaces Clint Adams 2004-09-08 21:22 ` Hugo Haas @ 2004-09-08 23:48 ` Bart Schaefer 2004-09-08 23:56 ` Clint Adams 1 sibling, 1 reply; 9+ messages in thread From: Bart Schaefer @ 2004-09-08 23:48 UTC (permalink / raw) To: Clint Adams; +Cc: zsh-workers, 270632-forwarded On Wed, 8 Sep 2004, Clint Adams wrote: > Is this the correct fix? No, it isn't. See zsh-users/7841 for discussion, and the final three paragraphs therein for suggested repair. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug#270632: zsh: Completion and spaces 2004-09-08 23:48 ` Bart Schaefer @ 2004-09-08 23:56 ` Clint Adams 2004-09-09 14:59 ` Bart Schaefer 0 siblings, 1 reply; 9+ messages in thread From: Clint Adams @ 2004-09-08 23:56 UTC (permalink / raw) To: zsh-workers; +Cc: 270632-submitter > No, it isn't. See zsh-users/7841 for discussion, and the final three > paragraphs therein for suggested repair. Ah. Is there a downside to the LBUFFER+='' workaround? ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug#270632: zsh: Completion and spaces 2004-09-08 23:56 ` Clint Adams @ 2004-09-09 14:59 ` Bart Schaefer 2004-09-09 15:15 ` Clint Adams 0 siblings, 1 reply; 9+ messages in thread From: Bart Schaefer @ 2004-09-09 14:59 UTC (permalink / raw) To: Clint Adams; +Cc: zsh-workers, 270632-submitter On Wed, 8 Sep 2004, Clint Adams wrote: > > No, it isn't. See zsh-users/7841 for discussion, and the final three > > paragraphs therein for suggested repair. > > Ah. Is there a downside to the LBUFFER+='' workaround? Only that it always disables auto-suffix-removal. E.g., if $LBUFFER ends in a slash which was added as a completion suffix, and the first character of the word to be inserted is also a slash, then normally the suffix would be deleted in order that the slash not become doubled; but with the work- around, you get the double slash. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug#270632: zsh: Completion and spaces 2004-09-09 14:59 ` Bart Schaefer @ 2004-09-09 15:15 ` Clint Adams 2004-09-09 21:37 ` Bart Schaefer 0 siblings, 1 reply; 9+ messages in thread From: Clint Adams @ 2004-09-09 15:15 UTC (permalink / raw) To: zsh-workers; +Cc: 270632-submitter > Only that it always disables auto-suffix-removal. E.g., if $LBUFFER ends > in a slash which was added as a completion suffix, and the first character > of the word to be inserted is also a slash, then normally the suffix would > be deleted in order that the slash not become doubled; but with the work- > around, you get the double slash. That sounds like it's a purely cosmetic problem, but how about this for the zsh/parameter solution? Index: Functions/Zle/smart-insert-last-word =================================================================== RCS file: /cvsroot/zsh/zsh/Functions/Zle/smart-insert-last-word,v retrieving revision 1.2 diff -u -r1.2 smart-insert-last-word --- Functions/Zle/smart-insert-last-word 27 Jan 2003 16:41:17 -0000 1.2 +++ Functions/Zle/smart-insert-last-word 9 Sep 2004 15:14:21 -0000 @@ -35,13 +35,14 @@ # bindkey '\e=' insert-last-assignment emulate -L zsh +zmodload -i zsh/parameter || return 1 setopt extendedglob # Not strictly necessary: # (($+_ilw_hist)) || integer -g _ilw_hist _ilw_count _ilw_cursor _ilw_lcursor integer cursor=$CURSOR lcursor=$CURSOR -local lastcmd pattern numeric=$NUMERIC +local lastc lastcmd pattern numeric=$NUMERIC # Save state for repeated calls if (( HISTNO == _ilw_hist && cursor == _ilw_cursor )); then @@ -64,10 +65,8 @@ _ilw_hist=$HISTNO _ilw_count=$NUMERIC -zle .up-history || return 1 # Retrieve previous command -lastcmd=( ${${(z)BUFFER}:#\;} ) # Split into shell words -zle .down-history # Return to current command -CURSOR=$cursor # Restore cursor position +lastc="$history[$#history]" # Retrieve previous command +lastcmd=( ${${(z)lastc}:#\;} ) # Split into shell words NUMERIC=${numeric:-1} # In case of fall through (( NUMERIC > $#lastcmd )) && return 1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug#270632: zsh: Completion and spaces 2004-09-09 15:15 ` Clint Adams @ 2004-09-09 21:37 ` Bart Schaefer 2004-09-11 8:11 ` Hugo Haas 0 siblings, 1 reply; 9+ messages in thread From: Bart Schaefer @ 2004-09-09 21:37 UTC (permalink / raw) To: Clint Adams; +Cc: zsh-workers, 270632-submitter On Thu, 9 Sep 2004, Clint Adams wrote: > ... how about this for the zsh/parameter solution? > [...] > +lastc="$history[$#history]" # Retrieve previous command That doesn't account for $NUMERIC, nor for "holes" in the history number sequence (the various "ignore" options) that can cause upwards movement to skip certain numbers. That's part of the reason that I didn't try to write this patch before ... The following is untested. Index: Functions/Zle/smart-insert-last-word --- smart-insert-last-word.~1.2.~ 2003-03-14 17:27:01.000000000 -0800 +++ smart-insert-last-word 2004-09-09 14:34:57.000000000 -0700 @@ -1,7 +1,8 @@ # smart-insert-last-word # Inspired by Christoph Lange <langec@gmx.de> from zsh-users/3265; # rewritten to correct multiple-call behavior after zsh-users/3270; -# modified to work with copy-earlier-word after zsh-users/5832. +# modified to work with copy-earlier-word after zsh-users/5832; +# tweaked for auto-suffix-removal behavior after zsh-users/7841. # # This function as a ZLE widget can replace insert-last-word, like so: # @@ -41,7 +42,7 @@ # (($+_ilw_hist)) || integer -g _ilw_hist _ilw_count _ilw_cursor _ilw_lcursor integer cursor=$CURSOR lcursor=$CURSOR -local lastcmd pattern numeric=$NUMERIC +local lastc lastcmd pattern numeric=$NUMERIC # Save state for repeated calls if (( HISTNO == _ilw_hist && cursor == _ilw_cursor )); then @@ -64,11 +65,19 @@ _ilw_hist=$HISTNO _ilw_count=$NUMERIC -zle .up-history || return 1 # Retrieve previous command -lastcmd=( ${${(z)BUFFER}:#\;} ) # Split into shell words -zle .down-history # Return to current command -CURSOR=$cursor # Restore cursor position -NUMERIC=${numeric:-1} # In case of fall through +if zmodload -i zsh/parameter +then + lastc=( ${(kOn)history} ) # Get all history numbers + (( $#lastc > NUMERIC )) || return 1 # Check for overflow + lastc=$history[$lastc[NUMERIC]] # Remember previous command +else + zle .up-history || return 1 # Check for overflow + lastc=$BUFFER # Remember previous command + zle .down-history # Return to current command +fi +lastcmd=( ${${(z)lastc}:#\;} ) # Split into shell words +CURSOR=$cursor # Restore cursor position +NUMERIC=${numeric:-1} # In case of fall through (( NUMERIC > $#lastcmd )) && return 1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug#270632: zsh: Completion and spaces 2004-09-09 21:37 ` Bart Schaefer @ 2004-09-11 8:11 ` Hugo Haas 2004-09-13 18:04 ` Bart Schaefer 0 siblings, 1 reply; 9+ messages in thread From: Hugo Haas @ 2004-09-11 8:11 UTC (permalink / raw) To: zsh-workers, 270632-quiet; +Cc: Clint Adams, 270632-submitter [-- Attachment #1: Type: text/plain, Size: 204 bytes --] * Bart Schaefer <schaefer@brasslantern.com> [2004-09-09 14:37-0700] > The following is untested. It seems to do the trick indeed. Thanks, Hugo -- Hugo Haas - http://larve.net/people/hugo/ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 307 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug#270632: zsh: Completion and spaces 2004-09-11 8:11 ` Hugo Haas @ 2004-09-13 18:04 ` Bart Schaefer 0 siblings, 0 replies; 9+ messages in thread From: Bart Schaefer @ 2004-09-13 18:04 UTC (permalink / raw) To: Hugo Haas; +Cc: zsh-workers [I've dropped the Debian bugs addresses for now.] On Sat, 11 Sep 2004, Hugo Haas wrote: > * Bart Schaefer <schaefer@brasslantern.com> [2004-09-09 14:37-0700] > > The following is untested. > > It seems to do the trick indeed. Having finally had a chance to try it ... With the zsh/paramter patch it _never_ removes the auto-suffix, because it never calls a zle insert widget. It's no better than LBUFFER+=''. I'm reaching the conclusion that we do need some way for a user-defined widget to announce whether it should be considered an insertion, deletion, or motion, so that zle can deal properly with the suffixes added by the previous widget. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2004-09-13 18:05 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20040908115321.GA2417@larve.net> [not found] ` <20040908180950.GC25987@scowler.net> [not found] ` <20040908194101.GD2775@larve.net> 2004-09-08 20:26 ` Bug#270632: zsh: Completion and spaces Clint Adams 2004-09-08 21:22 ` Hugo Haas 2004-09-08 23:48 ` Bart Schaefer 2004-09-08 23:56 ` Clint Adams 2004-09-09 14:59 ` Bart Schaefer 2004-09-09 15:15 ` Clint Adams 2004-09-09 21:37 ` Bart Schaefer 2004-09-11 8:11 ` Hugo Haas 2004-09-13 18:04 ` Bart Schaefer
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/zsh/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).