zshrc.d/60-vi-showmode.zrc
author Mikael Berthe <mikael@lilotux.net>
Wed, 10 Nov 2021 10:45:00 +0100
changeset 53 4767c5a8b1f9
parent 52 1f3d221e1770
permissions -rw-r--r--
Add stterm key codes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     1
#
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     2
# Vi Mode
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     3
# This is an old script I have been updating/customizing over
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     4
# the time, I'm unable to mention the original author.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     5
# Let me know if you know who I should give the credits to.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     6
#
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     7
# This mode can be enabled/disabled using the variable
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     8
# $SHOWMODE in your $ZDOTLOCALDIR/zshrc.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     9
#
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    10
# MiKael
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    11
#
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    12
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    13
if [[ $SHOWMODE != "on" ]]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    14
    # Vi showmode is not enabled--skipping file
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    15
    return 0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    16
fi
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    17
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    18
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    19
#####################
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    20
# Vim-like showmode #
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    21
#####################
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    22
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    23
# vi keybindings
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    24
bindkey -v
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    25
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    26
bindkey -M vicmd "^R" redo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    27
bindkey -M vicmd "u" undo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    28
bindkey -M vicmd "ga" what-cursor-position
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    29
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    30
unsetopt promptcr
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    31
setopt transient_rprompt
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    32
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    33
__string_insert="--INSERT--"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    34
__string_normal="--NORMAL--"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    35
__string_replace="--REPLACE-"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    36
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    37
redisplay-insert() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    38
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    39
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    40
redisplay-normal() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    41
   show_mode "$__string_normal"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    42
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    43
zle -N redisplay-insert
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    44
zle -N redisplay-normal
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    45
bindkey -M viins "^X^R" redisplay-insert
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    46
bindkey -M vicmd "^X^R" redisplay-normal
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    47
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    48
screenclear () {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    49
   echo -n "\033[2J\033[400H"
19
e0948736d271 Vi mode: don't bind ^L
Mikael Berthe <mikael@lilotux.net>
parents: 17
diff changeset
    50
   # 2J = Erase All
e0948736d271 Vi mode: don't bind ^L
Mikael Berthe <mikael@lilotux.net>
parents: 17
diff changeset
    51
   # 400H = Cursor at the bootom
e0948736d271 Vi mode: don't bind ^L
Mikael Berthe <mikael@lilotux.net>
parents: 17
diff changeset
    52
   # (Use \033[H to move the cursor to the first line...)
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    53
   builtin zle .redisplay
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    54
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    55
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    56
zle -N screenclear
19
e0948736d271 Vi mode: don't bind ^L
Mikael Berthe <mikael@lilotux.net>
parents: 17
diff changeset
    57
#bindkey "^L" screenclear
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    58
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    59
function zle-line-finish {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    60
   export RPS1="$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    61
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    62
zle -N zle-line-finish
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    63
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    64
show_mode() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    65
   export RPS1=$1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    66
   builtin zle reset-prompt
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    67
   return
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    68
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    69
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    70
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    71
###       vi-add-eol (unbound) (A) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    72
###              Move  to the end of the line and enter insert mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    73
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    74
vi-add-eol() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    75
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    76
   builtin zle .vi-add-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    77
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    78
zle -N vi-add-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    79
bindkey -M vicmd "A" vi-add-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    80
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    81
###       vi-add-next (unbound) (a) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    82
###              Enter insert mode after the  current  cursor  posi­
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    83
###              tion, without changing lines.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    84
vi-add-next() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    85
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    86
   builtin zle .vi-add-next
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    87
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    88
zle -N vi-add-next
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    89
bindkey -M vicmd "a" vi-add-next
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    90
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    91
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    92
###       vi-change (unbound) (c) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    93
###              Read a movement command from the keyboard, and kill
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    94
###              from  the  cursor  position  to the endpoint of the
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    95
###              movement.  Then enter insert mode.  If the  command
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    96
###              is vi-change, change the current line.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    97
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    98
vi-change() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    99
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   100
   builtin zle .vi-change
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   101
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   102
zle -N vi-change
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   103
bindkey -M vicmd "c" vi-change
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   104
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   105
###       vi-change-eol (unbound) (C) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   106
###              Kill  to the end of the line and enter insert mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   107
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   108
vi-change-eol() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   109
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   110
   builtin zle .vi-change-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   111
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   112
zle -N vi-change-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   113
bindkey -M vicmd "C" vi-change-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   114
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   115
###       vi-change-whole-line (unbound) (S) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   116
###              Kill the current line and enter insert mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   117
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   118
vi-change-whole-line() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   119
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   120
   builtin zle .vi-change-whole-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   121
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   122
zle -N vi-change-whole-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   123
bindkey -M vicmd "S" vi-change-whole-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   124
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   125
###       vi-insert (unbound) (i) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   126
###              Enter insert mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   127
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   128
vi-insert() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   129
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   130
   builtin zle .vi-insert
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   131
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   132
zle -N vi-insert
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   133
bindkey -M vicmd "i" vi-insert
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   134
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   135
###       vi-insert-bol (unbound) (I) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   136
###              Move to the first non-blank character on  the  line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   137
###              and enter insert mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   138
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   139
vi-insert-bol() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   140
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   141
   builtin zle .vi-insert-bol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   142
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   143
zle -N vi-insert-bol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   144
bindkey -M vicmd "I" vi-insert-bol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   145
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   146
###       vi-open-line-above (unbound) (O) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   147
###              Open a line above the cursor and enter insert mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   148
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   149
vi-open-line-above() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   150
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   151
   builtin zle .vi-open-line-above
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   152
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   153
zle -N vi-open-line-above
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   154
bindkey -M vicmd "O" vi-open-line-above
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   155
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   156
###       vi-open-line-below (unbound) (o) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   157
###              Open a line below the cursor and enter insert mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   158
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   159
vi-open-line-below() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   160
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   161
   builtin zle .vi-open-line-below
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   162
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   163
zle -N vi-open-line-below
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   164
bindkey -M vicmd "o" vi-open-line-below
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   165
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   166
###       vi-substitute (unbound) (s) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   167
###              Substitute the next character(s).
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   168
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   169
vi-substitute() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   170
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   171
   builtin zle .vi-substitute
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   172
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   173
zle -N vi-substitute
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   174
bindkey -M vicmd "s" vi-substitute
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   175
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   176
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   177
###       vi-replace (unbound) (R) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   178
###              Enter overwrite mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   179
###
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   180
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   181
vi-replace() {
47
f25fda256b1d Improve vi mode
Mikael Berthe <mikael.berthe@cnamts.fr>
parents: 45
diff changeset
   182
   if [[ $ZLE_STATE == *overwrite* ]]; then # Switch back to insert mode
f25fda256b1d Improve vi mode
Mikael Berthe <mikael.berthe@cnamts.fr>
parents: 45
diff changeset
   183
       builtin zle .vi-insert
f25fda256b1d Improve vi mode
Mikael Berthe <mikael.berthe@cnamts.fr>
parents: 45
diff changeset
   184
       redisplay-insert
f25fda256b1d Improve vi mode
Mikael Berthe <mikael.berthe@cnamts.fr>
parents: 45
diff changeset
   185
       return
f25fda256b1d Improve vi mode
Mikael Berthe <mikael.berthe@cnamts.fr>
parents: 45
diff changeset
   186
   fi
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   187
   show_mode "$__string_replace"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   188
   builtin zle .vi-replace
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   189
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   190
zle -N vi-replace
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   191
bindkey -M vicmd "R" vi-replace
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   192
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   193
###       vi-cmd-mode (^X^V) (unbound) (^[)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   194
###              Enter  command  mode;  that  is, select the `vicmd'
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   195
###              keymap.  Yes, this is bound  by  default  in  emacs
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   196
###              mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   197
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   198
vi-cmd-mode() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   199
   show_mode "$__string_normal"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   200
   builtin zle .vi-cmd-mode
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   201
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   202
zle -N vi-cmd-mode
45
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   203
bindkey -M viins "^[" vi-cmd-mode
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   204
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   205
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   206
###       vi-oper-swap-case
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   207
###              Read a movement command from the keyboard, and swap
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   208
###              the case of all characters from the cursor position
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   209
###              to the endpoint of the movement.  If  the  movement
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   210
###              command  is vi-oper-swap-case, swap the case of all
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   211
###              characters on the current line.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   212
###
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   213
45
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   214
# Specific to command mode
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   215
bindkey -M vicmd "g~"    vi-oper-swap-case
17
448a96dfa3e6 Add vi mappings guw/gUw
Mikael Berthe <mikael@lilotux.net>
parents: 14
diff changeset
   216
bindkey -M vicmd 'guw'   down-case-word
448a96dfa3e6 Add vi mappings guw/gUw
Mikael Berthe <mikael@lilotux.net>
parents: 14
diff changeset
   217
bindkey -M vicmd 'gUw'   up-case-word
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   218
47
f25fda256b1d Improve vi mode
Mikael Berthe <mikael.berthe@cnamts.fr>
parents: 45
diff changeset
   219
bindkey -M vicmd '^[[2~' vi-insert
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   220
bindkey -M vicmd 'q'     push-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   221
45
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   222
# Specific to insert mode
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   223
bindkey -M viins '^A'    beginning-of-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   224
bindkey -M viins '^E'    end-of-line
45
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   225
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   226
bindkey -M viins '^[[5~' history-beginning-search-backward # PgUp
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   227
bindkey -M viins '^[[6~' history-beginning-search-forward  # PgDn
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   228
47
f25fda256b1d Improve vi mode
Mikael Berthe <mikael.berthe@cnamts.fr>
parents: 45
diff changeset
   229
bindkey -M viins '^[[2~' vi-replace
f25fda256b1d Improve vi mode
Mikael Berthe <mikael.berthe@cnamts.fr>
parents: 45
diff changeset
   230
45
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   231
bindkey -M viins '^[[A'  up-line-or-history
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   232
bindkey -M viins '^[[B'  down-line-or-history
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   233
30
e26330cd408f Use copy-prev-shell-word instead of copy-prev-word
Mikael Berthe <mikael@lilotux.net>
parents: 19
diff changeset
   234
bindkey -M viins '^Xc'   copy-prev-shell-word
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   235
bindkey -M viins '^Xf'   _correct_filename
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   236
bindkey -M viins '^_'    undo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   237
bindkey -M viins '^K'    vi-change-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   238
bindkey -M viins '^R'    history-incremental-search-backward
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   239
bindkey -M viins '^O'    accept-line-and-down-history
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   240
bindkey -M viins '^T'    transpose-chars
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   241
bindkey -M viins '^Xm'   _most_recent_file
14
77db3f389db7 Add history-complete-older/newer shortcuts for vi mode
Mikael Berthe <mikael@lilotux.net>
parents: 8
diff changeset
   242
bindkey -M viins '^P'    _history-complete-older
77db3f389db7 Add history-complete-older/newer shortcuts for vi mode
Mikael Berthe <mikael@lilotux.net>
parents: 8
diff changeset
   243
bindkey -M viins '^N'    _history-complete-newer
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   244
45
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   245
# Both modes
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   246
bindkey -M viins '^[[7~' beginning-of-line
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   247
bindkey -M vicmd '^[[7~' beginning-of-line
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   248
bindkey -M viins '^[[8~' end-of-line
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   249
bindkey -M vicmd '^[[8~' end-of-line
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   250
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   251
bindkey -M viins '^[[H'  beginning-of-line
52
1f3d221e1770 vi mode: Add missing beginning-of-line key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 51
diff changeset
   252
bindkey -M viins '^[[F'  end-of-line
45
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   253
bindkey -M vicmd '^[[H'  beginning-of-line
52
1f3d221e1770 vi mode: Add missing beginning-of-line key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 51
diff changeset
   254
bindkey -M vicmd '^[[F'  end-of-line
51
d6bcd9c33307 Fix previous fix!
Mikael Berthe <mikael@lilotux.net>
parents: 50
diff changeset
   255
bindkey -M viins '^[OH'  beginning-of-line
52
1f3d221e1770 vi mode: Add missing beginning-of-line key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 51
diff changeset
   256
bindkey -M viins '^[OF'  end-of-line
1f3d221e1770 vi mode: Add missing beginning-of-line key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 51
diff changeset
   257
bindkey -M vicmd '^[OH'  beginning-of-line
51
d6bcd9c33307 Fix previous fix!
Mikael Berthe <mikael@lilotux.net>
parents: 50
diff changeset
   258
bindkey -M vicmd '^[OF'  end-of-line
45
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   259
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   260
bindkey -M viins '^[[3~' delete-char
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   261
bindkey -M vicmd '^[[3~' delete-char
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   262
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   263
bindkey -M viins -s '^X^H' 'hash -r\n'
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   264
8
3f68f355bf1a Update ..* commands
Mikael Berthe <mikael@lilotux.net>
parents: 0
diff changeset
   265
# These bindings depend on the ftzle script
3f68f355bf1a Update ..* commands
Mikael Berthe <mikael@lilotux.net>
parents: 0
diff changeset
   266
bindkey -M viins "^X^W" backward-kill-to-slash
3f68f355bf1a Update ..* commands
Mikael Berthe <mikael@lilotux.net>
parents: 0
diff changeset
   267
bindkey '^I' ft-complete
3f68f355bf1a Update ..* commands
Mikael Berthe <mikael@lilotux.net>
parents: 0
diff changeset
   268
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   269
47
f25fda256b1d Improve vi mode
Mikael Berthe <mikael.berthe@cnamts.fr>
parents: 45
diff changeset
   270
if [[ $TERM == screen* || $TERM == tmux* ]]; then
45
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   271
  bindkey -M viins '^[[1~'  beginning-of-line   # Home
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   272
  bindkey -M vicmd '^[[1~'  beginning-of-line   # Home
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   273
  bindkey -M viins '^[[4~'  end-of-line         # End
c8b92fa96f48 Update key bindings
Mikael Berthe <mikael@lilotux.net>
parents: 30
diff changeset
   274
  bindkey -M vicmd '^[[4~'  end-of-line         # End
53
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 52
diff changeset
   275
elif [[ $TERM == st || $TERM == st-* ]]; then
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 52
diff changeset
   276
    bindkey -M viins '^[[H'  beginning-of-line
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 52
diff changeset
   277
    bindkey -M vicmd '^[[H'  beginning-of-line
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 52
diff changeset
   278
    bindkey -M viins '^[[4~' end-of-line    # End with stterm
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 52
diff changeset
   279
    bindkey -M vicmd '^[[4~' end-of-line    # End with stterm
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 52
diff changeset
   280
    bindkey -M viins '^[[P'  delete-char    # Del with stterm
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 52
diff changeset
   281
    bindkey -M vicmd '^[[P'  delete-char    # Del with stterm
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 52
diff changeset
   282
    bindkey -M viins '^[[4h' vi-replace     # Ins with stterm
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 52
diff changeset
   283
    bindkey -M vicmd '^[[4h' vi-insert
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   284
fi
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   285
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   286
# Edit the command line using your usual editor.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   287
autoload edit-command-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   288
zle -N edit-command-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   289
bindkey -M vicmd v edit-command-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   290
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   291
export RPS1="$__string_insert"