111 lines
4.2 KiB
Bash
111 lines
4.2 KiB
Bash
# -*- mode: shell-script -*-
|
|
# vim:ft=zsh
|
|
# Opciones principales {{{
|
|
autoload -Uz bracketed-paste-url-magic
|
|
zle -N bracketed-paste bracketed-paste-url-magic
|
|
|
|
setopt RM_STAR_WAIT
|
|
setopt COMBINING_CHARS # Combine accents with the base character.
|
|
setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell.
|
|
setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
|
|
unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed.
|
|
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.
|
|
setopt AUTO_CD # Auto changes to a directory without typing cd.
|
|
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 AUTO_PARAM_SLASH # Tab completing directory appends a slash
|
|
setopt PROMPT_SUBST
|
|
# }}}
|
|
# Historial {{{
|
|
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help:* --version:* -v:* -h:man *:up:tuir *"
|
|
HISTFILE="$ZDOTDIR/histfile"
|
|
HISTSIZE=10000
|
|
SAVEHIST=10000
|
|
setopt BANG_HIST # Treat the '!' character specially during expansion.
|
|
setopt EXTENDED_HISTORY # Write the history file in the ':start:elapsed;command' format.
|
|
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 # Delete an old recorded event if a 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_VERIFY # Do not execute immediately upon history expansion.
|
|
setopt HIST_BEEP # Beep when accessing non-existent history.
|
|
# }}}
|
|
# Plugins y extras {{{
|
|
foreach programa (
|
|
doc/fzf/completion.zsh
|
|
doc/fzf/key-bindings.zsh
|
|
zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
) {
|
|
source /usr/share/$programa
|
|
}
|
|
|
|
foreach extra (
|
|
lf-icons.zsh
|
|
up.plugin.zsh
|
|
zsh-autopair/autopair.plugin.zsh
|
|
zsh-system-clipboard/zsh-system-clipboard.plugin.zsh
|
|
git-extras-completion.zsh
|
|
autocompletar.zsh
|
|
aliases.zsh
|
|
zmarks.zsh
|
|
zsh-history-substring-search/zsh-history-substring-search.plugin.zsh
|
|
teclas.zsh
|
|
) {
|
|
source $ZDOTDIR/$extra
|
|
}
|
|
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=1
|
|
typeset -g ZSH_SYSTEM_CLIPBOARD_TMUX_SUPPORT='true'
|
|
source $XDG_DATA_HOME/lscolors.sh
|
|
# }}}
|
|
# Prompt {{{
|
|
function precmd() {
|
|
if [ -z "$NEW_LINE_BEFORE_PROMPT" ]; then
|
|
NEW_LINE_BEFORE_PROMPT=1
|
|
elif [ "$NEW_LINE_BEFORE_PROMPT" -eq 1 ]; then
|
|
echo "\n"
|
|
fi
|
|
}
|
|
|
|
function () {
|
|
if [[ $EUID == 0 ]]; then
|
|
local SUFFIX=' %F{yellow}%n%f:'
|
|
else
|
|
local SUFFIX=$(printf ':')
|
|
fi
|
|
export PS1="%(?..%{%F{red}%}(%?%)%{%f%} )%F{green}${SSH_TTY:+[%n@%m]}%f%B${SSH_TTY:+:}%b%F{blue}%B%2~%b%f%B${SUFFIX}%b "
|
|
}
|
|
export SPROMPT="zsh: correct %F{red}'%R'%f to %F{green}'%r'%f [%B%Uy%u%bes, %B%Un%u%bo, %B%Ue%u%bdit, %B%Ua%u%bbort]? "
|
|
|
|
function zle-keymap-select {
|
|
if [[ ${KEYMAP} == vicmd ]] ||
|
|
[[ $1 = 'block' ]]; then
|
|
echo -ne '\e[2 q'
|
|
elif [[ ${KEYMAP} == main ]] ||
|
|
[[ ${KEYMAP} == viins ]] ||
|
|
[[ ${KEYMAP} = '' ]] ||
|
|
[[ $1 = 'beam' ]]; then
|
|
echo -ne '\e[6 q'
|
|
fi
|
|
}
|
|
zle -N zle-keymap-select
|
|
zle-line-init() {
|
|
echo -ne "\e[6 q"
|
|
}
|
|
zle -N zle-line-init
|
|
echo -ne '\e[5 q'
|
|
preexec() { echo -ne '\e[6 q' ;}
|
|
# }}}
|
|
# vim:foldmethod=marker:foldlevel=0
|