当我在终端中时,我会期望在空输入上按Enter
键来运行ls
或者在git仓库上运行git status
.
我该如何实现这一点呢?我的意思是,在zsh中自定义Empty input -> Enter
的行为?
编辑:感谢帮助。这是我的解决方案,使用preexec
...
precmd() {
echo $0;
if ["${0}" -eq ""]; then
if [ -d .git ]; then
git status
else
ls
fi;
else
$1
fi;
}
[["$1" -eq ""]]
更改为["$1" -eq ""]
,并将代码放入precmd
而不是preexec
。 - user12341234$1
,它总是为空的,如果我使用$0
,我仍然会得到bad pattern: [zsh
... - Augustin Riedinger$0
,$1
和$2
的内容。这是我的输出preexec: $0=preexec, $1=ll, $2=ls --color=tty -lh
和precmd: $0=zsh, $1=$2=""
。另外需要注意的是:在按下空字符串时不调用preexec
。并且precmd
不知道先前的命令。不确定我能否在这里实现我想要的... - Augustin Riedinger