Blame view

plugins/web-search/web-search.plugin.zsh 1.58 KB
093a6c34b   mj   Squashed 'repos/r...
1
2
3
4
5
6
7
8
9
10
11
12
13
  # 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="
      yandex      "https://yandex.ru/yandsearch?text="
238d8e65a   mj   Squashed 'repos/r...
14
      github      "https://github.com/search?q="
dcebc9e8f   mj   Squashed 'repos/r...
15
      baidu       "https://www.baidu.com/s?wd="
61aaa7b58   mj   Squashed 'repos/r...
16
      ecosia      "https://www.ecosia.org/search?q="
093a6c34b   mj   Squashed 'repos/r...
17
    )
093a6c34b   mj   Squashed 'repos/r...
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    # 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
dcebc9e8f   mj   Squashed 'repos/r...
34
    open_command "$url"
093a6c34b   mj   Squashed 'repos/r...
35
36
37
38
39
40
41
42
  }
  
  
  alias bing='web_search bing'
  alias google='web_search google'
  alias yahoo='web_search yahoo'
  alias ddg='web_search duckduckgo'
  alias yandex='web_search yandex'
238d8e65a   mj   Squashed 'repos/r...
43
  alias github='web_search github'
dcebc9e8f   mj   Squashed 'repos/r...
44
  alias baidu='web_search baidu'
61aaa7b58   mj   Squashed 'repos/r...
45
  alias ecosia='web_search ecosia'
093a6c34b   mj   Squashed 'repos/r...
46
47
48
49
50
51
52
53
  
  #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 \!'