mirror of
https://github.com/robbyrussell/oh-my-zsh.git
synced 2025-12-07 16:00:41 +01:00
Rename the 'claude' alias to 'claudeai' in the web-search plugin to prevent conflicts with the Claude CLI tool. This ensures users can access both the web search functionality and the Claude CLI without collision.
116 lines
4.0 KiB
Bash
116 lines
4.0 KiB
Bash
# 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="
|
|
youtube "https://www.youtube.com/results?search_query="
|
|
deepl "https://www.deepl.com/translator#auto/auto/"
|
|
dockerhub "https://hub.docker.com/search?q="
|
|
gems "https://rubygems.org/search?query="
|
|
npmpkg "https://www.npmjs.com/search?q="
|
|
packagist "https://packagist.org/?query="
|
|
gopkg "https://pkg.go.dev/search?m=package&q="
|
|
chatgpt "https://chatgpt.com/?q="
|
|
grok "https://grok.com/?q="
|
|
claudeai "https://claude.ai/new?q="
|
|
reddit "https://www.reddit.com/search/?q="
|
|
ppai "https://www.perplexity.ai/search/new?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
|
|
# if search goes in the query string ==> space as +, otherwise %20
|
|
# see https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20
|
|
local param="-P"
|
|
[[ "$urls[$1]" == *\?*= ]] && param=""
|
|
|
|
# build search url:
|
|
# join arguments passed with '+', then append to search engine URL
|
|
url="${urls[$1]}$(omz_urlencode $param ${(s: :)@[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'
|
|
alias youtube='web_search youtube'
|
|
alias deepl='web_search deepl'
|
|
alias dockerhub='web_search dockerhub'
|
|
alias gems='web_search gems'
|
|
alias npmpkg='web_search npmpkg'
|
|
alias packagist='web_search packagist'
|
|
alias gopkg='web_search gopkg'
|
|
alias chatgpt='web_search chatgpt'
|
|
alias grok='web_search grok'
|
|
alias claudeai='web_search claudeai'
|
|
alias reddit='web_search reddit'
|
|
alias ppai='web_search ppai'
|
|
|
|
#add your own !bang searches here
|
|
alias wiki='web_search duckduckgo \!w'
|
|
alias news='web_search duckduckgo \!n'
|
|
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
|
|
|