所以我现在已经让ZSH做了所有这些很酷的东西,但真正令人敬畏的是,如果我能在每次调用'cd'之后隐式运行'ls -a'.我想这必须放在.zlogin文件或.aliases文件中,我只是不确定最佳解决方案是什么.思考?参考资料?
ZyX*_*ZyX 59
将以下内容放入.zshrc:
function cd() {
emulate -LR zsh
builtin cd $@ &&
ls -a
}
Run Code Online (Sandbox Code Playgroud)
编辑:
在查看文档(zshbuiltins,cd内置函数或钩子函数的描述)之后,我发现了一种更好的方法:它使用以下任一chpwd函数:
function chpwd() {
emulate -L zsh
ls -a
}
Run Code Online (Sandbox Code Playgroud)
或使用chpwd_functions数组:
function list_all() {
emulate -L zsh
ls -a
}
chpwd_functions=(${chpwd_functions[@]} "list_all")
Run Code Online (Sandbox Code Playgroud)
简洁版本。
autoload -U add-zsh-hook
add-zsh-hook -Uz chpwd (){ ls -a; }
Run Code Online (Sandbox Code Playgroud)
快速解释这里发生的事情。
autoload -U add-zsh-hook
Run Code Online (Sandbox Code Playgroud)
该行基本上只是加载贡献函数add-zsh-hook。
add-zsh-hook -Uz chpwd (){ ls -a; }
Run Code Online (Sandbox Code Playgroud)
每个特殊功能都有一个函数数组,当该函数被触发时(例如通过更改目录)将被调用。这行代码向该数组添加了一个函数。要分解...
add-zsh-hook -Uz chpwd
Run Code Online (Sandbox Code Playgroud)
这部分指定我们要向chpwd特殊功能添加新功能。的-Uz一般都是这样做的推荐的参数,它们传递给用于函数参数(即下位)的自动加载。
(){ ls -a; }
Run Code Online (Sandbox Code Playgroud)
第二部分是功能。它通常被称为匿名函数。该函数尚未分配名称。它不需要名称,因为它只是放在数组中。
| 归档时间: |
|
| 查看次数: |
10132 次 |
| 最近记录: |