Odpowiedzi:
Najpierw dowiedz się, jaką sekwencję generuje.
echo "CtrlVFnDelete" | od -c
Następnie powiąż tę sekwencję za pomocą normalnego mechanizmu wiązania zsh.
echo "~", musisz postępować zgodnie ze wskazówkami, które dał ci Ignacio . W moim systemie jest ^[[3~(lub jako dane odwyjściowe:) 033 [ 3 ~. Tak więc polecenie będzie takie, bindkey "^[[3~" delete-charktóre będzie w twoim ~/.zshrc.
ctrl-vjest to specjalna sekwencja ucieczki, która oznacza „wstaw następny znak, który naciskam jako dosłowny, nieskalowany znak, zamiast robić to, co zwykle”. Oznacza to, że nie jest konwertowany ~, ale pozostaje sekwencją ucieczki.
0000000 C t r l V F n D e l e t e \n 0000016.
Dla mnie powyższe nie pomogło, więc dodałem do mojego klucza powiązanie ~/.zshrc:
bindkey "\e[3~" delete-char
FYI: Jestem na komputerze Mac (High Sierra).
~/.zshrc.
cata następnie wpisać klucze. Fn+F1daje mi ^[OPna przykład.
bindkey 'CtrlvFnDelete' delete-char
Spowoduje to powiązanie Fn+, Deleteaby usunąć pojedynczy znak. Jeśli powyższe nie jest jasne, musisz wpisać Ctrl+ v, Fn+ Deletemiędzy wpisywaniem cudzysłowów. Ctrl+ vpozwala wpisać dosłowną sekwencję ucieczki dowolnego klawisza po nim.
Możesz umieścić tę linię w swoim ~/.zshrcpliku.