zsh – 在不关闭shell窗口的情况下自动重新加载别名
发布时间:2020-12-13 23:51:26 所属栏目:Linux 来源:网络整理
导读:我的别名存储在?/ .zsh_aliases中,并且源自?/ .zshrc: # Access custom aliases in the shell[ -e "${HOME}/.zsh_aliases" ] source "${HOME}/.zsh_aliases" 但是,在更改别名的名称时,我必须始终关闭当前的shell窗口并打开一个新窗口以使更改变为活动状态.
我的别名存储在?/ .zsh_aliases中,并且源自?/ .zshrc:
# Access custom aliases in the shell [ -e "${HOME}/.zsh_aliases" ] && source "${HOME}/.zsh_aliases" 但是,在更改别名的名称时,我必须始终关闭当前的shell窗口并打开一个新窗口以使更改变为活动状态. Zsh可以在更改时自动重新加载别名以使其可用而无需关闭shell窗口吗? 解决方法
您实际上并不需要关闭并重新打开终端,只需运行source~ / .zsh_aliases(加载新的和更改的别名)或者exec zsh(用新的替换当前的shell)也可以.
如果你真的想在修改时重新提供?/ .zsh_aliases,我建议你在?/ .zshrc中添加以下内容: # File containing aliases; ALIAS_FILE="${HOME}/.zsh_aliases reload_aliases () { # do nothing if there is no $ALIAS_FILE [[ -e ALIAS_FILE ]] || return 1 # check if $ALIAS_FILE has been modified since last reload # the modifier `(:A)` resolves any symbolic links if [[ $LAST_ALIAS_RELOAD < $(stat -c %Y ${ALIAS_FILE}(:A)) ]]; then # remove all aliases; optional! # only do this if all of your aliases are defined in $ALIAS_FILE # also affects aliases defined on the command line unalias -m '*' # load aliases source $ALIAS_FILE # update date of last reload LAST_ALIAS_RELOAD=$(date +%s) fi } # make reload_aliases to be run before each prompt autoload -Uz add-zsh-hook add-zsh-hook precmd reload_aliases 请注意,任何更改只能在新提示中使用.这意味着,如果修改?/ .zsh_aliases,则需要在所有终端中至少按一次Enter键才能使更改生效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |