Apakah mungkin untuk memasukkan file dalam file konfigurasi zsh? Bagaimana?

22

Saya ingin punya file misalnya. f dengan hanya zsh alias (alasan kemurnian). Lalu saya ingin memasukkan file f dalam file .zshrc saya , sehingga alias yang didefinisikan dalam f terlihat di .zshrc .

Apa itu mungkin?

Jika ya, saya bisa membuat skrip misalnya. my_alias( $my_alias ll 'ls -l') yang menambahkan alias ke file f . Tentu saja saya bisa melakukannya

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

tapi ini membuat .zshrc satu kekacauan besar.

Selain itu, bagaimana rasanya di bash?

MEMPERBARUI

Jika seseorang berbagi ide saya ini adalah solusi, terima kasih kepada 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
}
xliiv
sumber

Jawaban:

20

.zshrcdan .bashrcfile skrip, bukan file konfigurasi, jadi Anda "sumber" file alias. Dalam Zsh ( .zshrc) dan Bash ( .bashrc) sama:

. my_alias

akan berjalan my_aliasdan meninggalkan efeknya di lingkungan yang sama dengan file RC, secara efektif memberi Anda alias di shell. Tentu saja, Anda juga tidak terbatas pada alias. Saya menggunakan .shrcyang bersumber dari keduanya .bashrcdan .zshrcuntuk ekspor umum, fungsi dan alias.

Untuk lebih lanjut tentang sumber, lihat Berbagai cara untuk menjalankan skrip shell .

phhehehe
sumber
32

Ini, bagaimana saya melakukannya di .zshrc saya:

if [ -f ~/.zsh/zshalias ]; then
    source ~/.zsh/zshalias
else
    print "404: ~/.zsh/zshalias not found."
fi
menepuk
sumber
Terima kasih atas jawaban yang baik, Anda dan phunehehe benar, tetapi hanya mungkin untuk menyetujui satu jawaban, jadi saya memutuskan untuk memberikannya kepada phunehehe karena dia yang pertama :)
xliiv
15

Untuk sumber file jika ada dalam satu baris:

[ -f .aliases ] && source .aliases
Matthieu Napoli
sumber
Bagaimana ini berbeda dengan jawaban tepuk ?
jasonwryan
1
Hal yang sama tetapi satu-liner. Saya datang dari google dan satu liner adalah apa yang saya cari (menemukannya di forum pada saat yang bersamaan) jadi saya pikir saya mungkin juga membagikannya;) Saya tidak akan bisa memunculkannya karena saya Sedang bodoh di bash
Matthieu Napoli
1

Setelah menginstal oh-my-zsh baris terakhir dari.zshrc adalah:

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

Jadi, Anda memiliki beberapa alternatif:

  • Tambahkan langsung ke .zshrc
  • Membuat folder dan menambahkan pada jalurnya pada akhir .zshrc: ZSH_CUSTOM=$HOME/Dropbox/.myzshconfig.
  • Gunakan ~/.oh-my-zsh/customfolder dan git clone git://github.com/yourusername/zsh_config.git .disana.
  • Dengan source/ dot operator:

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

    -r FILEperiksa apakah ada dan izin baca diberikan.

    Dalam hal ini, Anda dapat memeriksa $SHELLbash dan zsh khusus termasuk file yang sama.

Referensi

Pablo A
sumber
Terima kasih atas ide bagus Dropboxing
Ariful Haque