mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-22 05:40: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` |
|
| `map` | `!m` |
|
||||||
| `image` | `!i` |
|
| `image` | `!i` |
|
||||||
| `ducky` | `!` |
|
| `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
|
# define search engine URLS
|
||||||
typeset -A urls
|
typeset -A urls
|
||||||
urls=(
|
urls=(
|
||||||
|
$ZSH_WEB_SEARCH_ENGINES
|
||||||
google "https://www.google.com/search?q="
|
google "https://www.google.com/search?q="
|
||||||
bing "https://www.bing.com/search?q="
|
bing "https://www.bing.com/search?q="
|
||||||
yahoo "https://search.yahoo.com/search?p="
|
yahoo "https://search.yahoo.com/search?p="
|
||||||
|
@ -25,7 +26,7 @@ function web_search() {
|
||||||
|
|
||||||
# check whether the search engine is supported
|
# check whether the search engine is supported
|
||||||
if [[ -z "$urls[$1]" ]]; then
|
if [[ -z "$urls[$1]" ]]; then
|
||||||
echo "Search engine $1 not supported."
|
echo "Search engine '$1' not supported."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -67,3 +68,13 @@ alias youtube='web_search duckduckgo \!yt'
|
||||||
alias map='web_search duckduckgo \!m'
|
alias map='web_search duckduckgo \!m'
|
||||||
alias image='web_search duckduckgo \!i'
|
alias image='web_search duckduckgo \!i'
|
||||||
alias ducky='web_search duckduckgo \!'
|
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