Я также хочу заставить его работать, и я добился некоторого прогресса, но он не идеален.
Сначала я смотрю некоторые советы от здесь, который помогает понять, как эмулировать переменные среды bash, которые ожидает as_completer.
Собирая это, я получаю следующее:
complete -c aws -f -a '(begin; set -lx COMP_SHELL fish; set -lx COMP_LINE (commandline); /usr/local/bin/aws_completer; end)'
В основном это работает, но я получаю ложные дополнительные косые черты, поэтому, если я попытаюсь выполнить «aws ec2 description-instances --», я получаю:
dave@retino ~> aws ec2 describe-instances --
--ca-bundle\ --color\ --filters\ --no-dry-run\ --output\ --region\
--cli-connect-timeout\ --debug\ --generate-cli-skeleton --no-paginate\ --page-size\ --starting-token\
--cli-input-json\ --dry-run\ --instance-ids\ --no-sign-request\ --profile\ --version\
--cli-read-timeout\ --endpoint-url\ --max-items\ --no-verify-ssl\ --query\
Мне кажется, что есть завершающий пробельный символ, но я попытался удалить его с помощью sed:
complete -c aws -f -a '(begin; set -lx COMP_SHELL fish; set -lx COMP_LINE (commandline); echo (/usr/local/bin/aws_completer | sed -e \'s/[ ]*//\') ; end)'
Но это, похоже, не помогает. Кажется, что fish ожидает другой формат вывода, чем bash, поскольку он более полный. И действительно, прореживание рыбы для полной встроенной функции говорит, что она ожидает разделения пробелами список.
Итак, я попытался соединить строки с помощью xargs:
complete -c aws -f -a '(begin; set -lx COMP_SHELL fish; set -lx COMP_LINE (commandline); echo (/usr/local/bin/aws_completer | sed -e \'s/[ ]*//\') | xargs echo ; end)'
Но и это не работает. Я получаю только одно завершение
Это раздражает, я так близко, но это не работает!
person
David Roussel
schedule
07.01.2016
complete
. Подробнее об этом читайте в разделе Написание собственных дополнений. Я не настраивал AWS CLI для Fish, но для внешний вид вам нужно будет написать свой собственный файл завершения. См. здесь для примера того, как писать дополнения. - person Jorge Bucaran   schedule 06.01.2015