내 선택에 맞는 쉘을 선택하여 zsh를 굽히려고하고 있으며 구문의 완성과 작동에 완전히 몰입하고 있습니다. 내 사용 사례는 이것이다 :여러 반복 옵션이있는 Zsh 완료
- 정상 파일 완료 :
ansible-playbook -e vars/file_name.yml
- 앞에 추가 된 파일 완료 :
ansible-playbook -e @vars/file_name.yml
나는 '-e'옵션 지원 아래 세 가지 변화를 'ansible-플레이 북'에 대한 완료를 원하는
- 임의의 문자열 :
ansible-playbook -e key=value
나는 친절했다 https://github.com/zsh-users/zsh-completions/blob/master/src/_ansible-playbook으로 시작하지만, 접두사 파일 경로 지정을 지원하기 위해 수정이 필요합니다. 이에
...
"(-D --diff)"{-D,--diff}"[when changing (small files and templates, show the diff in those. Works great with --check)]"\
"(-e --extra-vars)"{-e,--extra-vars}"[EXTRA_VARS set additional variables as key=value or YAML/JSON]:extra vars:(EXTRA_VARS)"\
'--flush-cache[clear the fact cache]'\
:이를 위해 I는 다음 행 (는 -e 라인) 변경
...
"(-D --diff)"{-D,--diff}"[when changing (small files and templates, show the diff in those. Works great with --check)]"\
"(-e --extra-vars)"{-e,--extra-vars}"[EXTRA_VARS set additional variables as key=value or YAML/JSON]:extra vars:__at_files"\
'--flush-cache[clear the fact cache]'\
을 상기 '__at_files'기능 추가 :
__at_files() {
compset -P @; _files
}
것은이 될 수있다 매우 싫은 냄새가 났지만 전에는 이런 일이 발생하지 않은 사람에게 이것이 내 문제를 해결했음을 기쁘게 생각합니다.
"-e"매개 변수가 여러 개있는 경우 이는 완전히 실패합니다 (도커가 -v 또는 -p 인수를 여러 개 허용하는 것과 유사 함). 이것이 의미하는 바는 첫 번째 '-e'매개 변수는 내 접두사가 붙은 완성 작업을 갖지만 그 이후의 모든 '-e'매개 변수는 '벙어리'가되어 정상적인 '_ 파일'완성 만 허용 할 수 있습니다.
ansible-playbook -e key=value -e @vars/file
을하지만이 파일 자체에 대한 완료 것 : 그래서 다음이 제대로 완료되지 않습니다
ansible-playbook -e key=value -e vars/file
내가 난장판을 했습니까? 이 특정 완료 플러그인의 '-M'옵션에 대해 동일한 유형의 동작이 표시됩니다 ('벙어리'가되어 기본 파일 완성을 수행함). 나는 정확한 용어 나 용어의 조합을 단순히 검색하지 않았을 수도 있고, 아마도 이것을 다루는 것에서 놓친 다소 복잡한 문서에서 찾을 수도 있지만, 며칠 만에이 경험을 파헤 치면서 길을 잃었습니다. 여러 -e 옵션이 유효한 경우