mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-04-24 04:29:25 +02:00
add incr plugin
This commit is contained in:
parent
9cba9c01fa
commit
f5bdc77868
1 changed files with 141 additions and 0 deletions
141
custom/plugins/incr/incr.plugin.zsh
Normal file
141
custom/plugins/incr/incr.plugin.zsh
Normal file
|
|
@ -0,0 +1,141 @@
|
||||||
|
|
||||||
|
autoload -U compinit
|
||||||
|
zle -N self-insert self-insert-incr
|
||||||
|
zle -N vi-cmd-mode-incr
|
||||||
|
zle -N vi-backward-delete-char-incr
|
||||||
|
zle -N backward-delete-char-incr
|
||||||
|
zle -N expand-or-complete-prefix-incr
|
||||||
|
compinit
|
||||||
|
|
||||||
|
bindkey -M viins '^[' vi-cmd-mode-incr
|
||||||
|
bindkey -M viins '^h' vi-backward-delete-char-incr
|
||||||
|
bindkey -M viins '^?' vi-backward-delete-char-incr
|
||||||
|
bindkey -M viins '^i' expand-or-complete-prefix-incr
|
||||||
|
bindkey -M emacs '^h' backward-delete-char-incr
|
||||||
|
bindkey -M emacs '^?' backward-delete-char-incr
|
||||||
|
bindkey -M emacs '^i' expand-or-complete-prefix-incr
|
||||||
|
|
||||||
|
unsetopt automenu
|
||||||
|
compdef -d scp
|
||||||
|
compdef -d tar
|
||||||
|
compdef -d make
|
||||||
|
compdef -d java
|
||||||
|
compdef -d svn
|
||||||
|
compdef -d cvs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
now_predict=0
|
||||||
|
|
||||||
|
function limit-completion
|
||||||
|
{
|
||||||
|
if ((compstate[nmatches] <= 1)); then
|
||||||
|
zle -M ""
|
||||||
|
elif ((compstate[list_lines] > 6)); then
|
||||||
|
compstate[list]=""
|
||||||
|
zle -M "too many matches."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function correct-prediction
|
||||||
|
{
|
||||||
|
if ((now_predict == 1)); then
|
||||||
|
if [[ "$BUFFER" != "$buffer_prd" ]] || ((CURSOR != cursor_org)); then
|
||||||
|
now_predict=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function remove-prediction
|
||||||
|
{
|
||||||
|
if ((now_predict == 1)); then
|
||||||
|
BUFFER="$buffer_org"
|
||||||
|
now_predict=0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function show-prediction
|
||||||
|
{
|
||||||
|
|
||||||
|
if
|
||||||
|
((PENDING == 0)) &&
|
||||||
|
((CURSOR > 1)) &&
|
||||||
|
[[ "$PREBUFFER" == "" ]] &&
|
||||||
|
[[ "$BUFFER[CURSOR]" != " " ]]
|
||||||
|
then
|
||||||
|
cursor_org="$CURSOR"
|
||||||
|
buffer_org="$BUFFER"
|
||||||
|
comppostfuncs=(limit-completion)
|
||||||
|
zle complete-word
|
||||||
|
cursor_prd="$CURSOR"
|
||||||
|
buffer_prd="$BUFFER"
|
||||||
|
if [[ "$buffer_org[1,cursor_org]" == "$buffer_prd[1,cursor_org]" ]]; then
|
||||||
|
CURSOR="$cursor_org"
|
||||||
|
if [[ "$buffer_org" != "$buffer_prd" ]] || ((cursor_org != cursor_prd)); then
|
||||||
|
now_predict=1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
BUFFER="$buffer_org"
|
||||||
|
CURSOR="$cursor_org"
|
||||||
|
fi
|
||||||
|
echo -n "\e[32m"
|
||||||
|
else
|
||||||
|
zle -M ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function preexec
|
||||||
|
{
|
||||||
|
echo -n "\e[39m"
|
||||||
|
}
|
||||||
|
|
||||||
|
function vi-cmd-mode-incr
|
||||||
|
{
|
||||||
|
correct-prediction
|
||||||
|
remove-prediction
|
||||||
|
zle vi-cmd-mode
|
||||||
|
}
|
||||||
|
|
||||||
|
function self-insert-incr
|
||||||
|
{
|
||||||
|
correct-prediction
|
||||||
|
remove-prediction
|
||||||
|
if zle .self-insert; then
|
||||||
|
show-prediction
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function vi-backward-delete-char-incr
|
||||||
|
{
|
||||||
|
correct-prediction
|
||||||
|
remove-prediction
|
||||||
|
if zle vi-backward-delete-char; then
|
||||||
|
show-prediction
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function expand-or-complete-prefix-incr
|
||||||
|
{
|
||||||
|
correct-prediction
|
||||||
|
if ((now_predict == 1)); then
|
||||||
|
CURSOR="$cursor_prd"
|
||||||
|
now_predict=0
|
||||||
|
comppostfuncs=(limit-completion)
|
||||||
|
zle list-choices
|
||||||
|
else
|
||||||
|
remove-prediction
|
||||||
|
zle expand-or-complete-prefix-prefix
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function backward-delete-char-incr
|
||||||
|
{
|
||||||
|
correct-prediction
|
||||||
|
remove-prediction
|
||||||
|
if zle backward-delete-char; then
|
||||||
|
show-prediction
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue