Zsh 创建以加号或减号开头的函数(如`+;project(){}`)会导致意外的副作用吗?

Zsh 创建以加号或减号开头的函数(如`+;project(){}`)会导致意外的副作用吗?,zsh,oh-my-zsh,Zsh,Oh My Zsh,这是有效的,但我不知道副作用是什么 使用VirtualEnvrapper创建和删除python virtualenv的示例: +v() { mkvirtualenv --python=$(which python3) ${1:-${PWD##*/}} } -v() { deactivate rmvirtualenv ${1:-${PWD##*/}} } (${1:-${PWD###*/}}如果没有$1,则默认为工作目录名) +和-是我最关心的问题,但我也对» »deploy(){

这是有效的,但我不知道副作用是什么

使用VirtualEnvrapper创建和删除python virtualenv的示例:

+v() {
  mkvirtualenv --python=$(which python3) ${1:-${PWD##*/}}
}

-v() {
  deactivate
  rmvirtualenv ${1:-${PWD##*/}}
}
${1:-${PWD###*/}}
如果没有$1,则默认为工作目录名)

+
-
是我最关心的问题,但我也对
»

»deploy(){
  # ...
}

>
可以在Mac电脑上用cmd+shift+
\
键入,如果你想知道为什么我要麻烦使用一个特殊字符。)

有趣的是,zsh手册页似乎没有定义,在法律上什么可以进入函数名。在我的zsh中,您的三个示例都有效,考虑到可移植性的原因,我将远离任何在7位ASCII世界中无法表示的名称—至少在生产代码中是如此。这只是自找麻烦

如果您只在您的工作环境中使用这些函数(例如,在.zshrc中定义的),并且对这些有趣的名称感到满意,请随意使用它们。至少,与来自其他项目的函数发生名称冲突的可能性很低。

“»”是Unicode U+00bb,无论您如何使用键盘输入。