69 lines
2.6 KiB
Bash
69 lines
2.6 KiB
Bash
# Get basic stuff out of the way
|
|
source ~/.zsh.d/theme
|
|
source ~/.zsh.d/functions
|
|
source ~/.zsh.d/aliases
|
|
|
|
# History search with started text
|
|
autoload -U up-line-or-beginning-search
|
|
autoload -U down-line-or-beginning-search
|
|
zle -N up-line-or-beginning-search
|
|
zle -N down-line-or-beginning-search
|
|
bindkey "^[[A" up-line-or-beginning-search # Up arrow
|
|
bindkey "^[[B" down-line-or-beginning-search # Down arrow
|
|
|
|
# Initialize completion system
|
|
autoload -U compinit && compinit
|
|
|
|
# Case insensitive completion
|
|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
|
|
|
# Menu selection for completion
|
|
zstyle ':completion:*' menu select
|
|
zstyle ':completion:*' file-sort name
|
|
zstyle ':completion:*' list-colors ''
|
|
bindkey '^[[Z' reverse-menu-complete
|
|
|
|
# Configure history to be longer
|
|
HISTSIZE=10000000
|
|
SAVEHIST=10000000
|
|
setopt BANG_HIST # Treat the '!' character specially during expansion.
|
|
setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format.
|
|
setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits.
|
|
setopt SHARE_HISTORY # Share history between all sessions.
|
|
setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history.
|
|
setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again.
|
|
setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate.
|
|
setopt HIST_FIND_NO_DUPS # Do not display a line previously found.
|
|
setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space.
|
|
setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file.
|
|
setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry.
|
|
setopt HIST_VERIFY # Don't execute immediately upon history expansion.
|
|
setopt HIST_BEEP # Beep when accessing nonexistent history.
|
|
|
|
# Use vim as editor
|
|
export EDITOR=vim
|
|
export VISUAL=vim
|
|
|
|
# Enable colors in ls
|
|
export CLICOLOR=1
|
|
|
|
# For Linux/BSD ls colors
|
|
if whence dircolors >/dev/null; then
|
|
eval "$(dircolors -b)"
|
|
alias ls='ls --color=auto'
|
|
else
|
|
# For macOS ls colors
|
|
export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd
|
|
alias ls='ls -G'
|
|
fi
|
|
|
|
if [ "$(uname)" = "Darwin" ]; then
|
|
# set up iterm integration
|
|
source ~/.iterm2_shell_integration.zsh
|
|
# source homebrew
|
|
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
# plugins
|
|
source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
|
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
fi
|