Чи можна включити файл у конфігураційний файл zsh? Як?


22

Я хотів би мати файл, наприклад. f лише псевдоніми zsh (причини чистоти). Тоді я хотів би включити f файл у мій файл .zshrc , щоб псевдоніми, визначені у f, були видимі у .zshrc .

Це можливо?

Якщо це так, я міг би створити сценарій, наприклад. my_alias( $my_alias ll 'ls -l'), який додає псевдонім до файлу f . Звичайно, я міг би зробити

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

але це робить .zshrc одним великим безладом.

Крім того, як це виглядає в баші?

ОНОВЛЕННЯ

Якщо хтось поділиться моєю ідеєю, це рішення, завдяки 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
}

Відповіді:


20

.zshrcі .bashrcце файли сценаріїв, а не конфігураційні файли, тому ви "джерелом" є файл псевдоніма. У Zsh ( .zshrc) та Bash ( .bashrc) однаково:

. my_alias

запустить my_aliasі залишить його ефекти в одному середовищі з файлами RC, ефективно даючи псевдоніми в оболонці. Звичайно, і ваші псевдоніми не обмежуються. Я використовую , .shrcщо здобутий обома .bashrcі .zshrcдля загального експорту, функцій і псевдонімів.

Докладніше про пошук див. У розділі Різні способи виконання сценарію оболонки .


32

Це, як я це роблю в своєму .zshrc:

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

Дякую за хорошу відповідь, ви та phunehehe вірні, але схвалити можна лише одну відповідь, тому я вирішив дати їй phunehehe, оскільки він був першим :)
xliiv

15

Для джерела файлу, якщо він існує в одному рядку:

[ -f .aliases ] && source .aliases

Чим це відрізняється від відповіді Пет ?
jasonwryan

1
Те саме, але однолінійний. Я прийшов з google, і один лайнер був тим, що я шукав (знайшов його на форумі одночасно), тому я подумав, що міг би поділитися цим;) Я б не зміг придумати це як я я німий в баші
Матьє Наполі

1

Після установки о-мій-ЗШ останні рядки з.zshrc є:

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

Отже, у вас є кілька альтернатив:

  • Додати безпосередньо в .zshrc
  • Створіть папку і додайте в його шляху в кінці .zshrc: ZSH_CUSTOM=$HOME/Dropbox/.myzshconfig.
  • Використовуйте ~/.oh-my-zsh/customпапку і git clone git://github.com/yourusername/zsh_config.git .там.
  • З source/ оператором крапки:

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

    -r FILEперевірити, чи існує чи чи надано дозвіл на читання.

    У цьому випадку ви можете перевірити $SHELLналаштування bash та zsh, включаючи той самий файл.

Довідково


Дякую за хорошу ідею Dropboxing
Ariful Haque
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.