Files
dotfiles/.zshrc
T
cdanesi 35f5b4af78 refactor .zshrc
set some options for vi mode
started cleaning up the code a bit
removed more plugins
created init_env function to initialize environment after everything
else
2024-11-03 20:28:52 -05:00

145 lines
3.5 KiB
Bash

# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
export ZSH="$HOME/.oh-my-zsh"
export EDITOR='nvim'
export GPG_TTY=$(tty)
export FZF_DEFAULT_COMMAND="fd --hidden --strip-cwd-prefix --exclude .git"
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
export FZF_ALT_C_COMMAND="fd --type=d --hidden --strip-cwd-prefix --exclude .git"
export FZF_CTRL_T_OPTS="--preview 'bat -n --color=always --line-range :500 {}'"
export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always {} | head -200'"
export ZSH_ALIAS_FINDER_AUTOMATIC=true
ZSH_THEME="powerlevel10k/powerlevel10k"
# DISABLE_AUTO_TITLE="true"
ENABLE_CORRECTION="true"
HIST_STAMPS="yyyy-mm-dd"
HISTSIZE=128000
SAVEHIST=128000
export FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS'
--color=fg:#e5e9f0,bg:#3b4252,hl:#81a1c1
--color=fg+:#e5e9f0,bg+:#3b4252,hl+:#81a1c1
--color=info:#eacb8a,prompt:#bf6069,pointer:#b48dac
--color=marker:#a3be8b,spinner:#b48dac,header:#a3be8b'
zvm_after_init_commands+=(init_env)
function zvm_config() {
export ZVM_INIT_MODE='sourcing'
export ZVM_LINE_INIT_MODE=$ZVM_MODE_INSERT
export ZVM_VI_EDITOR="$VISUAL"
export ZVM_VI_SURROUND_BINDKEY='classic'
export ZVM_VI_INSERT_ESCAPE_BINDKEY='jk'
export ZVM_ESCAPE_KEYTIMEOUT=0.03
}
plugins=(
alias-finder
aliases
ansible
battery
colored-man-pages
command-not-found
dircycle
dirhistory
docker
docker-compose
dotenv
genpass
git
git-prompt
history
last-working-dir
ssh
ssh-agent
sudo
tmux
vscode
web-search
zsh-autosuggestions
zsh-syntax-highlighting
)
# set up dircolors
case $(uname -s) in
Darwin)
plugins+=(
brew
copypath
macos
)
[[ ! -f $(which gdircolors) ]] || $(test -f "$HOME"/.dircolors && eval $(gdircolors "$HOME"/.dircolors) || eval $(gdircolors))
;;
Linux)
plugins+=(
archlinux
ubuntu
)
test -f "$HOME"/.dircolors && eval $(dircolors -b "$HOME"/.dircolors) || eval $(dircolors -b)
;;
*) ;;
esac
function init_env() {
eval "$(zoxide init zsh)"
eval "$(fzf --zsh)"
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f $HOME/.p10k.zsh ]] || source $HOME/.p10k.zsh
# Load aliases
[[ ! -f $HOME/.aliases ]] || source $HOME/.aliases
# display mini system info
[[ ! -f $(which pfetch) ]] || $(which pfetch)
}
[[ ! -f $ZSH/oh-my-zsh.sh ]] || source $ZSH/oh-my-zsh.sh
function zvm_after_init() {
autoload add-zle-hook-widget
add-zle-hook-widget zle-line-pre-redraw zvm_zle-line-pre-redraw
}
_fzf_compgen_path() {
fd --hidden --exclude .git . "$1"
}
_fzf_compgen_dir() {
fd --type=d --hidden --exclude .git . "$1"
}
_fzf_comprun() {
local command=$1
shift
case "$command" in
cd)
fzf --preview 'eza --tree --color=always {} | head -200' "$@"
;;
export|unset)
fzf --preview "eval 'echo \$' {}" "$@"
;;
ssh)
fzf --preview 'dig {}' "$@"
;;
*)
fzf --preview "--preview 'bat -n --color=always --line-range :500'" "$@"
;;
esac
}
[[ ! -f $ZSH/custom/plugins/zsh-vi-mode/zsh-vi-mode.plugin.zsh ]] || source "$ZSH"/custom/plugins/zsh-vi-mode/zsh-vi-mode.plugin.zsh