В zsh, когда я нажимаю Fn+Delete (удаление вперед), вставляется тильда (~). Это указывает на то, что у zsh нет привязанного ключа.
Как мне связать его и заставить его вести себя нормально (удалить перед курсором)?
Сначала выясните, какую последовательность он генерирует.
echo "
Ctrl V Fn Удалить " | od -c
Затем свяжите эту последовательность, используя обычный механизм связывания zsh.
Для меня вышесказанное не сработало, поэтому я добавил следующую привязку ключей к моему ~/.zshrc
:
bindkey "\e[3~" delete-char
К вашему сведению: я на Mac (High Sierra).
bindkey '
Ctrl v Fn Delete ' delete-char
Это свяжет Fn+Delete, чтобы удалить вперед один символ. Если вышеприведенное не совсем понятно, вам нужно набрать Ctrl+v, Fn+Delete между наборами кавычек. Ctrl+v позволяет вводить буквально escape-escape-последовательность любой клавиши, которая идет после нее.
Вы можете поместить эту строку в ваш файл ~/.zshrc
.