diff options
Diffstat (limited to 'plugins/web-search/web-search.plugin.zsh')
-rw-r--r-- | plugins/web-search/web-search.plugin.zsh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh new file mode 100644 index 000000000..8eedb90ee --- /dev/null +++ b/plugins/web-search/web-search.plugin.zsh @@ -0,0 +1,56 @@ +# web_search from terminal + +function web_search() { + + # get the open command + local open_cmd + if [[ $(uname -s) == 'Darwin' ]]; then + open_cmd='open' + else + open_cmd='xdg-open' + fi + + # check whether the search engine is supported + if [[ ! $1 =~ '(google|bing|yahoo|duckduckgo)' ]]; + then + echo "Search engine $1 not supported." + return 1 + fi + + local url="http://www.$1.com" + + # no keyword provided, simply open the search engine homepage + if [[ $# -le 1 ]]; then + $open_cmd "$url" + return + fi + if [[ $1 == 'duckduckgo' ]]; then + #slightly different search syntax for DDG + url="${url}/?q=" + else + url="${url}/search?q=" + fi + shift # shift out $1 + + while [[ $# -gt 0 ]]; do + url="${url}$1+" + shift + done + + url="${url%?}" # remove the last '+' + + $open_cmd "$url" +} + + +alias bing='web_search bing' +alias google='web_search google' +alias yahoo='web_search yahoo' +alias ddg='web_search duckduckgo' +#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 \!' |