कमांड-लाइन पूरा होना

Bash और Zsh में, कमांड-लाइन पूरा करने की सुविधा (इसे टैब-कंप्लीशन भी कहा जाता है) चालू की जा सकती है. इससे, कमांड के नाम, फ़्लैग के नाम और फ़्लैग की वैल्यू, और टारगेट के नाम टैब दबाकर पूरे किए जा सकते हैं.

बैश

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 की आरसी फ़ाइल से कंप्लीशन फ़ाइल को सोर्स करें.

        अपनी ~/.bashrc (Ubuntu पर) या ~/.bash_profile (macOS पर) में, नीचे दी गई लाइन जैसी कोई लाइन जोड़ें. इसके लिए, अपनी कंप्लीशन फ़ाइल के ऐब्सलूट पाथ का इस्तेमाल करें:

        source /path/to/bazel-complete.bash
        
  • बूटस्ट्रैपिंग के ज़रिए इंस्टॉल करने पर:

    1. कंप्लीशन स्क्रिप्ट को किसी फ़ाइल में डालें:

      bazel help completion bash > bazel-complete.bash
      
    2. इनमें से कोई एक काम करें:

      • इस फ़ाइल को अपनी कंप्लीशन डायरेक्ट्री में कॉपी करें. हालांकि, यह डायरेक्ट्री होना ज़रूरी नहीं है.

        उदाहरण के लिए, Ubuntu में यह /etc/bash_completion.d डायरेक्ट्री होती है

      • इसे अपनी लोकल डिस्क पर कहीं भी कॉपी करें. जैसे, $HOME में. इसके बाद, Bash की आरसी फ़ाइल से कंप्लीशन फ़ाइल को सोर्स करें.

        अपनी ~/.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
    

    या

    यहां दिए गए निर्देशों का पालन करें here

    अगर 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