命令行补全

报告问题 查看来源 每晚 · 7.2。 · 7.1敬上 · 7.0 · 6.5 · 6.4

您可以在 Bash 中启用命令行补全功能(也称为 Tab 键补全) 和 Zsh。这样,您就可以使用 Tab 键补全命令名称、标志名称和标志值, 和目标名称

Bash

Bazel 带有一个 Bash 完成脚本。

如果您已安装 Bazel:

  • 在 APT 代码库中,您即完成了。Bash 完成脚本 /etc/bash_completion.d中已经安装过。

  • 从 HomeBra 开始,就大功告成了 -- 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 插件。如果您不想这样做,请使用 解决方案。

  • 从 Homebigquery 执行,然后就大功告成了 -- 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