コマンドライン補完

問題を報告する ソースを表示 ナイトリー · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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 になります。インストーラを root として実行した場合、これは /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 になります。インストーラを root として実行した場合、これは /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