2016-06-10 11 views
1

나는 물고기 셸에 Google Cloud SDK 명령 줄 자동 완성 기능을 포팅하기 위해 노력하고 있습니다.물고기 쉘에서 완료 응답으로 여러 인수를 동시에 반환하도록 설정합니다.

A) 명령이 모든 인수로 완료되었지만 's'또는 's'안에있는 완전한 명령에서 함수 호출을 지정할 때 공백이 이스케이프 (\)됩니다. > complete ... -a '(__fun)'

B) 아니면 (단지 : -a (__fun))하지 않으면 응답의 첫 번째 인수 만 완료 및 다른 모든 인수는 "길을 잃는다"

물고기를 완료 할 때 여러 인수로 즉시 회신 할 수 있습니까?

+1

물고기 탭 완료는 단일 인수로만 확장됩니다. 내 자신의 정보를 위해 여러 인수를 한꺼번에 삽입하려는 경우는 무엇입니까? –

+0

예. 'gcloud compute ssh'를 사용하고자 할 때 sdk는 인스턴스 이름 인 - 존 (zone)과 존 (zone)으로 완성 할 수 있습니다. 이는 매우 유용합니다. –

답변

0

여러 가지 방법으로 수행 할 수 있습니다. 말도 안되는 물고기가 말하듯이 이것을 위해 설계되지 않았기 때문에 당신은 약간 해킹해야 할 것입니다. 가장 쉬운 방법은 이스케이프 처리 된 출력을 취할 수있는 방식으로 자신의 래퍼 함수를 ​​전달하는 것입니다. 당신은 또한 돌아가서 역사 라인을 수정하지 않으면, 아주 예쁘지는 않지만, autosuggestions와도 맞설 것입니다.

여기에 세미 해키/반 우아한 내가 제안 할 것입니다 : args의 "시퀀스"를 찾았 으면 처음 호출 할 때 한 번에 완료하고 싶습니다. 설명에 후행 args를 넣으십시오. 첫 번째. 일단 잠겨 있으면 다른 모든 옵션을 제거하고이 "설명 대기열"의 첫 번째 항목을 제거하고 계속 진행하면 탭 - 탭 - 탭 - 탭을 빠르게 누르는 문제가됩니다.

완료는 완벽 할 필요는 없지만 자동 제안이 이어지는 역사 라인이 충분할 때까지 완료됩니다.

+0

나는 이것을 이해할 수 없었다. 내가 전화를 걸었 기 때문에 : –

+0

-x -c gcloud -a '(__python_argcomplete)' –

+0

지금 당장 나는 __python_argcomplete 함수 내에서 옵션을 하나씩 반향하여 반환한다. Fish docs에 따르면, 전체 호출 내에서 -d '설명'을 사용하여 설명을 제공 할 수 있습니다. 하지만 그것은 함수 호출의 범위를 벗어났습니다. 그리고 그 안에 여러 옵션을 내보낼 수 있기 때문에 각각의 속성은 개별적으로 설명해야합니다. 내가 놓친 게 있니? –