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

समस्या की शिकायत करें सोर्स देखें Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

बैश

Bazel में Bash की सुविधा के साथ स्क्रिप्ट पूरी करने की सुविधा मिलती है.

अगर आपने Bazel इंस्टॉल किया है, तो:

  • APT रिपॉज़िटरी से इंस्टॉल किया है, तो आपको कुछ और करने की ज़रूरत नहीं है. Bash completion script पहले से ही /etc/bash_completion.d में इंस्टॉल है.

  • Homebrew से इंस्टॉल किया है, तो आपको कुछ और करने की ज़रूरत नहीं है. Bash completion script पहले से ही $(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 की 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 प्लगिन को इंस्टॉल और चालू किया जा सकता है. अगर आपको ऐसा नहीं करना है, तो ऊपर बताए गए किसी एक समाधान का इस्तेमाल करें.

  • Homebrew से इंस्टॉल करें. इसके बाद, Zsh completion script पहले से ही $(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