È possibile includere il file nel file di configurazione di zsh? Come?


22

Mi piacerebbe avere un file ad es. f con solo alias zsh (motivi di purezza). Quindi vorrei includere il file f nel mio file .zshrc , in modo che gli alias definiti in f siano visibili in .zshrc .

È possibile?

Se lo è, potrei creare uno script per es. my_alias( $my_alias ll 'ls -l') che aggiunge l'alias al file f . Certo che potrei farlo

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

ma questo rende .zshrc un gran casino.

Inoltre, come si presenta in bash?

AGGIORNARE

Se qualcuno condivide la mia idea, questa è una soluzione, grazie a 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
}

Risposte:


20

.zshrce .bashrcsono file di script, non file di configurazione, quindi "fonte" il file alias. In Zsh ( .zshrc) e Bash ( .bashrc) allo stesso modo:

. my_alias

verrà eseguito my_aliase lascerà i suoi effetti nello stesso ambiente con i file RC, dandoti efficacemente gli alias nella shell. Naturalmente, non sei limitato nemmeno agli alias. Uso un prodotto .shrcche proviene da entrambi .bashrce .zshrcper esportazioni, funzioni e alias comuni.

Per ulteriori informazioni sull'approvvigionamento, vedere Diversi modi per eseguire uno script di shell .


32

Ecco come lo faccio nel mio .zshrc:

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

Grazie per la buona risposta, Tu e Phunehehe avete ragione, ma è possibile approvare una sola risposta, quindi ho deciso di darlo a Phunehehe perché era il primo :)
Xliiv

15

Per generare un file se esiste in una riga:

[ -f .aliases ] && source .aliases

In che modo differisce dalla risposta di Pat ?
Jasonwryan,

1
Stessa cosa ma una linea. Vengo da Google e l'unica linea era quello che stavo cercando (l'ho trovato su un forum allo stesso tempo), quindi ho pensato che avrei potuto anche condividerlo;) Non sarei stato in grado di inventarlo come me Sono stupido a bash
Matthieu Napoli

1

Dopo aver installato oh-my-zsh le ultime righe di.zshrc sono:

# 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"

Quindi hai alcune alternative:

  • Aggiungi direttamente a .zshrc
  • Creare una cartella e aggiungere al suo percorso alla fine di .zshrc: ZSH_CUSTOM=$HOME/Dropbox/.myzshconfig.
  • Usa la ~/.oh-my-zsh/customcartella e git clone git://github.com/yourusername/zsh_config.git .lì.
  • Con source/ punto operatore:

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

    -r FILEcontrolla se esiste e il permesso di lettura è concesso.

    In questo caso, è possibile selezionare $SHELLbash e zsh personalizzati, incluso lo stesso file.

Riferimento


Grazie per la bella idea di Dropboxing
Ariful Haque
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.