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 od
wyjściowe:) 033 [ 3 ~
. Tak więc polecenie będzie takie, bindkey "^[[3~" delete-char
które będzie w twoim ~/.zshrc
.
ctrl-v
jest 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
.
cat
a następnie wpisać klucze. Fn+F1
daje mi ^[OP
na 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 ~/.zshrc
pliku.