# zshrc -*- mode: sh; lexical-binding: t; -*- ## Aliases alias vim="nvim" alias clip="xclip -sel clip" alias paste="xclip -o" alias exa="exa --color=always --group-directories-first" alias ls="exa" alias lt="exa -T" alias l="exa -al" alias md="mkdir" alias fzf="fzf --layout=reverse --height=20" alias suctl="systemctl --user" alias uemacs="emacs -q -l '~/.config/emacs/init.el'" alias sedit="emacsclient -a emacs -s MAIN -c" ## ZSH export ZSH_THEME="af-magic" PS1="%F{8}[δx@%m%k] %B%F{14}[%(4~|...|)%3~]%F{white} λ %b%f%k" setopt histignorealldups sharehistory autoload -U colors && colors autoload -U compinit HISTSIZE=10000 SAVEHIST=10000 zstyle ':completion:*' menu select zmodload zsh/complist compinit _comp_options+=(globdots) zstyle ':completion:*' auto-description 'specify: %d' zstyle ':completion:*' completer _expand _complete _correct _approximate zstyle ':completion:*' format 'Completing %d' zstyle ':completion:*' group-name '' zstyle ':completion:*' menu select=2 eval "$(dircolors -b)" zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*' list-colors '' zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*' zstyle ':completion:*' menu select=long zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s zstyle ':completion:*' use-compctl false zstyle ':completion:*' verbose true zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,' ## Vim binds bindkey -v autoload -z edit-command-line zle -N edit-command-line bindkey "^X^E" edit-command-line # Menu bindkey -M menuselect 'h' vi-backward-char bindkey -M menuselect 'j' vi-up-line-or-history bindkey -M menuselect 'k' vi-down-line-or-history bindkey -M menuselect 'l' vi-forward-char # Cursor function zle-keymap-select { if [[ ${KEYMAP} == vicmd ]] || [[ $1 = 'block' ]]; then echo -ne '\e[1 q' elif [[ ${KEYMAP} == main ]] || [[ ${KEYMAP} == viins ]] || [[ ${KEYMAP} = '' ]] || [[ $1 = 'beam' ]]; then echo -ne '\e[5 q' fi } zle -N zle-keymap-select zle-line-init() { zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) echo -ne "\e[5 q" } zle -N zle-line-init echo -ne '\e[5 q' # Use beam shape cursor on startup. preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt. ## Programming editor() { nohup emacs $@ > /dev/null & } gentemplate() { for var in ${@:2}; do case $1 in 'c') git clone https://github.com/Oreodave/CTemplate $var;; 'cpp') git clone https://github.com/Oreodave/CPPTemplate $var;; 'python') git clone https://github.com/Oreodave/PythonTemplate $var;; 'node') git clone https://github.com/Oreodave/NodeTemplate $var;; 'ard') git clone https://github.com/Oreodave/ArduinoTemplate $var;; 'java') git clone https://github.com/Oreodave/JavaTemplate $var;; *) return;; esac rm -rf $var/.git; done } ## NVM config export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh