Как переопределить существующее завершение клавиатуры zsh?

Я хотел бы включить zsh для автозаполнения модулей для yast2 (панель управления OpenSuSE), но, похоже, кое-что уже определено. Я могу бегать

compctl -k "(hello world)" nonexistantprogram

просто отлично, но

compctl -k "(hello world)" yast2

вообще не работает. Некоторые вещи для yast2, кажется, уже определены, а именно опции "-": --fullscreen, --geometry, --list [подмодули] и т. д.

Даже если для тех, кто не использует OpenSuSE: Есть ли какие-либо флаги для compctl, чтобы он переопределял предыдущие настройки? Большое спасибо заранее.


person gatoatigrado    schedule 28.10.2009    source источник


Ответы (1)


Скорее всего, ваша система использует более новую систему compsys, а не старую систему compctl. См. man zshcompsys и man zshcompwidman zshcompctl).

Функция завершения для yast2, вероятно, находится в этом файле (или аналогичном пути):

/usr/share/zsh/functions/Completion/Linux/_yast
person Dennis Williamson    schedule 28.10.2009
comment
красиво, большое спасибо! Я еще не исправил это (сделаю это в ближайшее время), но ваш ответ кажется довольно точным (для меня /usr/share/zsh/4.3.6/functions/_yast2). - person gatoatigrado; 28.10.2009
comment
Отлично, потратил некоторое время на поиски, как это сделать. Было бы неплохо перезаписать значения по умолчанию (Q: stackoverflow.com/questions/17968024/) - person Jakub M.; 31.07.2013