Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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 16 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

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.