Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Strange behaviour of setopt and binkey in a widget
- X-seq: zsh-users 15014
- From: Mike Perdide <mike.perdide@xxxxxxxxx>
- To: zsh-users@xxxxxxx
- Subject: Strange behaviour of setopt and binkey in a widget
- Date: Tue, 20 Apr 2010 11:02:29 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:received:message-id :subject:from:to:content-type; bh=V7U4UbxQZRmqbwyqCAOvVJTspewp0S1M9exKFxYERNg=; b=NoBSEGfdVwQl4MhiugGB/2DGmUFYG6P/3wUR+HfiJBdmYP2VcsS37Jjz8S+A5R717g lDCYZhdrNxh34RaXh6jdqIBtH90PRQh6l70vkrKz/O4Kbq27xr3C7Ifh+K3Gjwcr687D 49FLiFWD3nqMJUg1ijM9S7hIPDwMZ0aQFjz70=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=Dh0ZVB4YVSladrAdKEXqYBZ5x/8C5hHR7gStSwdM1i8Z3gH8awX/O1J+v2kKKdgtqj D4P/DSSH7RZk5JrZrlBGEinwLU4rpcQQnigMEduZa+yZIiQ3CVOrsWJxJdRUoTVXjOaN 3Mju1yJko5b237q94QI2yPMJhYZbnpvfdeTUc=
- List-help: <mailto:zsh-users-help@zsh.org>
- List-id: Zsh Users List <zsh-users.zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- Mailing-list: contact zsh-users-help@xxxxxxx; run by ezmlm
Hello zsh users,
I'm trying to customize the behaviour of CTRL-D in certain conditions
and I 'm observing strange behaviours from zsh.
Here is what I do :
-------------- From my .zshrc ---------------
widg0() { echo "not really exiting"; }
zle -N widg0
widg1() { setopt ignoreeof; bindkey "^D" widg0; }
widg2() { unsetopt ignoreeof; bindkey -r "^D"; }
zle -N widg1
zle -N widg2
bindkey "^O" widg1
bindkey "^P" widg2
-------------- Starting from a bash shell :
[22:49] :~$ zsh
north.~% <CTRL-O> <CTRL-D>
zsh: use 'exit' to exit.
north.~% <CTRL-D>not really exiting
!!! First strange behaviour : the prompt is not redrawn. At
this point I press <ENTER> to get my prompt back :
north.~% <CTRL-P> <CTRL-D>
!!! The previous ligne is rewritten with these two :
[22:53] :~$
zsh: use 'exit' to exit
-----------------------------------------------------------------------------------------------
The long story behind the ^D rebinding is that I'm using
virtualenvwrapper, that is a wrapper around virtualenv, a tool
designed to build virtual environments using python. This wrapper
activates virtual environments by making directories and setting env
variables to these directories (such as PATH). When a environment is
activated, the only way to deactivate it is to enter "deactivate".
Typing ctrl-d will exit the shell you're in, and I think that's not a
nice behaviour. What I'm trying to do is to rebind ctrl-d so when it
is used in a virtual environment, this environment would be
deactivated but the shell wouldn't exit.
Am I doing something wrong ? Is the "strange" behaviour I'm observing
a feature I'm not using correctly ?
Thanks in advance.
(I already posted this on zsh-workers, but I guess it wasn't the
proper mailing list)
Regards,
Mike Perdide.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author