2017-04-18 27 views
0

我已經添加了幾個別名到我的.zshrc文件,並且它們只在我重新啓動終端或使用source ~/.zshrc時才起作用如果我只是打開終端,然後輸入別名,它將不會識別它,直到我打電話source ~/.zshrcZSH總是需要重新啓動終端才能訪問別名

所以我知道這不是我創建的別名的問題,我只需要加載.zshrc文件,每次我想要使用它們。

這是怎麼回事?我怎樣才能解決這個問題?

回答

1

那麼,你不希望你只需要編輯一個文件,然後通過魔術,所有你當前的zsh實例以某種方式攝取變化,是嗎?

從zsh的手冊頁,部分啓動/關機FILES

如果shell是交互式的,命令從/ etc/zshrc讀取,然後$ ZDOTDIR/.zshrc

( $ ZDOTDIR默認爲您的$ HOME)。因此,如果你在你的終端,你有三種選擇。其中兩個你已經找到(重新啓動終端,手動源.zshrc)。第三個選擇是打開一個zsh子shell(通過輸入zsh)。

其實,有一招,做一些「神奇」自動讀取文件:巖組允許你定義一個所謂的PRECMD勾,它允許你建立一個任意的命令是剛剛執行在顯示命令提示符之前。你可以用它來找到你喜歡的任何文件。如果您想使用此功能,我強烈建議針對採購所有.zshrc。遲早你會在.zshrc中擁有你不想每次都執行的東西。

相反,把你的別名定義成一個單獨的文件,說$ HOME/.aliases,並在巖組定義了鉤

function precmd { 
    source $HOME/.aliases 
} 

如果以後改變.aliases文件,你仍然要鍵入一個在您的shell中的回車,以便激發一個新的提示被寫入並執行precmd,但這比手動獲取文件麻煩。

相關問題