zsh: как вернуть «нераскрытую» команду

У Zsh есть хорошая функция расширения глобусов. Например, нажатие Tab превращает ls **/*.js в

ls app/assets/javascripts/application.js vendor/assets/javascripts/Markdown.Converter.js

Есть ли способ свернуть его обратно к исходной версии глобуса? Или я должен просто отключить расширение глобуса?

Причина, по которой я этого хочу, заключается в том, что когда я нахожусь в середине отладки глобуса и нажимаю Tab только для того, чтобы что-то перепроверить, нет никакого способа вернуться и завершить шаблон. Я должен начать с нуля.


person artemave    schedule 04.09.2012    source источник


Ответы (1)


Используйте команду undo zle. Например, привяжите его к Ctrl_:

bindkey '^_' undo

Из zshzle(1):

undo (^_ ^Xu ^X^U) (unbound) (unbound)
       Incrementally undo the last text modification.

redo   Incrementally redo undone text modifications.
person Thor    schedule 04.09.2012
comment
Потрясающий! А также полезно за пределами этого конкретного варианта использования. Спасибо! - person artemave; 04.09.2012
comment
Когда я помещаю это в свои .zshrc и exec zsh, это не работает, но когда я ввожу это в подсказке, оно работает... что я упускаю? - person Tom Hale; 26.01.2017
comment
@TomHale: я не уверен. Возможно, вы перегружаете его в своих файлах конфигурации. Попробуйте перечислить текущие определения с помощью bindkey. - person Thor; 26.01.2017