Zsh 创建以加号或减号开头的函数(如`+;project(){}`)会导致意外的副作用吗?
这是有效的,但我不知道副作用是什么 使用VirtualEnvrapper创建和删除python virtualenv的示例: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(){
+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,无论您如何使用键盘输入。