From 9fb763c6136296ba50cbc2f920a329ef92f37a3d Mon Sep 17 00:00:00 2001 From: Sijmen Schoon Date: Wed, 19 Aug 2020 14:43:44 +0200 Subject: [PATCH] zsh: and back to oh my zsh we go --- zshrc | 171 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 91 insertions(+), 80 deletions(-) diff --git a/zshrc b/zshrc index a3161ca..f5460c2 100644 --- a/zshrc +++ b/zshrc @@ -1,86 +1,97 @@ -export PATH=$HOME/go/bin:$HOME/.local/bin:$HOME/.cargo/bin:$PATH -if which ruby >/dev/null && which gem >/dev/null; then - PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH" -fi +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH -eval $(thefuck --alias) +# Path to your oh-my-zsh installation. +export ZSH="/home/sijmen/.oh-my-zsh" -autoload -Uz vcs_info +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="bira" -export EDITOR="nvim" +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to automatically update without prompting. +# DISABLE_UPDATE_PROMPT="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_ZSH_DAYS=13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +export EDITOR='nvim' alias vim=nvim -alias ls='ls --color=auto' -precmd_vcs_info() { - vcs_info -} -precmd_functions+=(precmd_vcs_info) +# Compilation flags +# export ARCHFLAGS="-arch x86_64" -zstyle ':vcs_info:git:*' formats '%F{245}%b %m%u%c%f ' -zstyle ':vcs_info:*' enable git -setopt prompt_subst - -if [ "$SSH_CONNECTION" ]; then - PROMPT_HOST="%F{yellow}[ssh] $HOST%f " -fi - -function ret { - case $? in - 0) ;; - 126) echo "%F{red}[PERMISSION]%f " ;; - 127) echo "%F{red}[NOTFOUND]%f " ;; - <129-254>) echo "%F{red}[SIG$(kill -l $(($? - 127)))]%f " ;; - *) echo "%F{red}$?%f " ;; - esac -} -export PROMPT='$PROMPT_HOST$(ret)%f%20<…<%~%<<$(pretty-git-prompt) %F{117}>%f ' - -HISTSIZE=20000 -HISTFILE=~/.zsh_history -SAVEHIST=20000 -HISTDUP=erase -setopt appendhistory -setopt sharehistory -setopt incappendhistory - -bindkey -v -bindkey '^[[H' beginning-of-line -bindkey '^[[F' end-of-line -bindkey '^R' history-incremental-search-backward -KEYTIMEOUT=1 - -function zle-keymap-select zle-line-init { - case $KEYMAP in - vicmd) print -n -- "\E]50;CursorShape=0\C-G";; # block cursor - viins|main) print -n -- "\E]50;CursorShape=1\C-G";; # line cursor - esac - - zle reset-prompt - zle -R -} - -function zle-line-finish { - print -n -- "\E]50;CursorShape=0\C-G" # block cursor -} - -zle -N zle-line-init -zle -N zle-line-finish -zle -N zle-keymap-select - -setopt autocd menucomplete - -first-tab() { - if [[ $#BUFFER == 0 ]]; then - BUFFER="cd " - CURSOR=3 - zle list-choices - else - zle expand-or-complete - fi -} -zle -N first-tab -bindkey '^I' first-tab -zstyle ':completion:*' menu select - -source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh -source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" +complete -C "$(which aws_completer)" aws