1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2026-01-05 20:57:46 +08:00

Compare commits

...

8 Commits

Author SHA1 Message Date
Marc Cornellà
9ce7de9f16
Document ZSH_THEME_RANDOM_BLACKLIST setting 2020-03-01 22:53:33 +01:00
Marc Cornellà
461b2134de Merge branch 'grep.zsh-improvements'
Closes #5085
Closes #7451
Closes #7265
Fixes #8444
Closes #8445
2020-03-01 22:46:24 +01:00
Marc Cornellà
dc190d872a Refactor grep.zsh file
- Move grep-alias path to variable.
- Use <<< "" instead of piped echo to check grep flags.
- Remove check for --color only since it's the same release as --exclude.
2020-03-01 20:40:27 +01:00
Marc Cornellà
8d814fdff6 Fast algorithm to determine grep alias flags
This version tries whether grep supports all the flags together
and progressively checks older flags if the grep test fails.
This means only one grep call if all flags are supported, and
one additional call for every flag that's not supported, up to
a maximum of 3 calls.
2020-03-01 14:05:01 +01:00
mattmc3
57b178102c Performance enhancement for lib/grep
- Use $ZSH_CACHE_DIR to store the grep alias with all the right features
- Expire the cache after 24 hours
- See issue #8444
2020-03-01 14:04:36 +01:00
Shi Yan
a8ed1c4e7a Ignore .tox folder in grep 2020-03-01 13:53:04 +01:00
Peter Vandenberk
b4b50f20ac Also set options for egrep and fgrep 2020-03-01 13:51:55 +01:00
Vital Kolas
b6f2cfdb93 Exclude .idea folder from grep search scope 2020-03-01 13:51:52 +01:00
2 changed files with 39 additions and 24 deletions

View File

@ -133,6 +133,12 @@ ZSH_THEME_RANDOM_CANDIDATES=(
)
```
If you only know which themes you don't like, you can add them similarly to a blacklist:
```shell
ZSH_THEME_RANDOM_BLACKLIST=(pygmalion tjkirch_mod)
```
### FAQ
If you have some more questions or issues, you might find a solution in our [FAQ](https://github.com/ohmyzsh/ohmyzsh/wiki/FAQ).

View File

@ -1,28 +1,37 @@
# is x grep argument available?
grep-flag-available() {
echo | grep $1 "" >/dev/null 2>&1
}
__GREP_CACHE_FILE="$ZSH_CACHE_DIR"/grep-alias
GREP_OPTIONS=""
# See if there's a cache file modified in the last day
__GREP_ALIAS_CACHES=("$__GREP_CACHE_FILE"(Nm-1))
if [[ -z "$__GREP_ALIAS_CACHES" ]]; then
grep-flags-available() {
command grep "$@" "" &>/dev/null <<< ""
}
# color grep results
if grep-flag-available --color=auto; then
GREP_OPTIONS+=" --color=auto"
# Ignore these folders (if the necessary grep flags are available)
EXC_FOLDERS="{.bzr,CVS,.git,.hg,.svn,.idea,.tox}"
# Check for --exclude-dir, otherwise check for --exclude. If --exclude
# isn't available, --color won't be either (they were released at the same
# time (v2.5): http://git.savannah.gnu.org/cgit/grep.git/tree/NEWS?id=1236f007
if grep-flags-available --color=auto --exclude-dir=.cvs; then
GREP_OPTIONS="--color=auto --exclude-dir=$EXC_FOLDERS"
elif grep-flags-available --color=auto --exclude=.cvs; then
GREP_OPTIONS="--color=auto --exclude=$EXC_FOLDERS"
fi
{
if [[ -n "$GREP_OPTIONS" ]]; then
# export grep, egrep and fgrep settings
echo "alias grep='grep $GREP_OPTIONS'"
echo "alias egrep='egrep $GREP_OPTIONS'"
echo "alias fgrep='fgrep $GREP_OPTIONS'"
fi
} > "$__GREP_CACHE_FILE"
# Clean up
unset GREP_OPTIONS EXC_FOLDERS
unfunction grep-flags-available
fi
# ignore VCS folders (if the necessary grep flags are available)
VCS_FOLDERS="{.bzr,CVS,.git,.hg,.svn}"
if grep-flag-available --exclude-dir=.cvs; then
GREP_OPTIONS+=" --exclude-dir=$VCS_FOLDERS"
elif grep-flag-available --exclude=.cvs; then
GREP_OPTIONS+=" --exclude=$VCS_FOLDERS"
fi
# export grep settings
alias grep="grep $GREP_OPTIONS"
# clean up
unset GREP_OPTIONS
unset VCS_FOLDERS
unfunction grep-flag-available
source "$__GREP_CACHE_FILE"
unset __GREP_CACHE_FILE __GREP_ALIAS_CACHES