Будет ли создание функций, начинающихся с плюса или минуса (например, `+ project () {}`), вызвать нежелательные побочные эффекты? - PullRequest
1 голос
/ 26 апреля 2019

Это работает, но я не знаю, каковы побочные эффекты.

Пример создания и удаления python virtualenv с помощью virtualenvwrapper:

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

-v() {
  deactivate
  rmvirtualenv ${1:-${PWD##*/}}
}

(${1:-${PWD##*/}} по умолчаниюимя рабочего каталога, если нет $ 1)

+ и - - моя главная задача, но мне также любопытно, например, такие символы, как »

»deploy(){
  # ...
}

(» можно набрать с помощью cmd + shift + \ на Mac, если вам интересно, почему я потрудился бы использовать специальный символ.)

1 Ответ

1 голос
/ 30 апреля 2019

Интересно, что страница руководства zsh, похоже, не определяет, что по закону может входить в название функции. На моем zsh все три ваших примера работают, подумав из-за переносимости, я бы держался подальше от любого имени, которое не может быть представлено в 7-битном мире ASCII - по крайней мере, в производительном коде. Это просто попрошайничество.

Если вы используете эти функции только в своей рабочей среде (например, определенной в вашем .zshrc) и довольны такими забавными именами, не стесняйтесь использовать их. По крайней мере, вероятность столкновения имен с функцией из какого-то другого проекта невелика.

...