mirror of
https://github.com/gaschz/dotfiles.git
synced 2025-03-01 14:22:33 +01:00
fix: remove duplicate files
They were symlink before, on a wrong copy, it was converter to regular files.
This commit is contained in:
parent
835c5a9097
commit
3a7398fdb4
@ -1,5 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
show-error
|
@ -201,9 +201,8 @@ zmodload zsh/complist
|
||||
mkdir -p $XDG_CACHE_HOME/zsh
|
||||
compinit -u -d $XDG_CACHE_HOME/zsh/zcompdump
|
||||
# _comp_options+=(globdots)
|
||||
if has zoxide; then
|
||||
eval "$(zoxide init zsh)"
|
||||
fi
|
||||
! has zoxide || eval "$(zoxide init zsh)"
|
||||
! has gitlint || eval "$(_GITLINT_COMPLETE=zsh_source gitlint)"
|
||||
## }}}
|
||||
## {{{ Plugins
|
||||
source_readable /usr/share/doc/fzf/examples/key-bindings.zsh
|
||||
|
@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
||||
## SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
##
|
||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
test "0${SHLVL-}" -le 1 && test -z "${SSH_TTY-}" &&
|
||||
test "${TERM-}" = linux && clear
|
@ -1,12 +0,0 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
## SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
##
|
||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
## Zsh does not source /etc/profile as it is not a Bourne based Shell, but
|
||||
## some distributions such as Qubes, Whonix, Debian, Gentoo ship files to
|
||||
## /etc/profile.d.
|
||||
|
||||
emulate sh -c "source /etc/profile"
|
||||
. "$HOME/.profile"
|
@ -1,12 +0,0 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
## SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
##
|
||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
if test -z "$ENV" && test -n "$PATH"; then
|
||||
case $- in
|
||||
*l*) ;;
|
||||
*) . "$HOME/.zprofile" >/dev/null ;;
|
||||
esac
|
||||
fi
|
@ -1,486 +0,0 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
||||
## SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
##
|
||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
## Credits: https://github.com/tpope/dotfiles/blob/master/.zshrc
|
||||
|
||||
## {{{ Requirements
|
||||
## If not running interactively, return.
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
## Source default files.
|
||||
# shellcheck disable=SC1090
|
||||
source "$HOME/.zprofile"
|
||||
source "$ENV"
|
||||
## }}}
|
||||
## {{{ Options
|
||||
## - Quiet
|
||||
setopt no_beep
|
||||
## - Words
|
||||
setopt interactive_comments
|
||||
## - History
|
||||
SAVEHIST="$HISTSIZE"
|
||||
setopt hist_expire_dups_first # purge dups first
|
||||
setopt hist_ignore_dups # ignore dups in history list
|
||||
setopt hist_verify # if command has hist expansion, show it before executing
|
||||
## - Expansion
|
||||
setopt auto_cd
|
||||
setopt no_nomatch # if a pattern has no matches print an error
|
||||
setopt numeric_glob_sort # sort file names numerically when relevant
|
||||
setopt magic_equal_subst # filename expansion for opt=arg
|
||||
setopt no_equals # don't interpret =string as a command
|
||||
## - Prompt
|
||||
setopt prompt_subst
|
||||
setopt transient_rprompt
|
||||
setopt print_exit_value
|
||||
|
||||
if test "${color_prompt-}" = "yes"; then
|
||||
set zle_bracketed_paste
|
||||
autoload -Uz bracketed-paste-magic
|
||||
zle -N bracketed-paste bracketed-paste-magic
|
||||
autoload -Uz url-quote-magic
|
||||
zle -N self-insert url-quote-magic
|
||||
|
||||
pasteinit() {
|
||||
OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
|
||||
zle -N self-insert url-quote-magic
|
||||
}
|
||||
pastefinish() {
|
||||
zle -N self-insert $OLD_SELF_INSERT
|
||||
}
|
||||
zstyle :bracketed-paste-magic paste-init pasteinit
|
||||
zstyle :bracketed-paste-magic paste-finish pastefinish
|
||||
else
|
||||
unset zle_bracketed_paste
|
||||
fi
|
||||
|
||||
## }}}
|
||||
## {{{ Alias
|
||||
alias reload="exec zsh"
|
||||
## }}}
|
||||
## {{{ Prompt
|
||||
|
||||
newline=$'\n'
|
||||
if test "${color_prompt-}" = "yes"; then
|
||||
autoload -U colors && colors
|
||||
[[ "${COLORTERM-}" == (24bit|truecolor) || "${terminfo[colors]}" -eq '16777216' ]] || zmodload zsh/nearcolor
|
||||
|
||||
PS1="%F{magenta}[%{$usercolor%}%n@%M%F{reset_color%} %{$dircolor%}%50<...<%~%<<%F{reset_color%}\$(_git_prompt_info)%F{magenta}]%F{reset_color}${newline-}${ps1_symbol} "
|
||||
RPS1="%(?..(%{"$'\e[31m'"%}%?%{$reset_color%}%)%<<)"
|
||||
else
|
||||
PS1="[%n@%M %~\$(_git_prompt_info)]${newline}${ps1_symbol} "
|
||||
RPS1="%(?..(%?%)%<<)"
|
||||
fi
|
||||
|
||||
## Set window title
|
||||
_set_title() {
|
||||
case "${1:-}" in
|
||||
*install*)
|
||||
hash -r ;;
|
||||
esac
|
||||
print -Pn '\e]1;%l@%m${1+*}\a'
|
||||
print -Pn '\e]2;%n@%m:%~'
|
||||
if test -n "${1:-}"; then
|
||||
print -Pnr ' (%24>..>$1%>>)' | tr '\0-\037' '?'
|
||||
fi
|
||||
print -Pn " [%l]\a"
|
||||
}
|
||||
|
||||
case "${TERM-}" in
|
||||
screen*)
|
||||
precmd() {
|
||||
_set_title "$@"
|
||||
if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
||||
# print -Pn "\e]1;\a\e]1;@%m\a"
|
||||
print -Pn '\ek@\e\\'
|
||||
else
|
||||
print -Pn '\ek@%m\e\\'
|
||||
fi
|
||||
}
|
||||
preexec() {
|
||||
_set_title "$@"
|
||||
print -n "\ek"
|
||||
print -Pnr '%10>..>$1' | tr '\0-\037' '?'
|
||||
if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
||||
print -Pn '@\e\\'
|
||||
else
|
||||
print -Pn '@%m\e\\'
|
||||
fi
|
||||
}
|
||||
;;
|
||||
|
||||
xterm*|rxvt*|Eterm*|kterm*|putty*|dtterm*|ansi*|cygwin*)
|
||||
precmd () { _set_title "$@" }
|
||||
preexec() { _set_title "$@" }
|
||||
;;
|
||||
|
||||
""|dumb|linux*|vt220*|vt100*) ;;
|
||||
|
||||
*)
|
||||
PS1="%n@%m:%~%# "
|
||||
RPS1="%(?..(%?%)%<<)"
|
||||
;;
|
||||
esac
|
||||
|
||||
unset hostcolor hostletter hostcode dircolor usercolor usercode reset_color
|
||||
unset newline
|
||||
## }}}
|
||||
## {{{ Completions
|
||||
|
||||
## Enable completion.
|
||||
zstyle ':completion:*' use-cache on
|
||||
zstyle ':completion:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}"/zsh/zcompcache
|
||||
zstyle ':completion:*' auto-description 'Specify: %d'
|
||||
zstyle ':completion:*' completer _expand _complete _ignored _approximate
|
||||
zstyle ':completion:*' expand prefix suffix
|
||||
zstyle ':completion:*' file-sort name
|
||||
zstyle ':completion:*' group-name ''
|
||||
zstyle ':completion:*' ignore-parents parent pwd ..
|
||||
zstyle ':completion:*' insert-unambiguous true
|
||||
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
|
||||
zstyle ':completion:*' list-suffixes true
|
||||
zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*'
|
||||
zstyle ':completion:*' menu select=1
|
||||
zstyle ':completion:*' original true
|
||||
zstyle ':completion:*' preserve-prefix '//[^/]##/'
|
||||
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
|
||||
zstyle ':completion:*' special-dirs true
|
||||
zstyle ':completion:*' squeeze-slashes true
|
||||
zstyle ':completion:*' use-compctl true
|
||||
zstyle ':completion:*' verbose true
|
||||
zstyle ':completion:*:*:-command-:*:*' file-patterns \
|
||||
'*(#q-*):executables:Executables *(-/):directories:Directories'
|
||||
zstyle -e ':completion:*:*:-command-:*:*' tag-order '
|
||||
reply=("
|
||||
executables:Executables:Executables
|
||||
builtins:Builtins:Builtins
|
||||
commands:Commands:Commands
|
||||
aliases:Aliases:Aliases
|
||||
functions:Functions:Functions
|
||||
parameters:Variables:Variables
|
||||
reserved-words:Keywords:Keywords
|
||||
directories:Directories
|
||||
" -
|
||||
)'
|
||||
|
||||
## Completion per utility.
|
||||
zstyle ':completion:*:sudo::' environ \
|
||||
HOME="/root" \
|
||||
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
zstyle ':completion:*:doas::' environ \
|
||||
HOME="/root" \
|
||||
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
|
||||
## Colored completions.
|
||||
# zstyle ':completion:*' format 'Completing %d'
|
||||
if test "${color_prompt-}" = "yes"; then
|
||||
zstyle ':completion:*:*:*:*:descriptions' format '%B%F{blue}-- %d --%b%f'
|
||||
zstyle ':completion:*:messages' format ' %B%F{purple} -- %d --%f%b'
|
||||
zstyle ':completion:*:warnings' format ' %B%F{red}-- no matches found --%f%b'
|
||||
|
||||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
||||
zstyle ':completion:*:*:kill:*' list-colors '=(#b) #([0-9]#)*( *[a-z])*=94=91=93'
|
||||
else
|
||||
zstyle ':completion:*:*:*:*:descriptions' format '-- %d --%b%f'
|
||||
zstyle ':completion:*:messages' format ' -- %d --%f%b'
|
||||
zstyle ':completion:*:warnings' format ' -- no matches found --%f%b'
|
||||
|
||||
zstyle ':completion:*:default' list-colors ''
|
||||
zstyle ':completion:*:*:kill:*' list-colors ''
|
||||
fi
|
||||
|
||||
## Load completions.
|
||||
autoload -Uz compinit
|
||||
zmodload zsh/complist
|
||||
mkdir -p $XDG_CACHE_HOME/zsh
|
||||
compinit -u -d $XDG_CACHE_HOME/zsh/zcompdump
|
||||
# _comp_options+=(globdots)
|
||||
! has zoxide || eval "$(zoxide init zsh)"
|
||||
! has gitlint || eval "$(_GITLINT_COMPLETE=zsh_source gitlint)"
|
||||
## }}}
|
||||
## {{{ Plugins
|
||||
source_readable /usr/share/doc/fzf/examples/key-bindings.zsh
|
||||
source_readable /usr/share/doc/fzf/examples/completion.zsh
|
||||
|
||||
if test "${color_prompt-}" = "yes"; then
|
||||
## Enable auto-suggestions based on the history
|
||||
if test -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh; then
|
||||
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=30
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=7,bg=8,underline"
|
||||
typeset -a ZSH_AUTOSUGGEST_CLEAR_WIDGETS
|
||||
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste)
|
||||
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
fi
|
||||
## Highlight commands as you type
|
||||
if test -f /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh; then
|
||||
## https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters
|
||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern regexp)
|
||||
typeset -A ZSH_HIGHLIGHT_STYLES
|
||||
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
|
||||
ZSH_HIGHLIGHT_STYLES[default]='fg=white'
|
||||
ZSH_HIGHLIGHT_STYLES[alias]='fg=cyan'
|
||||
ZSH_HIGHLIGHT_STYLES[function]='fg=cyan'
|
||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green'
|
||||
ZSH_HIGHLIGHT_STYLES[command]='fg=green'
|
||||
ZSH_HIGHLIGHT_STYLES[precommand]='fg=green'
|
||||
ZSH_HIGHLIGHT_STYLES[comment]='fg=black,bold'
|
||||
ZSH_HIGHLIGHT_STYLES[globbing]='fg=cyan'
|
||||
typeset -A ZSH_HIGHLIGHT_REGEXP
|
||||
ZSH_HIGHLIGHT_REGEXP+=('^sudo' 'fg=magenta')
|
||||
ZSH_HIGHLIGHT_REGEXP+=('^doas' 'fg=magenta')
|
||||
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
fi
|
||||
fi
|
||||
## }}}
|
||||
## {{{ Bindkeys
|
||||
|
||||
## Widgets
|
||||
##
|
||||
function bindkey-multi () {
|
||||
## Usage: bindkey-multi mode Nmode -- bind nbind terminfoname -- widgetname
|
||||
local i j widget nomap
|
||||
local -a maps sequences
|
||||
|
||||
test "$1" = "--" && nomap=1
|
||||
|
||||
while [[ "$1" != "--" ]]; do
|
||||
maps+=( "$1" )
|
||||
shift
|
||||
done
|
||||
shift
|
||||
|
||||
while [[ "$1" != "--" ]]; do
|
||||
sequences+=( "$1" )
|
||||
shift
|
||||
done
|
||||
shift
|
||||
|
||||
widget="$1"
|
||||
test -z "$widget" && return 1
|
||||
|
||||
if test -n "$nomap"; then
|
||||
for j in "${sequences[@]}"; do
|
||||
test "$j" || continue
|
||||
bindkey -- "$j" "$widget"
|
||||
done
|
||||
return 0
|
||||
fi
|
||||
|
||||
for i in "${maps[@]}"; do
|
||||
test "$i" || continue
|
||||
for j in "${sequences[@]}"; do
|
||||
test "$j" || continue
|
||||
bindkey -M "$i" -- "$j" "$widget"
|
||||
done
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
function clear-screen-and-scrollback() {
|
||||
case "${TERM-}" in
|
||||
""|dumb|linux*|vt100*|vt220*) return;;
|
||||
esac
|
||||
test -n "${TTY-}" || return
|
||||
echoti civis >"${TTY-}"
|
||||
printf '%b' "\e[H\e[2J" >"${TTY-}"
|
||||
zle .reset-prompt
|
||||
zle -R
|
||||
printf '%b' "\e[3J" >"${TTY-}"
|
||||
echoti cnorm >"${TTY-}"
|
||||
}
|
||||
zle -N clear-screen-and-scrollback
|
||||
|
||||
fg-widget() {
|
||||
if [[ $#BUFFER -eq 0 ]]; then
|
||||
if jobs %- >/dev/null 2>&1; then
|
||||
BUFFER='fg %-'
|
||||
else
|
||||
BUFFER='fg'
|
||||
fi
|
||||
zle accept-line
|
||||
else
|
||||
zle push-input
|
||||
zle clear-screen
|
||||
fi
|
||||
}
|
||||
zle -N fg-widget
|
||||
|
||||
change-first-word(){
|
||||
zle beginning-of-line -N
|
||||
zle kill-word
|
||||
}
|
||||
zle -N change-first-word
|
||||
|
||||
new-screen() {
|
||||
test -z "${STY-}" || screen < "${TTY-}"
|
||||
test -z "${TMUX-}" || tmux new-window
|
||||
}
|
||||
zle -N new-screen
|
||||
|
||||
case "${TERM-}" in
|
||||
""|dumb|linux*|vt100*|vt220*) ;;
|
||||
*)
|
||||
zle-keymap-select zle-line-init() {
|
||||
case $KEYMAP in
|
||||
vicmd) print -n -- "\e[2 q";;
|
||||
viins|main) print -n -- "\e[5 q";;
|
||||
esac
|
||||
|
||||
zle reset-prompt
|
||||
zle -R
|
||||
}
|
||||
|
||||
zle-line-finish() {
|
||||
print -n -- "\e[2 q"
|
||||
}
|
||||
|
||||
zle -N zle-line-init
|
||||
zle -N zle-line-finish
|
||||
zle -N zle-keymap-select
|
||||
;;
|
||||
esac
|
||||
|
||||
set-keymap-vi(){
|
||||
export KEYTIMEOUT=1
|
||||
bindkey -v
|
||||
}
|
||||
|
||||
set-keymap-emacs(){
|
||||
bindkey -e
|
||||
bindkey -r "^Q"
|
||||
}
|
||||
|
||||
## Keymap mode
|
||||
set-keymap-emacs
|
||||
|
||||
autoload -Uz select-word-style
|
||||
select-word-style bash
|
||||
|
||||
## Viins
|
||||
bindkey -M viins "^A" beginning-of-line
|
||||
bindkey -M viins "^B" backward-char
|
||||
bindkey -M viins "^D" delete-char-or-list
|
||||
bindkey -M viins "^E" end-of-line
|
||||
bindkey -M viins "^F" forward-char
|
||||
bindkey-multi emacs viins vicmd -- "^G" -- which-command
|
||||
bindkey -M viins "^J" accept-search
|
||||
bindkey -M viins "^K" kill-line
|
||||
bindkey -M viins "^L" clear-screen-and-scrollback
|
||||
bindkey -M viins "^M" accept-line
|
||||
bindkey -M viins "^N" down-line-or-history
|
||||
bindkey -M viins "^P" up-line-or-history
|
||||
bindkey -M viins "^R" history-incremental-search-backward
|
||||
bindkey -M viins "^S" history-incremental-search-forward
|
||||
bindkey -M viins "^T" transpose-chars
|
||||
bindkey-multi emacs viins -- "^W" -- vi-backward-kill-word
|
||||
bindkey -M viins "^U" backward-kill-line
|
||||
bindkey -M emacs "^U" backward-kill-line
|
||||
bindkey -M viins "^Y" yank
|
||||
bindkey-multi emacs viins vicmd -- "^Z" -- fg-widget
|
||||
bindkey -M viins "^_" undo
|
||||
bindkey -M viins "^@" redo
|
||||
bindkey -M viins " " magic-space
|
||||
bindkey -M emacs " " magic-space
|
||||
bindkey -M emacs "^X^[" vi-cmd-mode
|
||||
## Viins alt
|
||||
bindkey -M viins "^[u" undo
|
||||
bindkey -M viins "^[r" redo
|
||||
bindkey -M viins "^[m" copy-prev-shell-word
|
||||
|
||||
## Misc
|
||||
bindkey -M isearch "^J" accept-search 2>/dev/null
|
||||
bindkey -M menuselect "h" vi-backward-char
|
||||
bindkey -M menuselect "k" vi-up-line-or-history
|
||||
bindkey -M menuselect "l" vi-forward-char
|
||||
bindkey -M menuselect "j" vi-down-line-or-history
|
||||
bindkey -M menuselect "^C" send-break
|
||||
bindkey -M menuselect "^J" accept-and-infer-next-history # accept-search
|
||||
bindkey -M menuselect "^M" accept-line
|
||||
|
||||
## Keys for multiple modes and multiple bindings.
|
||||
## https://invisible-island.net/xterm/xterm-function-keys.html
|
||||
##
|
||||
## Shit+Tab
|
||||
bindkey-multi emacs viins menuselect -- "\E[Z" "${terminfo[kcbt]}" \
|
||||
-- reverse-menu-complete
|
||||
## Backspace
|
||||
bindkey-multi emacs viins vicmd menuselect -- "^H" "^?" "${terminfo[kbs]}" \
|
||||
-- backward-delete-char
|
||||
## Home
|
||||
bindkey-multi emacs viins vicmd -- "\E[1~" "\E[7~" "\E[H" "\EOH" \
|
||||
"${terminfo[khome]}" \
|
||||
-- beginning-of-line
|
||||
## Insert
|
||||
bindkey-multi emacs viins vicmd -- "\E[2~" "\E[L" "${terminfo[kich1]}" \
|
||||
-- overwrite-mode
|
||||
## Delete
|
||||
bindkey-multi emacs viins vicmd -- "\E[3~" "\E[P" "\EOP" "${terminfo[kdch1]}" \
|
||||
-- vi-delete-char
|
||||
## End
|
||||
bindkey-multi emacs viins vicmd -- "\E[4~" "\E[8~" "\E[F" "\EOF" \
|
||||
"${terminfo[kend]}" \
|
||||
-- end-of-line
|
||||
## PgUp
|
||||
bindkey-multi emacs viins -- "\E[5~" "\E[I" "${terminfo[kpp]}" \
|
||||
-- beginning-of-buffer-or-history
|
||||
## PgDown
|
||||
bindkey-multi emacs viins -- "\E[6~" "\E[G" "${terminfo[knp]}" \
|
||||
-- end-of-buffer-or-history
|
||||
## Up arrow
|
||||
bindkey-multi emacs viins vicmd -- "\E[A" "\EOA" "${terminfo[kcuu1]}" \
|
||||
-- up-line-or-history
|
||||
## Down arrow
|
||||
bindkey-multi emacs viins vicmd -- "\E[B" "\EOB" "${terminfo[kcud1]}" \
|
||||
-- down-line-or-history
|
||||
## Right arrow
|
||||
bindkey-multi emacs viins vicmd -- "\E[1C" "\E[C" "\EOC" "${terminfo[kcuf1]}" \
|
||||
-- forward-char
|
||||
## Left arrow
|
||||
bindkey-multi emacs viins vicmd -- "\E[D" "\EOD" "${terminfo[kcub1]}" \
|
||||
-- backward-char
|
||||
## Ctrl-Delete
|
||||
bindkey-multi emacs viins vicmd -- "\E[3;5~" "\E[3\^" "${terminfo[kDC5]}" \
|
||||
-- kill-word
|
||||
## Ctrl-RightArrow
|
||||
bindkey-multi emacs viins vicmd -- "\E[1;5C" "\E0c" "${terminfo[kRIT5]}" \
|
||||
-- forward-word
|
||||
## Ctrl-LeftArrow
|
||||
bindkey-multi emacs viins vicmd -- "\E[1;5D" "\E0d" "${terminfo[kLFT5]}" \
|
||||
-- backward-word
|
||||
## F11
|
||||
bindkey-multi emacs viins -- "\E[23~" "${terminfo[kf11]}" -- new-screen
|
||||
|
||||
autoload -Uz edit-command-line
|
||||
zle -N edit-command-line
|
||||
bindkey -M emacs "^[e" edit-command-line
|
||||
bindkey -M emacs "^X^E" edit-command-line
|
||||
bindkey -M vicmd "^E" edit-command-line
|
||||
|
||||
bindkey -M emacs "\ea" change-first-word
|
||||
bindkey -M emacs "^XD" describe-key-briefly
|
||||
|
||||
for binding in ${(f)$(bindkey -M emacs|grep '^"\^X')}; do
|
||||
bindkey -M viins "${(@Qz)binding}"
|
||||
done
|
||||
unset binding
|
||||
|
||||
## Make sure the terminal is in application mode, when zle is active.
|
||||
## Only then are the values from $terminfo valid.
|
||||
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
|
||||
## }}}
|
||||
## {{{ End
|
||||
## Source local zsh configuration.
|
||||
source_readable "$HOME/.zshrc.local"
|
||||
## }}}
|
Loading…
x
Reference in New Issue
Block a user