diff options
author | Urbain Vaes <urbain@vaes.uk> | 2018-04-08 11:25:59 +0100 |
---|---|---|
committer | Urbain Vaes <urbain@vaes.uk> | 2018-04-08 14:48:55 +0100 |
commit | 0e325e0ac2110e9832aae051bb21f05dc6f8ccdc (patch) | |
tree | 031dce7e35a9839c787ec8e5975454ec07c4635e /zsh/.zshrc | |
parent | 3ee22303b7561b0d784a5a004e656892579869f3 (diff) |
Remove oh-my-zsh
Diffstat (limited to 'zsh/.zshrc')
-rw-r--r-- | zsh/.zshrc | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..ec4a213 --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1,166 @@ +## startx automatically {{{ +[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx +# }}} +## Bindings {{{ +bindkey -v +bindkey -a 'k' history-beginning-search-backward +bindkey -a 'j' history-beginning-search-forward +bindkey '^?' backward-delete-char # backspace +bindkey '^N' history-beginning-search-forward +bindkey '^P' history-beginning-search-backward +bindkey '^a' beginning-of-line +bindkey '^b' backward-char +bindkey '^e' end-of-line +bindkey '^f' forward-char +bindkey '^h' backward-delete-char +bindkey '^k' kill-line +bindkey '^u' kill-whole-line +bindkey '^v' visual-mode +bindkey '^w' backward-kill-word +# }}} +## Options and modules {{{ + +# History +HISTFILE=$HOME/.zsh_history +HISTSIZE=1000000 +SAVEHIST=$HISTSIZE + +setopt append_history +setopt extended_history +setopt hist_ignore_space +setopt inc_append_history +setopt share_history + +# Completion +zstyle ':completion:*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}' 'r:|=*' 'l:|=* r:|=*' + +# Prompt +if [[ -n $SSH_CLIENT ]]; then +PROMPT='%F{red}[%M]%f %0~ $ ' +else +PROMPT='%0~ $ ' +fi +# }}} +## Plugins {{{ +[ ! -d ~/.zsh/zgen ] && git clone https://github.com/tarjoilija/zgen.git ~/.zsh/zgen +source "$HOME/.zsh/zgen/zgen.zsh" + +if ! zgen saved; then + echo "Creating a zgen save" + zgen load rupa/z + zgen load urbainvaes/fzf-marks + zgen load zsh-users/zsh-completions src + zgen load zsh-users/zsh-syntax-highlighting + zgen load zsh-users/zsh-autosuggestions + zgen save +fi + +bindkey '^y' autosuggest-accept +bindkey '^z' z + +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=6' + +# }}} +## fzf {{{ + +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh + +# Use fzf with z +unalias z 2> /dev/null +z() { + [ $# -gt 0 ] && _z "$*" && return + cd "$(_z -l 2>&1 | fzf --height 40% --reverse --inline-info +s --tac --query "$*" | sed 's/^[0-9,.]* *//')" + zle && zle reset-prompt +} +zle -N z + +# }}} +## Colors {{{ + +[[ -f $HOME/.local/colors.zsh ]] && source $HOME/.local/colors.zsh + +colorschemes=$(ls ${HOME}/.Xresources) + +function colo { + + COLORSCHEME=$1 + XRESOURCE_FILE=${HOME}/.Xresources/$COLORSCHEME + + # Change colors for current session + if [[ ! -z "$TMUX" ]]; then + printf '\x1bPtmux;' + esc='\x1b\x1b' + else + esc='\x1b' + fi + + /usr/bin/cpp ${XRESOURCE_FILE} | tr -d ' \t' | sed -n \ + -e "s/.*background:/${esc}]11;/p" \ + -e "s/.*foreground:/${esc}]10;/p" \ + -e "s/.*cursorColor:/${esc}]12;/p" \ + -e "s/.*borderColor:/${esc}]708;/p" \ + -e "s/.*color\\([0-9][^:]*\\):/${esc}]4;\\1;/p" | tr \\n \\a + + # Change color for future sessions + xrdb ${XRESOURCE_FILE} + + echo "export COLORSCHEME=$1" > $HOME/.local/colors.zsh + source $HOME/.local/colors.zsh +} + +# Completion for colorschemes (-M -> Case insensitive) +compctl -k "(${colorschemes})" -M 'm:{a-z}={A-Z}' colo + +function show256 { + for i in {0..255} ; do + printf "\x1b[48;5;%sm%3d\e[0m " "$i" "$i" + if (( i == 15 )) || (( i > 15 )) && (( (i-15) % 6 == 0 )); then + printf "\n"; + fi + done +} + +# }}} +## Aliases {{{ + +# Directories +alias cdd='cd ~/dotfiles' + +# Vim +alias n='nvim' +alias ns='nvim -S Session.vim' +alias v='vim' +alias vs="vim -S Session.vim" + +# Git +alias g='git' +alias ga='git add' +alias gc='git commit' +alias gd='git diff' +alias gl='git pull' +alias gp='git push' +alias gr='git remote' +alias gra='git remote add' +alias gst='git status' +alias rd='cd $(git rev-parse --show-toplevel)' + +# GNU Make +alias mi='make install' +alias mc='make clean' +alias mca='make clean-all' + +# Misc +alias a='vifm . .' +alias ff='FreeFem++' +alias m='cd ~/.mutt/attachments && mutt && cd -' +alias e='nvim' +alias mux='tmuxinator' +alias email="mbsync -a" + +# Applications +alias -s pdf='xdg-open' + +# Global +alias -g grep='grep --color=auto --exclude-dir={.git,.hg}' + +# }}} |