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

समस्या की शिकायत करें सोर्स देखें

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

बैश

बेज़ल, बैश पूरा करने की स्क्रिप्ट के साथ आता है.

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

  • एपीटी रिपॉज़िटरी से, आपका काम हो गया -- बैश पूरा करने की स्क्रिप्ट /etc/bash_completion.d में पहले से इंस्टॉल है.

  • Homebrew से, आपका काम हो गया है -- बैश पूरा करने की स्क्रिप्ट $(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
        

ज़ेडएसएच

Basel, Zsh पूरा करने की स्क्रिप्ट के साथ उपलब्ध है.

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

  • एपीटी रिपॉज़िटरी से, आपका काम हो गया -- 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 पूरा करने की स्क्रिप्ट पहले से ही $(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