Причиной этой проблемы «иногда работает / иногда не работает» может быть причина в $KEYTIMEOUT .
Когда вы нажимаете клавишу, которая является частью многосимвольной последовательности, связанной в текущей раскладке клавиатуры , zsh ожидает $KEYTIMEOUT миллисекунд, пока вы не нажмете вторую клавишу. По умолчанию установлено значение 40. Это задокументировано в руководстве по zsh.
Поэтому, если вы нажмете ^G , у вас будет 40 мс, чтобы нажать ^B , в противном случае два нажатия клавиш будут интерпретироваться как введенные отдельно, а не как часть одной последовательности.
Очевидно, что вы можете изменить значение $KEYTIMEOUT , например, чтобы увеличить его, чтобы у вас было больше времени для нажатия второй клавиши.
(Обратите внимание, что это может привести к эффектам включения, например, если вы находитесь в режиме вставки vi и пытаетесь нажать ESC, чтобы перейти в командный режим vi, оболочка будет ждать миллисекунды $KEYTIMEOUT поскольку существуют многосимвольные сочетания клавиш, начинающиеся с ESC - а именно клавиши со стрелками!)