Я настроил псевдонимы для apt-get update
, apt-get install
, и так далее. Это довольно удобно. Но то, что я действительно хотел бы иметь, является чем-то вроде этого:
ввести agi
TAB
vi
и имейте его, автоматически перечисляют все пакеты, запускающиеся с vi, как это произошло бы при издании apt-get install
TAB
vi
.
Что-то вроде этого было бы достижимо так или иначе, возможно, путем записи небольшого сценария?
Bash программируемое завершение - что-то, которое я не обеспокоился очень мной, но я полагаю, что это сделает то, что Вы хотите (NB принимает версию 4.0 удара или более новый. При выполнении Ubuntu 10.04 или более новый Вы хороши.):
alias agi='apt-get install'
_agi_completion() {
mapfile -t COMPREPLY < <(apt-cache --no-generate pkgnames "${COMP_WORDS[COMP_CWORD]}")
}
complete -F _agi_completion agi
Программируемое Завершение в руководстве удара объясняет, как оно работает, хотя это довольно сложно.
Необходимо добавить псевдонимы к словарям завершения оболочки, таким образом, это знает то, что это завершает для тех команд. Завершения оболочки нужно уже назвать функциями, но необходимо сказать этому, что они относятся новым названиям команды.