псевдоним bash не автозавершается так же, как псевдоним

Я пытаюсь заменить vlc более интуитивно понятной командой часов.

желаемая функциональность

  1. Автозаполнение

    watch / path / to / mo Tab - ›watch /path/to/movie.avi

  2. Выполнить vlc

    watch /path/to/movie.avi Enter # это должно запустить `vlc /path/to/movie.avi

В настоящее время я использую псевдоним задачи выше:

~ / .bashrc

...
alias watch='vlc'
...

Это соответствует execute vlc выше, но не дает правильного autocompletion [1]

текущее поведение

$ vlc / path / to / mo Tab - ›vlc /path/to/movie.avi (успешно завершено)

$ watch / path / to / mo Tab - ›watch / path / to / mo (без автозаполнения ..)

Как упоминает @GUIDO, watch - это встроенная команда. Это как-то влияет на автозаполнение. Переход на play работает, но хотелось бы понять, почему это не работает и как исправить ..

примечание

аналогично Как получить завершение bash для работы с псевдонимами ?

но определяя функцию wrap_alias (в моем ~ / .bashrc) и вызывая

wrap_alias watch vlc ''

не устраняет проблему с автозаполнением


person amdixon    schedule 24.05.2015    source источник
comment
знаете ли вы, что команда watch уже присутствует в большинстве, если не во всех дистрибутивах Linux по умолчанию?   -  person guido    schedule 24.05.2015
comment
возможный дубликат Как получить завершение bash для работы с псевдонимы?   -  person pasaba por aqui    schedule 24.05.2015
comment
@pasabaporaqui wrap_alias в этом ответе не решает проблему   -  person amdixon    schedule 24.05.2015


Ответы (1)


Если мы посмотрим на завершение команды vlc, мы увидим:

$ complete | grep vlc
complete -F _minimal vlc

поэтому функция-оболочка - "_minimal". Мы можем использовать то же самое для новой команды:

$ alias watch='vlc'
$ complete -F _minimal watch 

и тема должна быть решена.

person pasaba por aqui    schedule 24.05.2015