summaryrefslogtreecommitdiff
path: root/oh-my-zsh/plugins/web-search/web-search.plugin.zsh
diff options
context:
space:
mode:
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.zsh86
1 files changed, 86 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..ec176dd
--- /dev/null
+++ b/oh-my-zsh/plugins/web-search/web-search.plugin.zsh
@@ -0,0 +1,86 @@
+# web_search from terminal
+
+function web_search() {
+ emulate -L zsh
+
+ # 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="
+ brave "https://search.brave.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="
+ givero "https://www.givero.com/search?q="
+ stackoverflow "https://stackoverflow.com/search?q="
+ wolframalpha "https://www.wolframalpha.com/input/?i="
+ archive "https://web.archive.org/web/*/"
+ scholar "https://scholar.google.com/scholar?q="
+ ask "https://www.ask.com/web?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]}$(omz_urlencode ${@[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 brs='web_search brave'
+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 givero='web_search givero'
+alias stackoverflow='web_search stackoverflow'
+alias wolframalpha='web_search wolframalpha'
+alias archive='web_search archive'
+alias scholar='web_search scholar'
+alias ask='web_search ask'
+
+#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 \!'
+
+# 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