Se você pressionar uma tecla especial (como Insert ) que envia uma seqüência de escape que não é reconhecida por zsh
, ela fará isso. O zsh tentará fazer algo com os bytes individuais da sequência de escape.
Olhando para o resultado de bindkey
, parece que o zsh não tem nenhuma função adequada que possa ser ligada a uma chave para ignorá-lo . Mas você pode voltar Inserir para uma macro vazia:
bindkey -s '\e[2~' ''
Da mesma forma para F12 . Pressione Ctrl + V F12 para ver qual seqüência de escape F12 envia, normalmente
bindkey -s '\e[24~' ''
De acordo com a página de manual zshzle
, há uma limitação com essa abordagem:
As well as ZLE commands, key sequences can be bound to other strings, by using 'bindkey -s'. When such a sequence is read, the replacement string is pushed back as input, and the command reading process starts again using these fake keystrokes. This input can itself invoke urther replacement strings, but in order to detect loops the process will be stopped if there are twenty such replacements without a real command being read.
A vinculação a \a
, como sugerido originalmente, não parece ter essa desvantagem, ou seja,
bindkey -s '\e[2~' '\a'