BazelCon 2022는 11월 16~17일에 뉴욕과 온라인에서 개최됩니다.
지금 등록하기

명령줄 완료

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Bash 및 Zsh에서는 명령줄 완료 (탭 완료라고도 함)를 사용 설정할 수 있습니다. 이렇게 하면 명령어 이름, 플래그 이름 및 플래그 값, 대상 이름을 탭에서 완성할 수 있습니다.

Bash

Bazel은 Bash 완료 스크립트와 함께 제공됩니다.

Bazel을 설치한 경우:

  • APT 저장소에서 작업이 완료되면 Bash 완료 스크립트가 이미 /etc/bash_completion.d에 설치됩니다.

  • Homebrew에서 작업이 완료되었습니다. Bash 완료 스크립트가 $(brew --prefix)/etc/bash_completion.d에 이미 설치되어 있습니다.

  • GitHub에서 다운로드한 설치 프로그램에서 다음을 수행합니다.

    1. 완료 파일의 절대 경로를 찾습니다. 설치 프로그램이 이 디렉터리를 bin 디렉터리에 복사했습니다.

      예: --user로 설치 프로그램을 실행했다면 $HOME/.bazel/bin가 됩니다. 설치 프로그램을 루트로 실행했다면 /usr/local/lib/bazel/bin가 됩니다.

    2. 다음 중 한 가지 방법을 사용합니다.

      • 이 파일을 완료 디렉터리에 복사합니다 (있는 경우).

        예를 들어 Ubuntu에서는 /etc/bash_completion.d 디렉터리입니다.

      • 또는 Bash의 RC 파일에서 완성 파일을 가져옵니다.

        ~/.bashrc (Ubuntu의 경우) 또는 ~/.bash_profile (macOS의 경우)에 완료 파일의 절대 경로 경로를 사용하여 다음과 유사한 줄을 추가합니다.

        source /path/to/bazel-complete.bash
        
  • 부트스트랩을 통해 다음을 수행합니다.

    1. 완료 스크립트를 빌드합니다.

      bazel build //scripts:bazel-complete.bash
      
    2. 완료 파일은 bazel-bin/scripts/bazel-complete.bash 아래에 빌드됩니다.

      다음 중 한 가지 방법을 사용합니다.

      • 이 파일이 완성된 디렉터리에 복사합니다(있는 경우).

        예: Ubuntu에서 /etc/bash_completion.d 디렉터리입니다.

      • 로컬 디스크의 다른 위치(예: $HOME)에 복사하여 완료 파일을 Bash의 RC 파일에서 가져옵니다.

        ~/.bashrc (Ubuntu의 경우) 또는 ~/.bash_profile (macOS의 경우)에 완료 파일의 절대 경로 경로를 사용하여 다음과 유사한 줄을 추가합니다.

        source /path/to/bazel-complete.bash
        

ZSH

Bazel에는 Zsh 완료 스크립트가 함께 제공됩니다.

Bazel을 설치한 경우:

  • APT 저장소에서 작업이 완료됩니다. Zsh 완료 스크립트가 이미 /usr/share/zsh/vendor-completions에 설치되어 있습니다.

    고도로 맞춤설정된 .zshrc이 있으며 자동 완성이 작동하지 않으면 다음 해결 방법 중 하나를 시도해 보세요.

    .zshrc에 다음을 추가합니다.

        zstyle :compinstall filename '/home/tradical/.zshrc'
    
        autoload -Uz compinit
        compinit
    

    또는

    여기의 안내를 따르세요.

    oh-my-zsh를 사용하는 경우 zsh-autocomplete 플러그인을 설치하고 사용 설정하는 것이 좋습니다. 이를 원하지 않으면 위에서 설명한 해결책 중 하나를 사용하세요.

  • Homebrew에서 작업을 마쳤습니다. Zsh 완료 스크립트는 $(brew --prefix)/share/zsh/site-functions에 이미 설치되었습니다.

  • GitHub에서 다운로드한 설치 프로그램에서 다음을 수행합니다.

    1. 완료 파일의 절대 경로를 찾습니다. 설치 프로그램이 이 디렉터리를 bin 디렉터리에 복사했습니다.

      예: --user로 설치 프로그램을 실행했다면 $HOME/.bazel/bin가 됩니다. 설치 프로그램을 루트로 실행했다면 /usr/local/lib/bazel/bin가 됩니다.

    2. 이 스크립트를 $fpath의 디렉터리에 추가합니다.

      fpath[1,0]=~/.zsh/completion/
      mkdir -p ~/.zsh/completion/
      cp /path/from/above/step/_bazel ~/.zsh/completion
      

      rm -f ~/.zcompdump; compinit를 처음 호출해야 할 수 있습니다.

    3. 필요한 경우 .zshrc에 다음을 추가합니다.

      # This way the completion script does not have to parse Bazel's options
      # repeatedly.  The directory in cache-path must be created manually.
      zstyle ':completion:*' use-cache on
      zstyle ':completion:*' cache-path ~/.zsh/cache