diff options
Diffstat (limited to 'plugins/web-search')
| -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 \!' | 
