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