find
+ решение GNUawk
:
find. -type f -name "*.css" -exec gawk -i inplace \
'{ for (i=1; i<=NF; i++)
if ($i ~ /^[0-9]+\.[0-9]+rem/) { v=$i/2; sub(/^[0-9]+\.[0-9]+/, "", $i); $i=v $i }
}1' {} \;
Использование rc-файла редко, если вообще когда-либо, работает на практике, потому что люди редко пишут его как идемпотентный. Речь идет о вашем собственном случае, когда вы каждый раз добавляете один и тот же каталог к пути fpath
, что, конечно, означает, что поиск по этому пути каждый раз занимает немного больше времени. Более того, это не единственное место, где вы занимаетесь подобными вещами.
Вы тоже не правильно понимаете автозагрузку. Как указано в документе, автозагрузка функции без тела происходит при первом выполнении функции . Очевидно, что если функция уже загружена и, следовательно, имеет тело, она не загружается снова.
Вам необходимо unfunction
выполнить функцию, прежде чем autoload
запустить ее снова.
Образец .zshrc
в исходном коде оболочки Z содержит функцию freload()
, которая делает то же самое для всех функций, названных в качестве аргументов. Это также typeset -U path cdpath fpath manpath
, заметьте.
Хотя autoload
помечает name
для автозагрузки при первой ссылке в zsh, он не переопределяет никакую существующую функцию с тем же именем, если она уже определена, поскольку это имя уже упоминалось после того, как оно было определено. чтобы достичь того, чего вы хотите, вам придется сначала отменить определение функции перед повторным поиском .zshrc
или для чего-то более упорядоченного, создать функцию-оболочку для автозагрузки, чтобы проверить, определены ли уже какие-либо имена функций, и если да, отмените их определение прежде чем снова пометить их для автозагрузки.
Что касается того, почему получение вашего .zshrc
становилось медленнее после каждой попытки, на это нельзя ответить без сказанного .zshrc
.