添加 ZSH 别名

Adding ZSH alias

我完全是初学者。我正在尝试将此命令添加为 ZSH 别名(我想这就是我正在尝试的)。

git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d

我试过添加这一行:

alias delete-local-branches="git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d"

在 iTerm 中获取更新后的文件后,我得到了这个:

~ source ~/.zshrc
-='cd -'
...=../..
....=../../..
.....=../../../..
......=../../../../..
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd -9'
_='sudo '
afind='ack -il'
...

rd=rmdir
run-help=man
which-command=whence

很明显,不是预期的结果。 关于如何添加它以具有自动完成功能并将其用作别名的任何帮助?

谢谢。

我确定问题出在引用上。你引用了这部分:

alias delete-local-branches="git branch --merged | egrep -v "

然后不加引号 (^\*|master|dev),然后加引号尾

" | xargs git branch -d"

我的建议是尝试使用不同的引号:

alias delete-local-branches='git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d'

或转义内部引号:

alias delete-local-branches="git branch --merged | egrep -v \"(^\*|master|dev)\" | xargs git branch -d"

只需将函数定义放入 .zshrc 文件即可。

delete-local-branches () {
  git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
}