GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wo soll das zsh-Autocompletion-Skript unter Linux platziert werden?

Lassen Sie mich versuchen, hier zu helfen.

Ich habe etwas Ähnliches versucht und so konnte ich es zum Laufen bringen. Die folgende Lösung wurde mit oh-my-zsh verifiziert auf der Debian-Distribution [ubuntu]

Problem

  > Your zsh isnt giving proper completion suggestions say [conda]
  > This is what you get when you type in # conda tab

Lösung

  1. Finden Sie das Vervollständigungsskript

    Ein großartiger Ort ist https://github.com/clarketm/zsh-completions/tree/master/src

  2. Laden Sie die Datei in den Fertigstellungsordner [~/.oh-my-zsh/completions] herunter

    wget https://raw.githubusercontent.com/clarketm/zsh-completions/master/src/_conda ~/.oh-my-zsh/completions
    
  3. Stellen Sie sicher, dass der Completion-Ordner unter $fpath

    aufgelistet ist
    print -l $fpath
    
    1. Was ist, wenn es nicht aufgeführt ist? Es hätte normalerweise mit .oh-my-zsh.sh hinzugefügt werden sollen, wenn nicht unten an ~/.oh-my-zsh/oh-my-zsh.sh

      anhängen
      # add a function path
      fpath=($ZSH/functions $ZSH/completions $fpath)
      
    2. Quelle .zshrc

      source ~/.zshrc
      
  4. Führen Sie compinit aus dadurch wird ~/.zcompdump erstellt Datei für die Funktionen

    compinit
    

Fehlerbehebung

  1. Aufgrund von Konflikten werden die Vorschläge möglicherweise nicht angezeigt. Versuchen Sie Folgendes

    rm -f ~/.zcompdump; compinit
    # we are clearing the function dump stored by zsh, its safe zsh will rebuilt it.
    
  2. Probieren Sie die Quelle .zshrc aus

    source ~/.zshrc
    
  3. Versuchen Sie, sich abzumelden und anzumelden

  4. Überprüfen Sie die Zuordnung in ~/.zcompdump

    vi ~/.zcompdump
    

    suche nach conda

    [/conda]

    Sie sollten wie unten sehen

    'conda' '_conda'

Ich hoffe, jemand findet es nützlich, wenn ja, helfen wir gerne


Ich habe dies zum Laufen gebracht, indem ich cheat.zsh hinzugefügt habe zum ~/.oh-my-zsh/plugins Verzeichnis. Zsh prüft, ob Funktionen auf FPATH automatisch geladen werden , versuchen Sie es also mit:

echo $FPATH

und dann entweder zu FPATH hinzufügen oder verschieben Sie die Datei in einen Ordner auf dem Pfad.

Dies erklärt es tatsächlich viel besser:https://unix.stackexchange.com/questions/33255/how-to-define-and-load-your-own-shell-function-in-zsh


Linux
  1. Pfadunabhängige Shebangs?

  2. Linux-Betriebssystemdienst „scsi_reserve“

  3. Wo ist die Itoa-Funktion in Linux?

  4. Transliterationsskript für die Linux-Shell

  5. Panikpasswort unter Linux

3 Linux-Terminals, die Sie ausprobieren müssen

Probieren Sie den e3-Linux-Texteditor aus

24 Linux-Desktops, die Sie ausprobieren müssen

Linux-Sleep-Befehl (Pausieren eines Bash-Skripts)

Ausführungszeit des Shell-Skripts in Linux drucken

Beste Linux-Distributionen zum Testen im Jahr 2022