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

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