O motivo da natureza do problema "às vezes funciona / às vezes não funciona" pode ser devido a $KEYTIMEOUT
.
Quando você pressiona uma tecla que faz parte de uma sequência de vários caracteres vinculada no mapa de teclas atual, o comando zsh aguarda $KEYTIMEOUT
milésimos de segundo para pressionar uma segunda tecla. Por padrão, ele é definido para um valor de 40. Isso está documentado no manual do zsh .
Portanto, se você pressionar ^G
, terá 40ms para pressionar ^B
, caso contrário, os dois pressionamentos de tecla serão interpretados como tendo sido inseridos separadamente e não como parte de uma sequência.
Você pode obviamente alterar o valor de $KEYTIMEOUT
, por exemplo para torná-lo mais longo para que você tenha mais tempo para pressionar a segunda tecla.
(Note que isto pode ter efeitos secundários, por exemplo, se você estiver no modo de inserção vi e tentar pressionar ESC para ir para o modo de comando vi, o shell irá esperar por $KEYTIMEOUT
milissegundos porque existem atalhos de teclado com vários caracteres que começam com ESC - principalmente as teclas de seta!)