export TERM="xterm-256color" export LC_ALL=C.UTF-8 export LANG=C.UTF-8 # antigen # if test -z "$NO_WALL"; then # ANTIGEN_OMZ_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git" # ANTIGEN_URL="https://raw.fastgit.org/zsh-users/antigen/master/bin/antigen.zsh" # GIHUB_PROXY="https://hub.fastgit.xyz/" # else # ANTIGEN_URL="git.io/antigen" # GIHUB_PROXY="" # fi # antigen bundle ${GIHUB_PROXY}zsh-users/zsh-syntax-highlighting # antigen bundle ${GIHUB_PROXY}zsh-users/zsh-completions # antigen bundle ${GIHUB_PROXY}zsh-users/zsh-autosuggestions ANTIGEN_OMZ_REPO_URL="https://gitee.com/dictxiong/ohmyzsh.git" ANTIGEN_URL="https://gitee.com/dictxiong/antigen/raw/develop/bin/antigen.zsh" ANTIGEN="$HOME/antigen.zsh" # Install antigen.zsh if not exist if [ ! -f "$ANTIGEN" ]; then echo "Installing antigen ..." TMPFILE="/tmp/antigen.zsh" if [ -x "$(which curl)" ]; then curl -L "$ANTIGEN_URL" -o "$TMPFILE" elif [ -x "$(which wget)" ]; then wget "$ANTIGEN_URL" -O "$TMPFILE" else echo "ERROR: please install curl or wget before installation !!" exit fi if [ ! $? -eq 0 ]; then echo "" echo "ERROR: downloading antigen.zsh ($ANTIGEN_URL) failed !!" exit fi; echo "move $TMPFILE to $ANTIGEN" mv "$TMPFILE" "$ANTIGEN" fi # config and enable antigen source "$ANTIGEN" antigen use oh-my-zsh # enable plugins antigen_plugins=( \ "command-not-found" \ "docker" \ "extract" \ "fzf" \ "git" \ "ripgrep" \ "tmux" \ "ufw" \ "z" \ "https://gitee.com/dictxiong/zsh-syntax-highlighting" \ "https://gitee.com/dictxiong/zsh-completions" \ "https://gitee.com/dictxiong/zsh-autosuggestions" \ ) for i in ${antigen_plugins[*]} do if [[ -z $ANTIGEN_EXCLUDE || ! $i =~ $ANTIGEN_EXCLUDE ]]; then antigen bundle $i fi done # select theme antigen theme ${ZSH_THEME:-ys} # apply antigen apply # end of antigen config # functions export DOTFILES=$( cd "$( dirname "${BASH_SOURCE[0]:-${(%):-%x}}" )" && pwd ) SUDO='' if (( $EUID != 0 )); then SUDO='sudo' fi get_os_type() { case "$(uname -s)" in Darwin*) ans="MacOS";; CYGWIN*) ans="Cygwin";; MSYS* ) ans="MSYS";; Linux* ) ans="Linux";; *) ans="unknown";; esac echo $ans | tr '[:upper:]' '[:lower:]' } get_linux_dist() { if [ -f /etc/os-release ]; then . /etc/os-release ans=$ID elif type lsb_release >/dev/null 2>&1; then ans=$(lsb_release -si) elif [ -f /etc/lsb-release ]; then . /etc/lsb-release ans=$DISTRIB_ID elif [ -f /etc/debian_version ]; then ans=Debian elif [ -f /etc/SuSe-release ]; then ans=SUSE elif [ -f /etc/redhat-release ]; then ans=RedHat else ans=unknown fi echo $ans | tr '[:upper:]' '[:lower:]' } dfs() { case $1 in update ) "$DOTFILES/update.sh" ;; force-update ) ( cd "$DOTFILES" git fetch --all ref=$(git symbolic-ref --short HEAD 2> /dev/null) || ref=$(git rev-parse --short HEAD 2> /dev/null) || return 0 for b in $(git for-each-ref refs/heads --format='%(refname)') ; do git checkout ${b#refs/heads/} ; git pull --ff-only ; done git checkout -c advice.detachedHead=false $ref) ;; version ) (cd "$DOTFILES" && git rev-parse HEAD) ;; reset ) antigen reset 1> /dev/null rm -rf $HOME/.antigen "$DOTFILES/install.sh" -r dfs update "$DOTFILES/install.sh" -i echo 'Done. Please open a new shell to see the changes.' ;; cd ) cd "$DOTFILES" ;; log ) "$DOTFILES/tools/post-log.py" "$2" ;; * ) echo "unknown command \"$1\". available: update, force-update, version, reset, cd, log" ;; esac } dogo() { if [[ -z "$1" || "$1" =~ "-h|--help" ]]; then echo "usage: dogo " else $SUDO docker exec -it $1 zsh fi } # alias alias "pls"='sudo $(fc -ln -1)' alias "se"='sudo -sE' alias "pbd"='ping baidu.com' alias "p114"='ping 114.114.114.114' alias "p666"='ping6 2001:da8::666' case $(get_os_type) in macos ) alias l='ls -lAGh -D "%y-%m-%d %H:%M"' ;; * ) alias l='ls -lAGh --time-style="+%y-%m-%d %H:%M"' ;; esac # key bindings bindkey "^b" beginning-of-line bindkey "^e" end-of-line bindkey "^[[H" beginning-of-line bindkey "^[[F" end-of-line bindkey "^[[1~" beginning-of-line bindkey "^[[4~" end-of-line bindkey "^[OH" beginning-of-line bindkey "^[OF" end-of-line