Commit 60442dc4 authored by Marc Cornellà's avatar Marc Cornellà
Browse files

web-search: allow custom search engines

parent 3c777ebf
......@@ -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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment