mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-12 08:50:08 +00:00
web-search: allow custom search engines
This commit is contained in:
parent
3c777ebf1b
commit
60442dc47b
2 changed files with 36 additions and 1 deletions
|
@ -52,3 +52,27 @@ Also there are aliases for bang-searching DuckDuckGo:
|
|||
| `map` | `!m` |
|
||||
| `image` | `!i` |
|
||||
| `ducky` | `!` |
|
||||
|
||||
### Custom search engines
|
||||
|
||||
If you want to add other search contexts to the plugin, you can use the
|
||||
`$ZSH_WEB_SEARCH_ENGINES` variable. Set it before Oh My Zsh is sourced,
|
||||
with the following format:
|
||||
|
||||
```zsh
|
||||
ZSH_WEB_SEARCH_ENGINES=(
|
||||
<context> <URL>
|
||||
<context> <URL>
|
||||
)
|
||||
```
|
||||
|
||||
where `<context>` is the name of the search context, and `<URL>` a URL of
|
||||
the same type as the search contexts above. For example, to add `reddit`,
|
||||
you'd do:
|
||||
|
||||
```zsh
|
||||
ZSH_WEB_SEARCH_ENGINES=(reddit "https://www.reddit.com/search/?q=")
|
||||
```
|
||||
|
||||
These custom search engines will also be turned to aliases, so you can
|
||||
both do `web_search reddit <query>` or `reddit <query>`.
|
||||
|
|
|
@ -6,6 +6,7 @@ function web_search() {
|
|||
# define search engine URLS
|
||||
typeset -A urls
|
||||
urls=(
|
||||
$ZSH_WEB_SEARCH_ENGINES
|
||||
google "https://www.google.com/search?q="
|
||||
bing "https://www.bing.com/search?q="
|
||||
yahoo "https://search.yahoo.com/search?p="
|
||||
|
@ -25,7 +26,7 @@ function web_search() {
|
|||
|
||||
# check whether the search engine is supported
|
||||
if [[ -z "$urls[$1]" ]]; then
|
||||
echo "Search engine $1 not supported."
|
||||
echo "Search engine '$1' not supported."
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
@ -67,3 +68,13 @@ alias youtube='web_search duckduckgo \!yt'
|
|||
alias map='web_search duckduckgo \!m'
|
||||
alias image='web_search duckduckgo \!i'
|
||||
alias ducky='web_search duckduckgo \!'
|
||||
|
||||
# other search engine aliases
|
||||
if [[ ${#ZSH_WEB_SEARCH_ENGINES} -gt 0 ]]; then
|
||||
typeset -A engines
|
||||
engines=($ZSH_WEB_SEARCH_ENGINES)
|
||||
for key in ${(k)engines}; do
|
||||
alias "$key"="web_search $key"
|
||||
done
|
||||
unset engines key
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue