From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1874 invoked from network); 30 Mar 2000 10:39:30 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 30 Mar 2000 10:39:30 -0000 Received: (qmail 13541 invoked by alias); 30 Mar 2000 10:38:49 -0000 Mailing-List: contact zsh-users-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 2992 Received: (qmail 13522 invoked from network); 30 Mar 2000 10:38:47 -0000 Date: Thu, 30 Mar 2000 12:38:45 +0200 (MET DST) Message-Id: <200003301038.MAA28818@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-users@sunsite.auc.dk In-reply-to: jean-baptiste.marchand@epita.fr's message of 30 Mar 2000 12:02:57 +0200 Subject: 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. Bye Sven -- Sven Wischnowsky wischnow@informatik.hu-berlin.de