Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: zle questions

jean-baptiste.marchand wrote:

> 1)
> I like the menu completion feature (not complist) but I've still
> haven't found how to stop the completion when I've found the file I'm
> interested in :
> mylogin@mymachine ~> ls /
> then TAB 
> and zsh cycles trough the directories of /
> If I choose /usr, I would like to hit a key to tell zsh to stop the
> completion, put /usr/ on the command-line and continue the menu
> completion in /usr

You just hit whatever key you want (`/' in this case) and that will
stop menucompletion. The `/' is this example is a bit magic (with the
AUTO_REMOVE_SLASH option set): if the completion code automatically
inserted the trailing `/' (as it normally does) and you hit `/' this
doesn't seem to change the command line. But what really happens is
that `/' is one of the characters that automatically remove the
inserted slash and then self-insert inserts it again.

> I thought the zle function accept-and-menu-complete could do the job
> but instead, it inserts the current completion followed by a space...
> 2) Is it possible in zle to specify word boundaries when using
>    backward-kill-word ?
> In GNU Bash, you can do the following :
> mylogin@mymachine ~> ls /usr/X11R6/bin 
> and if you want to execute 'ls' in '/usr/X11R6/' instead of
> '/usr/X11R6/bin', you would hit ^W and it would kill the word '/bin'.
> Instead, Zsh kills the whole '/usr/X11R6/bin'. It is because GNU Bash
> recognizes '/' as a word boundary by default.
> I found this feature quite interesting but maybe there is another way
> to do this easily. 

The zle widgets for word movement/killing/whatever should all use the
$WORDCHARS special parameter. That gives the characters that are
normally considered to be part of a word (sans the alphanumeric ones
which are always considered to be part of words) -- and normally it
contains the slash. So you can just remove all characters from
$WORDCHARS where you want the cursor to be moved to or where you want
the word killing function to kill to.


Sven Wischnowsky                         wischnow@xxxxxxxxxxxxxxxxxxxxxxx

Messages sorted by: Reverse Date, Date, Thread, Author