diff options
Diffstat (limited to 'gentoo/zshrc.org')
l---------[-rw-r--r--] | gentoo/zshrc.org | 112 |
1 files changed, 1 insertions, 111 deletions
diff --git a/gentoo/zshrc.org b/gentoo/zshrc.org index d6cdeb7..8a52724 100644..120000 --- a/gentoo/zshrc.org +++ b/gentoo/zshrc.org @@ -1,111 +1 @@ -#+title: ZSH Configuration -Set up completions. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - zstyle ':completion:*' completer _expand _complete _ignored _approximate - zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*' - zstyle :compinstall filename '/home/jjanzen/.zshrc' - autoload -U compinit promptinit - compinit - promptinit -#+end_src - -Enable gentoo completions on Linux. -#+begin_src sh :tangle (cond ((eq system-type 'gnu/linux) "~/.zshrc") (t "no")) :mkdirp yes - prompt gentoo -#+end_src - -Set up the history with 1000 entries and ignored duplicate commands. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - HISTFILE=~/.histfile - HISTSIZE=1000 - SAVEHIST=1000 - setopt hist_ignore_all_dups -#+end_src - -Enable automatic =cd=. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt autocd -#+end_src - -Enable extended glob. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt extendedglob -#+end_src - -If a glob returns nothing, don't keep the =*=. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt nullglob -#+end_src - -Report the status of background jobs immediately. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt notify -#+end_src - -Disable the beep. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - unsetopt beep -#+end_src - -Use =vi= keybindings. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - bindkey -v -#+end_src - -Use =lesspipe= back end for =less= if it is installed. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s" -#+end_src - -Use =eza= as my =ls= command if it is installed. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which eza &> /dev/null && alias ls=eza -#+end_src - -Use Neovim as my =vi= and =vim= application if it is installed. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which nvim &> /dev/null && alias vi=nvim && alias vim=nvim -#+end_src - -If the Firefox binary is called =firefox-bin=, let =firefox= also run =firefox-bin=. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which firefox-bin &> /dev/null && alias firefox=firefox-bin -#+end_src - -Lazy =ls= shortcuts. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - alias ll='ls -alF' - alias la='ls -a' - alias l='ls -F' - alias sl='ls' -#+end_src - -*** Prompt -Define function to write out icons for the git status. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - parse_git_dirty() { - git_status="$(git status 2> /dev/null)" - [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f" - [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f" - [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f" - [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f" - } -#+end_src - -Enable git status in the prompt. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt prompt_subst - autoload -Uz vcs_info - precmd () { vcs_info } - zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main) -#+end_src - -Define the prompt as follows: -- Error code (if applicable) -- Path using =~= for the home directory and truncating if too long -- Git branch -- Git status -- =$= to mark the start of the prompt -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ ' -#+end_src +../common/zshrc.org
\ No newline at end of file |