É possível incluir o arquivo no arquivo de configuração do zsh? Quão?


22

Eu gostaria de ter um arquivo, por exemplo. f com apenas aliases zsh (motivos de pureza). Gostaria de incluir o arquivo f no meu arquivo .zshrc , para que os aliases definidos em f sejam visíveis em .zshrc .

É possível?

Se for, eu poderia criar um script, por exemplo. my_alias( $my_alias ll 'ls -l') que acrescenta o alias ao arquivo f . Claro que eu poderia fazer

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

mas isso faz do .zshrc uma grande bagunça.

Além disso, como é a aparência no bash?

ATUALIZAR

Se alguém compartilhar minha ideia, esta é a solução, graças 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
}

Respostas:


20

.zshrce .bashrcsão arquivos de script, não arquivos de configuração, então você "origina" o arquivo de alias. No Zsh ( .zshrc) e no Bash ( .bashrc):

. my_alias

será executado my_aliase deixará seus efeitos no mesmo ambiente com os arquivos RC, fornecendo efetivamente os aliases no shell. Obviamente, você também não está limitado a aliases. Eu uso um .shrcque é fornecido por ambos .bashrce .zshrcpara exportações, funções e aliases comuns.

Para obter mais informações sobre fontes, consulte Diferentes maneiras de executar um script de shell .


31

Isto é, como faço isso no meu .zshrc:

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

Obrigado por boa resposta, Você e phunehehe estão corretas, mas só é possível para aprovar uma resposta assim que eu decidi dar-lhe a phunehehe becasue ele foi o primeiro :)
xliiv

14

Para originar um arquivo, se ele existir em uma linha:

[ -f .aliases ] && source .aliases

Como isso é diferente da resposta de Pat ?
jasonwryan

1
A mesma coisa, mas one-liner. Eu vim do google e o liner era o que eu estava procurando (o encontrei em um fórum ao mesmo tempo), então achei que poderia compartilhar isso;) Eu não teria conseguido fazê-lo como sou burro em bash
Matthieu Napoli

1

Após a instalação do oh-my-zsh, as últimas linhas de.zshrc são:

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

Então você tem algumas alternativas:

  • Adicionar diretamente a .zshrc
  • Crie uma pasta e adicionar pelo seu caminho no final .zshrc: ZSH_CUSTOM=$HOME/Dropbox/.myzshconfig.
  • Use a ~/.oh-my-zsh/custompasta e git clone git://github.com/yourusername/zsh_config.git .lá.
  • Com sourceoperador / dot:

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

    -r FILEverifique se existe e se a permissão de leitura é concedida.

    Nesse caso, você pode verificar o $SHELLbash e o zsh personalizados, incluindo o mesmo arquivo.

Referência


Obrigado pela boa idéia do Dropboxing
Ariful Haque
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.