Bash と Zsh でコマンドライン補完(タブ補完)を有効にできます。これにより、コマンド名、フラグ名とフラグ値、ターゲット名をタブでコンプリートできます。
Bash
Bazel には、Bash 完了スクリプトが付属しています。
Bazel をインストールした場合:
これで、APT リポジトリから Bash 完了スクリプトが
/etc/bash_completion.d
にインストールされました。Homebrew で、これで完了です。Bash 補完スクリプトはすでに
$(brew --prefix)/etc/bash_completion.d
にインストールされています。GitHub からダウンロードしたインストーラで、以下を行います。
補完ファイルの絶対パスを確認します。インストーラが
bin
ディレクトリにコピーしました。例:
--user
を使用してインストーラを実行した場合、この値は$HOME/.bazel/bin
になります。インストーラを root として実行した場合、これは/usr/local/lib/bazel/bin
になります。次のいずれかを行います。
このファイルを補完ディレクトリにコピーします(存在する場合)。
例: Ubuntu では
/etc/bash_completion.d
ディレクトリです。または、Bash の RC ファイルから補完ファイルを取得します。
補完ファイルの絶対パスへのパスを使用して、次のような行を
~/.bashrc
(Ubuntu の場合)または~/.bash_profile
(macOS の場合)に追加します。source /path/to/bazel-complete.bash
ブートストラップ経由:
補完スクリプトをビルドします。
bazel build //scripts:bazel-complete.bash
補完ファイルは
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 からダウンロードしたインストーラで、以下を行います。
補完ファイルの絶対パスを確認します。インストーラが
bin
ディレクトリにコピーしました。例:
--user
を使用してインストーラを実行した場合、この値は$HOME/.bazel/bin
になります。インストーラを root として実行した場合、これは/usr/local/lib/bazel/bin
になります。このスクリプトを
$fpath
のディレクトリに追加します。fpath[1,0]=~/.zsh/completion/ mkdir -p ~/.zsh/completion/ cp /path/from/above/step/_bazel ~/.zsh/completion
この機能を動作させるには、最初に
rm -f ~/.zcompdump; compinit
の呼び出しが必要になる場合があります。必要に応じて、.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