|
|
- #!/bin/zsh
-
- # Speed debugging
- # zmodload zsh/zprof
-
- if [[ "$(locale LC_CTYPE)" == "UTF-8" ]]; then
- setopt COMBINING_CHARS
- fi
-
- # Disable the log builtin, so we don't conflict with /usr/bin/log
- disable log
-
- # Save command history
- HISTFILE=${ZDOTDIR:-$HOME}/.zsh_history
- HISTSIZE=99999999
- SAVEHIST=$HISTSIZE
-
- # Variables
- export CASE_SENSITIVE="true"
- export EDITOR=nvim
- export GIT_EDITOR=nvim
- export PATH="${HOME}/.local/bin/:${HOME}/go/bin:${HOME}/.cargo/bin:${PATH}"
-
- # Enable substitution in the prompt.
- setopt prompt_subst
-
- function git_branch_name() {
- branch=$(git symbolic-ref HEAD 2> /dev/null | awk 'BEGIN{FS="/"} {print $NF}')
- if [[ $branch != "" ]]; then
- echo "- ${branch} "
- fi
- }
-
- PROMPT='%{$fg[blue]%}%1~ %{$fg[magenta]%}$(git_branch_name)%{$fg[green]%}>%{$reset_color%} '
-
- # Set some options if running on mac
- if [[ $(uname) == 'Darwin' ]]; then
- export HOMEBREW_NO_AUTO_UPDATE=1
-
- export PATH="/opt/homebrew/lib/ruby/gems/3.3.0:$PATH"
- export PATH="/opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/gems/3.3.0:$PATH"
-
- eval "$(rbenv init - zsh)"
- fi
-
- # Auto complete case insensitive
- zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
-
- # Load colors
- autoload -U colors && colors
-
- # Automatically cd into typed directory.
- setopt autocd
-
- # Useful support for interacting with Terminal.app or other terminal programs
- [ -r "/etc/zshrc_$TERM_PROGRAM" ] && . "/etc/zshrc_$TERM_PROGRAM"
-
- # Load Git completion
- zstyle ':completion:*:*:git:*' script ~/.zsh/git-completion.bash
- fpath=(~/.zsh $fpath)
-
- # vi mode
- bindkey -v
- export KEYTIMEOUT=1
-
- # Edit line in vim with ctrl-e:
- autoload edit-command-line; zle -N edit-command-line
- bindkey '^e' edit-command-line
-
- # Go up directory structures
- up () {
- cd $(printf "%0.0s../" $(seq 1 $1));
- }
-
- # cd with fzf
- function cdf () {
- cd $(find . -type d -print | fzf)
- }
-
- # Android dev config
- export ANDROID_HOME="$HOME/Android/Sdk"
- if [[ $(uname) == 'Darwin' ]]; then
- export ANDROID_HOME="$HOME/Library/Android/sdk"
- export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"
- fi
- export PATH="${PATH}:${ANDROID_HOME}/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin"
-
- # Load nvm on load to speed up shell init
- function nvm {
- unset -f nvm node npm npx
- export NVM_DIR="$HOME/.nvm"
- [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
- [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
- nvm "$@"
- }
- function node { nvm; node "$@" }
- function npm { nvm; npm "$@" }
- function npx { nvm; npx "$@" }
-
- # Load external aliases
- source ~/.config/aliasrc
-
- # Source fzf for Ctrl+r
- source <(fzf --zsh)
-
- # Speed debugging
- # zprof
|