셸 자동완성 켜기
dotweave의 bash, zsh, fish, PowerShell 자동완성 스크립트를 설치하는 방법을 알려 줘요.
탭 자동완성은 명령과 플래그를, dotweave track에서는 파일시스템 경로까지 제안해요. 이 가이드에서는 생성된 자동완성 스크립트를 bash, zsh, fish, PowerShell 중 하나에 연결해요. Tab을 누를 때마다 스크립트가 dotweave 바이너리를 이름으로 호출하니, dotweave가 이미 PATH에 있어야 해요.
1. 자동완성 스크립트 출력
dotweave autocomplete <shell>은 스크립트를 stdout으로 출력하고, 설치는 하지 않아요. 무엇을 불러올지 먼저 한 번 실행해서 읽어 보세요.
dotweave autocomplete bash
받는 셸 이름은 bash, zsh, fish, powershell이에요. bash 스크립트는 마지막에 complete -o default -o nospace로 자동완성을 등록해요. 그래서 디렉터리 후보 뒤에 원치 않는 공백이 붙지 않고 계속 이어 쓸 수 있어요. zsh 스크립트는 여기에 더해 precmd 훅을 설치해서 프롬프트마다 자동완성을 다시 등록해요. 나중에 실행되는 compinit이 조용히 등록을 바꿔 버리는 일을 막아 줘요.
자동완성이 다루는 대상은 명령과 플래그예요. -y 같은 한 글자 플래그 별칭은 의도적으로 출력에서 빠지고, 긴 형태만 제안해요.
2. 셸 프로필에서 불러오기
각 셸의 시작 파일에서 스크립트를 평가하면, 새 세션마다 자동완성이 준비돼요.
bash라면 ~/.bashrc에 다음 줄을 추가하세요.
eval "$(dotweave autocomplete bash)"
zsh라면 ~/.zshrc에 다음 줄을 추가하세요.
eval "$(dotweave autocomplete zsh)"
fish라면 ~/.config/fish/config.fish에 다음 줄을 추가하세요.
dotweave autocomplete fish | source
PowerShell이라면 $PROFILE이 가리키는 파일에 다음 줄을 추가하세요.
dotweave autocomplete powershell | Out-String | Invoke-Expression
PowerShell에서 Out-String이 필요한 이유는 스크립트가 여러 줄이기 때문이에요. 줄을 그대로 Invoke-Expression에 넘기면 한 줄씩 평가하다가 닫히지 않은 블록에서 실패해요.
결과 확인
시작 파일이 실행되도록 새 셸을 열고, dotweave pu를 입력한 뒤 Tab을 누르세요. 셸이 pull과 push를 후보로 보여 줘요.
하위 명령은 dotweave autocomplete에서, 경로 자동완성이 적용되는 명령은 dotweave track에서 확인하세요.