web-dev-qa-db-fra.com

Est-il possible d'inclure le fichier dans le fichier de configuration de ZSH? Comment?

J'aimerais avoir un fichier, par exemple. F avec seulement des alias ZSH (raisons de pureté). Alors j'aimerais inclure F Fichier dans mon . ZSHRC Fichier, de sorte que les alias définis dans F Visible In . ZSHRC.

Est-il possible?

Si c'est le cas, je pourrais créer un script, par exemple. my_alias ($my_alias ll 'ls -l') qui ajoute un alias à F fichier. Bien sûr que je pourrais faire

$echo {alias command} >> ~/.zshrc

mais cela fait . ZSHRC Un grand désordre.

De plus, comment ça ressemble à Bash?

MISE À JOUR

Si quelqu'un partage mon idée c'est une solution, merci à Phunehehe:

# source aliases
ALIASFILE=~/.aliasesrc
source $ALIASFILE
function add_alias() {
    if [[ -z $1 || -z $2 || $# -gt 2 ]]; then
        echo usage:
        echo "\t\$$0 ll 'ls -l'"
    else
        echo "alias $1='$2'" >> $ALIASFILE
        echo "alias ADDED to $ALIASFILE"
    fi
}
26
xliiv

.zshrc et .bashrc Sont des fichiers de script, pas des fichiers de configuration, donc vous "source" le fichier alias. Dans ZSH (.zshrc) _) et bash (.bashrc) ressemblent:

. my_alias

va courir my_alias Et laissez ses effets dans le même environnement avec les fichiers RC, vous donnant efficacement les alias dans la coquille. Bien sûr, vous ne vous limiterez pas non plus aux alias. J'utilise un .shrc qui est provenant des deux .bashrc et .zshrc Pour les exportations communes, les fonctions et les alias.

Pour plus d'informations sur l'approvisionnement, voir différentes manières d'exécuter un script shell .

24
phunehehe

C'est, comment je le fais dans mon .zshrc:

if [ -f ~/.zsh/zshalias ]; then
    source ~/.zsh/zshalias
else
    print "404: ~/.zsh/zshalias not found."
fi
36
pat

Pour sourmer un fichier s'il existe en une seule ligne:

[ -f .aliases ] && source .aliases
17
Matthieu Napoli

Après l'installation OH-MY-ZSH les dernières lignes de .zshrc sont:

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.  
# For a full list of active aliases, run `alias`.
# 
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

Donc, vous avez des alternatives:

  • Ajouter directement à .zshrc
  • Créer un dossier et ajouter sur son chemin à la fin de .zshrc: ZSH_CUSTOM=$HOME/Dropbox/.myzshconfig.
  • Utilisez le ~/.oh-my-zsh/custom Dossier et git clone git://github.com/yourusername/zsh_config.git . là.
  • Avec source/Opérateur de point:

    # CUSTOMIZATION FOR ZSH
    if [ -r ~/Dropbox/.myzshrc ]; then
        source ~/Dropbox/.myzshrc
    fi
    

    -r FILE Vérifiez si vous n'existe pas et Lire la permission est accordée.

    Dans ce cas, vous pouvez vérifier $Shell Pour personnaliser Bash et ZSH, y compris le même fichier.

Référence

2
Pablo A