diff options
Diffstat (limited to '')
-rw-r--r-- | .config/zsh/.zshrc | 80 |
1 files changed, 75 insertions, 5 deletions
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 4f09b46..3eda548 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -40,6 +40,35 @@ LESS_TERMCAP_se=$(printf '\e[0m'); export LESS_TERMCAP_se LESS_TERMCAP_us=$(printf '\e[0;4;35m'); export LESS_TERMCAP_us LESS_TERMCAP_ue=$(printf '\e[0m'); export LESS_TERMCAP_ue +_gen_fzf_default_opts() { +local color00='#1d2021' +local color01='#282828' +local color02='#504945' +local color03='#665c54' +local color04='#a89984' +local color05='#bdae93' +local color06='#ebdbb2' +local color07='#fbf1c7' +local color08='#cc241d' +local color09='#fe8019' +local color0A='#d79921' +local color0B='#98971a' +local color0C='#689d6a' +local color0D='#458588' +local color0E='#b16286' +local color0F='#d65d0e' + +export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS"\ +" --color=bg+:$color00,bg:$color00"\ +" --color=fg:$color05,fg+:$color06"\ +" --color=hl:$color08,hl+:$color08"\ +" --color=spinner:$color0D"\ +" --color=header:$color08,info:$color03,pointer:$color08"\ +" --color=marker:$color0C,prompt:$color0A" +} + +_gen_fzf_default_opts + autoload -U history-search-end zle -N history-beginning-search-backward-end history-search-end zle -N history-beginning-search-forward-end history-search-end @@ -79,6 +108,16 @@ eza_after_cd() { } add-zsh-hook chpwd eza_after_cd +_fzf_comprun() { + local command=$1 + shift + + case "$command" in + cd) fzf "$@" --preview 'tree -C {} | head -200' ;; + *) fzf "$@" ;; + esac +} + autoload -Uz url-quote-magic zle -N self-insert url-quote-magic autoload -Uz bracketed-paste-magic @@ -88,10 +127,10 @@ zle -N bracketed-paste bracketed-paste-magic [ -f "$ZDOTDIR"/plugins.zsh ] && source "$ZDOTDIR"/plugins.zsh [ -f "$XDG_PACKAGE_HOME"/fzf/shell/completion.zsh ] && source "$XDG_PACKAGE_HOME"/fzf/shell/completion.zsh [ -f "$XDG_PACKAGE_HOME"/fzf/shell/key-bindings.zsh ] && source "$XDG_PACKAGE_HOME"/fzf/shell/key-bindings.zsh -[ -f "$XDG_CONFIG_HOME"/lf/icons ] && { - LF_ICONS="$(tr '\n' ':' <"$XDG_CONFIG_HOME"/lf/icons)" \ - && export LF_ICONS -} +# [ -f "$XDG_CONFIG_HOME"/lf/icons ] && { +# LF_ICONS="$(tr '\n' ':' <"$XDG_CONFIG_HOME"/lf/icons)" \ +# && export LF_ICONS +# } globalias() { if [[ $LBUFFER =~ ^[a-z0-9]+$ ]]; then @@ -113,7 +152,38 @@ lfcd () { [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" fi } -bindkey -s '^o' '^ulfcd\n' + +nnncd () +{ + # Block nesting of nnn in subshells + [ "${NNNLVL:-0}" -eq 0 ] || { + echo "nnn is already running" + return + } + + # The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set) + # If NNN_TMPFILE is set to a custom path, it must be exported for nnn to + # see. To cd on quit only on ^G, remove the "export" and make sure not to + # use a custom path, i.e. set NNN_TMPFILE *exactly* as follows: + # NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd" + export NNN_TMPFILE="/tmp/nnn_lastd" + + # Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn + # stty start undef + # stty stop undef + # stty lwrap undef + # stty lnext undef + + # The command builtin allows one to alias nnn to n, if desired, without + # making an infinitely recursive alias + command nnn "$@" + + [ ! -f "$NNN_TMPFILE" ] || { + . "$NNN_TMPFILE" + rm -f -- "$NNN_TMPFILE" > /dev/null + } +} +bindkey -s '^o' '^unnncd\n' bindkey -v "^ " globalias bindkey -v " " magic-space |