Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In zsh, whenever I press Fn+Delete (which is forward delete) a tilde (~) gets inserted. This indicates zsh doesn't have the key bound.

How do I bind it, and make it behave normally (delete in front of the cursor)?

share|improve this question
up vote 17 down vote accepted

First figure out what sequence it generates.

echo "CtrlVFnDelete" | od -c

Then bind that sequence using the normal zsh bind mechanism.

share|improve this answer
~ > echo "~"|od -c 0000000 ~ \n 0000002 ~ > What do I do with this information now? – Tom R Jul 30 '10 at 16:08
@rixth: It's not actually outputting only a tilde. You can't use echo "~" , you have to actually follow the directions that Ignacio gave you. On my system, it's ^[[3~ (or as od outputs: 033 [ 3 ~). So the command would be bindkey "^[[3~" delete-char which would go in your ~/.zshrc. – Dennis Williamson Aug 2 '10 at 1:05
Thank you Dennis, and Ignacio! – Tom R Aug 9 '10 at 15:51
To clarify the above, ctrl-v is a special escape sequence that means "insert the next character I press as a literal unescaped character, instead of doing whatever it usually does." Meaning that it doesn't get converted to ~, but stays as the escape sequence. – NHDaly May 23 at 23:38
I don't understand how to use the output of the above to derive the bindkey. My output is 0000000 C t r l V F n D e l e t e \n 0000016. – Oliver Joseph Ash Jun 22 at 13:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .