dgy
/
hexagons
Archived
1
0
Fork 0
This repository has been archived on 2021-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
hexagons/.config/zsh/conf/01_teclas.zsh

122 lines
4.7 KiB
Bash

# Setup {{{
# Tmux clear screen
tmux-clear-screen() {
for line in {1..$(( $LINES ))} ; do echo; done
zle clear-screen
}
# Run with sudo
run-with-sudo() { LBUFFER="sudo $LBUFFER" }
foreach carga (
history-substring-search-up
history-substring-search-down
up-line-or-beginning-search
down-line-or-beginning-search
surround
select-bracketed
select-quoted
edit-command-line
) {
autoload -U $carga
}
foreach widge (
history-substring-search-up
history-substring-search-down
up-line-or-beginning-search
down-line-or-beginning-search
delete-surround surround
add-surround surround
change-surround surround
select-bracketed
select-quoted
tmux-clear-screen
run-with-sudo
edit-command-line
) {
zle -N $widge
}
bindkey -v
typeset -g -A key
key[Home]="$terminfo[khome]"
key[End]="$terminfo[kend]"
key[Insert]="$terminfo[kich1]"
key[Backspace]="$terminfo[kbs]"
key[Delete]="$terminfo[kdch1]"
key[Up]="$terminfo[kcuu1]"
key[Down]="$terminfo[kcud1]"
key[Left]="$terminfo[kcub1]"
key[Right]="$terminfo[kcuf1]"
key[PageUp]="$terminfo[kpp]"
key[PageDown]="$terminfo[knp]"
# }}}
# Insert {{{
[[ -n "$key[Home]" ]] && bindkey -M viins -- "$key[Home]" beginning-of-line
[[ -n "$key[End]" ]] && bindkey -M viins -- "$key[End]" end-of-line
[[ -n "$key[Insert]" ]] && bindkey -M viins -- "$key[Insert]" overwrite-mode
[[ -n "$key[Backspace]" ]] && bindkey -M viins -- "$key[Backspace]" backward-delete-char
[[ -n "$key[Delete]" ]] && bindkey -M viins -- "$key[Delete]" delete-char
[[ -n "$key[Right]" ]] && bindkey -M viins -- "$key[Right]" forward-char
[[ -n "$key[PageUp]" ]] && bindkey -M viins -- "$key[PageUp]" history-beginning-search-backward
[[ -n "$key[PageDown]" ]] && bindkey -M viins -- "$key[PageDown]" history-beginning-search-forward
[[ -n "$key[Up]" ]] && bindkey -M viins -- "$key[Up]" history-substring-search-up
[[ -n "$key[Down]" ]] && bindkey -M viins -- "$key[Down]" history-substring-search-down
if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
autoload -Uz add-zle-hook-widget
function zle_application_mode_start { echoti smkx }
function zle_application_mode_stop { echoti rmkx }
add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
fi
bindkey -M viins '^K' up-history # ^K to previous command.
bindkey -M viins '^J' down-history # ^J to next command.
bindkey -M viins '^F' vi-forward-char # Go forward char or complete current completion.
bindkey -M viins '^B' backward-kill-word # Delete a WORD backward.
bindkey -M viins '^Y' redo
bindkey -M viins '^P' up-line-or-beginning-search
bindkey -M viins '^N' down-line-or-beginning-search
bindkey -M viins '^U' history-incremental-pattern-search-backward
bindkey -M viins '^[[A' history-substring-search-up
bindkey -M viins '^[[B' history-substring-search-down
bindkey -M viins '^E' edit-command-line
bindkey '^L' tmux-clear-screen
bindkey '^X' run-with-sudo
# }}}
# Normal {{{
bindkey -M vicmd 'j' down-line # Override down-line-or-history.
bindkey -M vicmd 'k' up-line # Override up-line-or-history.
bindkey -M vicmd '^K' up-history # ^K to previous command.
bindkey -M vicmd '^J' down-history # ^J to next command.
bindkey -M vicmd 'H' vi-beginning-of-line # Go beginning of line.
bindkey -M vicmd 'L' vi-end-of-line # Go end of line.
bindkey -M vicmd 'cs' change-surround # Change surround operator.
bindkey -M vicmd 'ds' delete-surround # Delete surround operator.
bindkey -M vicmd 'ys' add-surround # Add surround operator.
bindkey -M vicmd '?' history-incremental-search-backward
bindkey -M vicmd '/' history-incremental-search-forward
bindkey -M vicmd '^[[A' history-substring-search-up
bindkey -M vicmd '^[[B' history-substring-search-down
bindkey -M vicmd '^Y' redo
# }}}
# Visual {{{
bindkey -M visual 'H' vi-beginning-of-line # Go beginning of line.
bindkey -M visual 'L' vi-end-of-line # Go end of line.
bindkey -M visual 'S' add-surround # Add surround.
foreach char ({a,i}{\',\",\`}) { bindkey -M visual $char select-quoted } && unset char # Text objects for delimiters.
foreach char ({a,i}${(s..)^:-'()[]{}<>bB'}) { bindkey -M visual $char select-bracketed } && unset char # Text objects for pairs of brackets.
# }}}
# Operator {{{
bindkey -M viopp 'H' vi-beginning-of-line # Go beginning of line.
bindkey -M viopp 'L' vi-end-of-line # Go end of line.
foreach char ({a,i}{\',\",\`}) { bindkey -M viopp $char select-quoted } && unset char # Text objects for delimiters.
foreach char ({a,i}${(s..)^:-'()[]{}<>bB'}) { bindkey -M viopp $char select-bracketed } && unset char # Text objects for pairs of brackets.
export KEYTIMEOUT=5
# }}}
# vim:foldmethod=marker:foldlevel=0