티스토리 뷰

conda를 사용하면서 activate와 deactivate를 타이핑하는 것이 왜 이리 힘들던지, 그리고 환경을 이동하는 것이 어찌나 불편했는지 모릅니다. 그래서 dialog를 이용해서 아래와 같은 툴을 만들어서 사용하기도 했습니다.

귀차니즘이 부른 참사(?)

예를 들어 터미널에서. conda라는 명령어를 타이핑하면 바로 위의 dialog가 나옵니다. 그리고 환경을 선택해서 사용했었네요. 소스코드는 아래 링크에서 확인하실 수 있습니다.
https://github.com/jybaek/conda_connector


주로 이런 방식으로 사용해오다가 다른 git, docker와 같은 일반적인 명령어들처럼 tab을 이용해서 자동 완성하는 게 더 고급져 보이지 않을까 하는 생각을 하게 됩니다. 그래서 bash_completion을 만들게 되었네요.
https://gist.github.com/jybaek/0611faa6816f5438c524f241af8897a8

 

코드에는 별게 없습니다. conda의 두 번째 인자로 activate, deactivate를 자동완성 시킬 수 있고, 두 번째 인자로 activate가 선택된 경우에는 tab을 누르면 conda 가상 환경 리스트 중에 선택 할 수 있도록 자동완성 해줍니다. 사용하기 위해서는 이 파일을 Ubuntu 기준으로 /etc/bash_completion.d/ 밑에 두면 됩니다. 현재 열려있는 터미널에서 즉시 사용하기 위해서는 아래와 같이 bash_competion을 다시 로딩해줘야 합니다. ( 새로운 터미널 세션은 아래 과정이 필요없이 바로 적용 됩니다 )

. /etc/bash_completion

아, 참고로 아래 링크의 설명처럼 이미 conda 자동완성 기능은 존재 하지만 무슨일인지 제 환경에서는 정상적으로 동작하지 않았습니다. 더욱이 여기는 가상환경을 자동완성 시켜주는게 없기 때문에 제 needs를 충족시키지 못하죠.
https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/enable-tab-completion.html

 

아무튼, 저와 같은 갈증이 있는 개발자 분들께 도움이 되셨기를 바랍니다.

댓글
댓글쓰기 폼