85 lines
3.7 KiB
Bash
85 lines
3.7 KiB
Bash
|
# Stop TRAMP (in Emacs) from hanging or term/shell from echoing back commands
|
||
|
if [[ $TERM == dumb || -n $INSIDE_EMACS ]]; then
|
||
|
unsetopt zle prompt_cr prompt_subst
|
||
|
whence -w precmd >/dev/null && unfunction precmd
|
||
|
whence -w preexec >/dev/null && unfunction preexec
|
||
|
PS1='$ '
|
||
|
fi
|
||
|
|
||
|
## Plugins
|
||
|
# zgen
|
||
|
# we handle compinit ourselves...
|
||
|
export ZGEN_AUTOLOAD_COMPINIT=0
|
||
|
|
||
|
# zsh-vi-mode
|
||
|
export ZVM_INIT_MODE=sourcing
|
||
|
export ZVM_VI_INSERT_ESCAPE_BINDKEY=jk
|
||
|
|
||
|
# fasd
|
||
|
export _FASD_DATA="$XDG_CACHE_HOME/fasd"
|
||
|
export _FASD_VIMINFO="$XDG_CACHE_HOME/viminfo"
|
||
|
|
||
|
# fzf
|
||
|
if (( $+commands[fd] )); then
|
||
|
export FZF_DEFAULT_OPTS="--reverse --ansi"
|
||
|
export FZF_DEFAULT_COMMAND="fd ."
|
||
|
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
||
|
export FZF_ALT_C_COMMAND="fd -t d . $HOME"
|
||
|
fi
|
||
|
|
||
|
|
||
|
## ZSH configuration
|
||
|
# Treat these characters as part of a word.
|
||
|
WORDCHARS='_-*?[]~&.;!#$%^(){}<>'
|
||
|
|
||
|
unsetopt BRACE_CCL # Allow brace character class list expansion.
|
||
|
setopt COMBINING_CHARS # Combine zero-length punc chars (accents) with base char
|
||
|
setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'
|
||
|
setopt HASH_LIST_ALL
|
||
|
unsetopt CORRECT_ALL
|
||
|
unsetopt NOMATCH
|
||
|
unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed.
|
||
|
unsetopt BEEP # Hush now, quiet now.
|
||
|
setopt IGNOREEOF
|
||
|
|
||
|
## Jobs
|
||
|
setopt LONG_LIST_JOBS # List jobs in the long format by default.
|
||
|
setopt AUTO_RESUME # Attempt to resume existing job before creating a new process.
|
||
|
setopt NOTIFY # Report status of background jobs immediately.
|
||
|
unsetopt BG_NICE # Don't run all background jobs at a lower priority.
|
||
|
unsetopt HUP # Don't kill jobs on shell exit.
|
||
|
unsetopt CHECK_JOBS # Don't report on jobs when shell exit.
|
||
|
|
||
|
## History
|
||
|
HISTFILE="$XDG_CACHE_HOME/zhistory"
|
||
|
HISTSIZE=100000 # Max events to store in internal history.
|
||
|
SAVEHIST=100000 # Max events to store in history file.
|
||
|
|
||
|
setopt BANG_HIST # Don't treat '!' specially during expansion.
|
||
|
setopt EXTENDED_HISTORY # Include start time in history records
|
||
|
setopt APPEND_HISTORY # Appends history to history file on exit
|
||
|
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 a duplicate event first when trimming history.
|
||
|
setopt HIST_IGNORE_DUPS # Do not record an event that was just recorded again.
|
||
|
setopt HIST_IGNORE_ALL_DUPS # Remove old events if new event is a duplicate
|
||
|
setopt HIST_FIND_NO_DUPS # Do not display a previously found event.
|
||
|
setopt HIST_IGNORE_SPACE # Do not record an event starting with a space.
|
||
|
setopt HIST_SAVE_NO_DUPS # Do not write a duplicate event to the history file.
|
||
|
setopt HIST_REDUCE_BLANKS # Minimize unnecessary whitespace
|
||
|
setopt HIST_VERIFY # Do not execute immediately upon history expansion.
|
||
|
setopt HIST_BEEP # Beep when accessing non-existent history.
|
||
|
|
||
|
## Directories
|
||
|
DIRSTACKSIZE=9
|
||
|
unsetopt AUTO_CD # Implicit CD slows down plugins
|
||
|
setopt AUTO_PUSHD # Push the old directory onto the stack on cd.
|
||
|
setopt PUSHD_IGNORE_DUPS # Do not store duplicates in the stack.
|
||
|
setopt PUSHD_SILENT # Do not print the directory stack after pushd or popd.
|
||
|
setopt PUSHD_TO_HOME # Push to home directory when no argument is given.
|
||
|
setopt CDABLE_VARS # Change directory to a path stored in a variable.
|
||
|
setopt MULTIOS # Write to multiple descriptors.
|
||
|
setopt EXTENDED_GLOB # Use extended globbing syntax.
|
||
|
unsetopt GLOB_DOTS
|
||
|
unsetopt AUTO_NAME_DIRS # Don't add variable-stored paths to ~ list
|