指令列完成

回報問題 查看原始碼

您可以在 Bash 和 Zsh 中啟用指令列完成功能 (也稱為分頁完成功能)。這可讓您使用 Tab 鍵完成指令名稱、標記名稱和標記值,以及目標名稱。

巴什文

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
        
  • 透過 bootstrapping,然後:

    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 到此,$(brew --prefix)/share/zsh/site-functions 已經安裝 Zsh 完成指令碼。

  • 從 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