mirror of
https://github.com/mitchell/dotfiles.git
synced 2026-07-17 08:09:35 +00:00
zsh
This commit is contained in:
parent
8a9b0b3a28
commit
2713e108aa
7 changed files with 113 additions and 4 deletions
99
.zshrc
Normal file
99
.zshrc
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
# --- History ---
|
||||
HISTFILE=~/.histfile
|
||||
HISTSIZE=1000
|
||||
SAVEHIST=2000
|
||||
|
||||
# --- Options ---
|
||||
setopt autocd
|
||||
setopt sharehistory
|
||||
setopt histignoredups
|
||||
setopt histignorealldups
|
||||
setopt histsavenodups
|
||||
bindkey -v
|
||||
|
||||
# --- Completion ---
|
||||
zstyle :compinstall filename '/home/m/.zshrc'
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
|
||||
# --- Aliases ---
|
||||
alias ls='lsd'
|
||||
alias ll='ls -l'
|
||||
alias la='ls -lA'
|
||||
alias o='opencode run --thinking'
|
||||
alias oc='opencode'
|
||||
alias sctl='sudo systemctl'
|
||||
alias uctl='systemctl --user'
|
||||
|
||||
# --- Keybinds ---
|
||||
bindkey '.,' open-nvim
|
||||
bindkey ',l' clear-screen
|
||||
bindkey ',r' fzf-history-widget
|
||||
bindkey ',f' fzf-file-widget
|
||||
bindkey ',c' fzf-cd-widget
|
||||
|
||||
bindkey '^[[A' history-substring-search-up
|
||||
bindkey '^[[B' history-substring-search-down
|
||||
bindkey -M vicmd 'k' history-substring-search-up
|
||||
bindkey -M vicmd 'j' history-substring-search-down
|
||||
|
||||
# --- Functions ---
|
||||
function open-nvim { nvim; }
|
||||
zle -N open-nvim open-nvim
|
||||
|
||||
function m {
|
||||
local tmp cwd
|
||||
tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
||||
command yazi "$@" --cwd-file="$tmp"
|
||||
IFS= read -r -d '' cwd <"$tmp"
|
||||
[ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd"
|
||||
rm -f -- "$tmp"
|
||||
}
|
||||
|
||||
# --- Prompt Configuration ---
|
||||
prompt_char='>'
|
||||
|
||||
function set_prompt {
|
||||
local branch
|
||||
branch="$(git branch --show-current 2>/dev/null)"
|
||||
|
||||
if [[ "$PWD" == "$HOME" ]]; then
|
||||
PROMPT="%F{magenta}%~%f $prompt_char "
|
||||
elif [[ "$branch" != '' ]]; then
|
||||
PROMPT="%F{magenta}%~%f ($branch)
|
||||
$prompt_char "
|
||||
else
|
||||
PROMPT="%F{magenta}%~%f
|
||||
$prompt_char "
|
||||
fi
|
||||
}
|
||||
autoload -Uz add-zsh-hook
|
||||
add-zsh-hook precmd set_prompt
|
||||
|
||||
function set_prompt_char {
|
||||
local old
|
||||
old=$prompt_char
|
||||
|
||||
if [[ $KEYMAP == vicmd && $REGION_ACTIVE != 0 ]]; then
|
||||
prompt_char='v'
|
||||
elif [[ $KEYMAP == vicmd ]]; then
|
||||
prompt_char='<'
|
||||
else
|
||||
prompt_char='>'
|
||||
fi
|
||||
|
||||
if [[ $prompt_char != "$old" ]]; then
|
||||
set_prompt
|
||||
zle reset-prompt
|
||||
fi
|
||||
}
|
||||
autoload -Uz add-zle-hook-widget
|
||||
add-zle-hook-widget line-pre-redraw set_prompt_char
|
||||
|
||||
# --- External Tools & Plugins ---
|
||||
eval "$(zoxide init zsh)"
|
||||
eval "$(fzf --zsh)"
|
||||
|
||||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh
|
||||
Loading…
Add table
Add a link
Reference in a new issue