Как просмотреть функцию завершения вкладки для команды в bash?

809
Matt Kneiser

Я в конечном итоге хочу псевдоним screen -r.

В основном я хочу сделать это, потому что у этой команды есть отличная функция завершения табуляции, которая показывает мне текущие сеансы экрана GNU. Я хочу эту силу с псевдонимом.

Это заставило меня задать более общий вопрос. Как бы я просмотреть функцию завершения вкладки для команды screen -rили, далее, любую команду?

2
`помощь завершена` Cyrus 8 лет назад 1

1 ответ на вопрос

3
Matt Kneiser

Итак, в этом вопросе происходит три разные вещи:

1) Для поиска функции завершения bash команды complete -p <command>делает свое дело. В этом случае complete -p screenдаетcomplete -o default -F _screen screen

2) Завершение Bash будет принимать аргументы. В случае screen -r, screenфункция завершения bash вызывается с -rаргументом. После этого вы можете автоматически завершить его автоматически.

3) В Ubuntu /etc/bash_completion.d/screenопределена функция завершения экрана.

Таким образом, я добавил псевдоним screen -rи сохранил функцию завершения следующим образом.

.bashrc:

alias scr="screen -r" function _complete_scr() { local does_screen_exist=$(type -t _screen_sessions) local cur=$2 # Needed by _screen_sessions if [[ "function" = "$" ]]; then _screen_sessions "Detached" fi } export -f _complete_scr complete -F _complete_scr -o default scr 

Похожие вопросы