Am 03.11.2014 11:06 schrieb k...@shike2.com: > > > Hi folks, > > > > my delete-key behaves as backspace since commit > > 9d9e049eac3dacb2725f9d792f7cdd2230062313 on all my linux machines > > (debian, fedora, ubuntu) and openbsd. > > > > i had this problem in the past (and wrote to this list about it), and > > my .zshrc since then contains stty erase ^H: > > It helps with the correct defininition of backspace (from kernel point of > view), > but it is not related to delete key. I suspect zsh sets your terminal in > application > mode, > > > > > Output of CTRL-V + DEL (on both openbsd and fedora, both have stty erase = > > ^H): > > > > st, zsh: ^? > > st, bash: ^[[P > > Yes, zsh sets your terminal in application mode, and the value of kdl1 should > be > checked only in keyboard mode. This is a bug in zsh. You can read this in the > FAQ: > > If you are using zsh, then read the zsh FAQ > <http://zsh.sourceforge.net/FAQ/zshfaq03.html#25> > > It should be noted that the O / [ confusion can occur with other keys > such as Home and End. Some systems let you query the key sequences sent > sent by these keys forom the system's terminal database, terminfo. > Unfortunately, the key sequences given there tpyically apply to the mode > that is not the one zsh uses by default (it's the "application" mode rather > than the ""raw" mode). Explaining the use of terminfo is outside of the scope > of this FAQ, but if you whish to use the key sequences given there you can > tell the line editor to turn on "application" mode when it starts and turn it > off when it stops: > > function zle-line-init () { echoti smkx } > funcion zle-line-finish() { echoti rmkx } > zle -N zle-line-init > zle -N zle-line-finish > > > Putting these lines into your .zshr will fix the problems. > > Do you have these lines in your zshrc? > > I have tested this configuration and it is true that it doesn't work, > but I think I know why. Readline and zsh are too much smart and think > that erase key is kbs capability, or ^?, but it shouldn't suppose > that, because in our case ^? is delete key. They are not compliant > with terminfo database, and it is clearly an error. They try to fix > a configuration problem and at the end they break the terminal > word totally. > > At this point there are several solutions here > > - Send a patch to readline and zsh people, although I don't think they are > going > to modify anythyng. > - Put st always in application mode and modify your terminfo > definition to match Delete key with ^[[P (the value generated by st > in application mode). You cannot do that in OpenBSD for example. > - Use a suckless shell that is terminfo compliant. > - Modify the keys generated by st. This option is not dificult, because you > only have to modify the values in your config.h (I think I should put this > option in the FAQ to). > > Regards, >
Hi, thanks for your mail(s)! I was out of town for work (unexpectedly) and had no access to my machine with st/zsh. Will reply tomorrow with more details. Best, Nils