ZSH на 10.9: виджеты могут быть вызваны только тогда, когда ZLE активен

Я новичок в ZSH и использую oh-my-zsh для рома ZSH на OSX 10.9. Я пытался воспользоваться плагином истории, но понял: «виджеты можно вызывать только тогда, когда ZLE активен». при вызове любой из команд, связанных с историей. Я искал способ обойти это, но не смог найти решение.


person user1836430    schedule 03.12.2013    source источник
comment
Запустите zmodload в оболочке и проверьте, есть ли в списке zsh/zle. Если это не так, вам нужно будет загрузить его перед плагином oh-my-zsh. Вы можете сделать это в ~/.zshrc перед строкой source oh-my-zsh: zmodload zsh/zle.   -  person simont    schedule 06.12.2013
comment
Результат zmodload показывает, что zle загружен, но я все еще получаю ту же ошибку, виджеты можно вызывать только тогда, когда ZLE активен. как еще я могу активировать эль?   -  person user1836430    schedule 13.03.2014


Ответы (1)


Это ошибка в oh-my-zsh. Чтобы исправить это, поместите это в свой .zshrc:

TRAPWINCH() {
  zle && { zle reset-prompt; zle -R }
}

Объяснение:

Без опций и без аргументов будет установлен только статус возврата. Он равен нулю, если ZLE в данный момент активен и виджеты могут быть вызваны с помощью этой встроенной команды, и не равен нулю в противном случае. Обратите внимание, что даже если возвращается ненулевой статус, zle все еще может быть активен как часть системы завершения; это не позволяет напрямую обращаться к виджетам ZLE.

person boojum    schedule 10.08.2017
comment
Я добавил ваш код в свой файл .zshrc, получил его, но у меня все еще есть сообщение об ошибке, говорящее zle: виджеты могут быть вызваны только тогда, когда ZLE активен. zmodload показывает, что zle загружен. - person politicus; 22.01.2019