diff options
Diffstat (limited to '.oh-my-zsh/plugins/web-search/web-search.plugin.zsh')
-rw-r--r-- | .oh-my-zsh/plugins/web-search/web-search.plugin.zsh | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/.oh-my-zsh/plugins/web-search/web-search.plugin.zsh b/.oh-my-zsh/plugins/web-search/web-search.plugin.zsh new file mode 100644 index 0000000..18cc061 --- /dev/null +++ b/.oh-my-zsh/plugins/web-search/web-search.plugin.zsh @@ -0,0 +1,63 @@ +# web_search from terminal + +function web_search() { + emulate -L zsh + + # define search engine URLS + typeset -A urls + urls=( + google "https://www.google.com/search?q=" + bing "https://www.bing.com/search?q=" + yahoo "https://search.yahoo.com/search?p=" + duckduckgo "https://www.duckduckgo.com/?q=" + startpage "https://www.startpage.com/do/search?q=" + yandex "https://yandex.ru/yandsearch?text=" + github "https://github.com/search?q=" + baidu "https://www.baidu.com/s?wd=" + ecosia "https://www.ecosia.org/search?q=" + goodreads "https://www.goodreads.com/search?q=" + qwant "https://www.qwant.com/?q=" + stackoverflow "https://stackoverflow.com/search?q=" + ) + + # check whether the search engine is supported + if [[ -z "$urls[$1]" ]]; then + echo "Search engine $1 not supported." + return 1 + fi + + # search or go to main page depending on number of arguments passed + if [[ $# -gt 1 ]]; then + # build search url: + # join arguments passed with '+', then append to search engine URL + url="${urls[$1]}${(j:+:)@[2,-1]}" + else + # build main page url: + # split by '/', then rejoin protocol (1) and domain (2) parts with '//' + url="${(j://:)${(s:/:)urls[$1]}[1,2]}" + fi + + open_command "$url" +} + + +alias bing='web_search bing' +alias google='web_search google' +alias yahoo='web_search yahoo' +alias ddg='web_search duckduckgo' +alias sp='web_search startpage' +alias yandex='web_search yandex' +alias github='web_search github' +alias baidu='web_search baidu' +alias ecosia='web_search ecosia' +alias goodreads='web_search goodreads' +alias qwant='web_search qwant' +alias stack='web_search stackoverflow' + +#add your own !bang searches here +alias wiki='web_search duckduckgo \!w' +alias news='web_search duckduckgo \!n' +alias youtube='web_search duckduckgo \!yt' +alias map='web_search duckduckgo \!m' +alias image='web_search duckduckgo \!i' +alias ducky='web_search duckduckgo \!' |