updupdate
This commit is contained in:
102
zsh/.zshrc
102
zsh/.zshrc
@@ -98,6 +98,12 @@ zinit snippet OMZP::aws
|
|||||||
zinit snippet OMZP::kubectl
|
zinit snippet OMZP::kubectl
|
||||||
zinit snippet OMZP::kubectx
|
zinit snippet OMZP::kubectx
|
||||||
zinit snippet OMZP::command-not-found
|
zinit snippet OMZP::command-not-found
|
||||||
|
zinit snippet OMZP::web-search
|
||||||
|
zinit snippet OMZP::jsontools
|
||||||
|
zinit snippet OMZP::copypath
|
||||||
|
zinit snippet OMZP::copyfile
|
||||||
|
zinit snippet OMZP::copybuffer
|
||||||
|
zinit snippet OMZP::dirhistory
|
||||||
|
|
||||||
# Load completions
|
# Load completions
|
||||||
autoload -Uz compinit && compinit
|
autoload -Uz compinit && compinit
|
||||||
@@ -136,3 +142,99 @@ zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
|
|||||||
# Shell integrations
|
# Shell integrations
|
||||||
#eval "$(fzf --zsh)"
|
#eval "$(fzf --zsh)"
|
||||||
eval "$(zoxide init --cmd cd zsh)"
|
eval "$(zoxide init --cmd cd zsh)"
|
||||||
|
|
||||||
|
function omz_urlencode() {
|
||||||
|
emulate -L zsh
|
||||||
|
local -a opts
|
||||||
|
zparseopts -D -E -a opts r m P
|
||||||
|
|
||||||
|
local in_str="$@"
|
||||||
|
local url_str=""
|
||||||
|
local spaces_as_plus
|
||||||
|
if [[ -z $opts[(r)-P] ]]; then spaces_as_plus=1; fi
|
||||||
|
local str="$in_str"
|
||||||
|
|
||||||
|
# URLs must use UTF-8 encoding; convert str to UTF-8 if required
|
||||||
|
local encoding=$langinfo[CODESET]
|
||||||
|
local safe_encodings
|
||||||
|
safe_encodings=(UTF-8 utf8 US-ASCII)
|
||||||
|
if [[ -z ${safe_encodings[(r)$encoding]} ]]; then
|
||||||
|
str=$(echo -E "$str" | iconv -f $encoding -t UTF-8)
|
||||||
|
if [[ $? != 0 ]]; then
|
||||||
|
echo "Error converting string from $encoding to UTF-8" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use LC_CTYPE=C to process text byte-by-byte
|
||||||
|
# Note that this doesn't work in Termux, as it only has UTF-8 locale.
|
||||||
|
# Characters will be processed as UTF-8, which is fine for URLs.
|
||||||
|
local i byte ord LC_ALL=C
|
||||||
|
export LC_ALL
|
||||||
|
local reserved=';/?:@&=+$,'
|
||||||
|
local mark='_.!~*''()-'
|
||||||
|
local dont_escape="[A-Za-z0-9"
|
||||||
|
if [[ -z $opts[(r)-r] ]]; then
|
||||||
|
dont_escape+=$reserved
|
||||||
|
fi
|
||||||
|
# $mark must be last because of the "-"
|
||||||
|
if [[ -z $opts[(r)-m] ]]; then
|
||||||
|
dont_escape+=$mark
|
||||||
|
fi
|
||||||
|
dont_escape+="]"
|
||||||
|
|
||||||
|
# Implemented to use a single printf call and avoid subshells in the loop,
|
||||||
|
# for performance (primarily on Windows).
|
||||||
|
local url_str=""
|
||||||
|
for (( i = 1; i <= ${#str}; ++i )); do
|
||||||
|
byte="$str[i]"
|
||||||
|
if [[ "$byte" =~ "$dont_escape" ]]; then
|
||||||
|
url_str+="$byte"
|
||||||
|
else
|
||||||
|
if [[ "$byte" == " " && -n $spaces_as_plus ]]; then
|
||||||
|
url_str+="+"
|
||||||
|
elif [[ "$PREFIX" = *com.termux* ]]; then
|
||||||
|
# Termux does not have non-UTF8 locales, so just send the UTF-8 character directly
|
||||||
|
url_str+="$byte"
|
||||||
|
else
|
||||||
|
ord=$(( [##16] #byte ))
|
||||||
|
url_str+="%$ord"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo -E "$url_str"
|
||||||
|
}
|
||||||
|
|
||||||
|
function open_command() {
|
||||||
|
local open_cmd
|
||||||
|
|
||||||
|
# define the open command
|
||||||
|
case "$OSTYPE" in
|
||||||
|
darwin*) open_cmd='open' ;;
|
||||||
|
cygwin*) open_cmd='cygstart' ;;
|
||||||
|
linux*) [[ "$(uname -r)" != *icrosoft* ]] && open_cmd='nohup xdg-open' || {
|
||||||
|
open_cmd='cmd.exe /c start ""'
|
||||||
|
[[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 }
|
||||||
|
} ;;
|
||||||
|
msys*) open_cmd='start ""' ;;
|
||||||
|
*) echo "Platform $OSTYPE not supported"
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If a URL is passed, $BROWSER might be set to a local browser within SSH.
|
||||||
|
# See https://github.com/ohmyzsh/ohmyzsh/issues/11098
|
||||||
|
if [[ -n "$BROWSER" && "$1" = (http|https)://* ]]; then
|
||||||
|
"$BROWSER" "$@"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
${=open_cmd} "$@" &>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# take functions
|
||||||
|
|
||||||
|
# mkcd is equivalent to takedir
|
||||||
|
function mkcd takedir() {
|
||||||
|
mkdir -p $@ && cd ${@:$#}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user