zshrc.d/60-vi-showmode.zrc
author Mikael Berthe <mikael@lilotux.net>
Sat, 14 Jul 2012 19:20:57 +0200
changeset 0 7215ca490221
child 8 3f68f355bf1a
permissions -rw-r--r--
Re-import repository after cleanup from personal stuff (see description) I've remove too dirty or specific stuff, so that i could put this configuration on a public repo. Here's a copy of the initial Mercurial changelog, FWIW... * (2012-07-14) Mikael Berthe Reorganize all scripts * (2012-07-14) Mikael Berthe Add a "tools" directory * (2012-07-14) Mikael Berthe Don't use ^X^C as a keybinding * (2012-07-14) Mikael Berthe Disable ... completion for now * (2012-07-14) Mikael Berthe Add rehash key binding * (2012-07-14) Mikael Berthe Add n fix a few key bindings * (2012-07-14) Mikael Berthe More cleanup Remove zshrc_compinstall Move personnal stuff to zshrc_local * (2012-07-14) Mikael Berthe New commands: ...* Previous commands .. and ... have been renamed to ,, and ,,, * (2012-07-14) Mikael Berthe Add WATCHFMT, move REPORTTIME to zshenv * (2012-07-14) Mikael Berthe Add REPORTTIME * (2012-07-13) Mikael Berthe Add a few useful functions Ideas borrowed from https://github.com/whiteinge/dotfiles/blob/master/.zshrc * (2012-07-13) Mikael Berthe Move aliases to a new file * (2012-07-13) Mikael Berthe Check for zshrc_local existence * (2012-07-13) Mikael Berthe Cleanup vcsinfo prompt * (2012-07-12) Mikael Berthe Colorize time in default color prompt as well * (2012-07-12) Mikael Berthe Prompt: colorize time * (2012-07-12) Mikael Berthe Add a copy of git-prompt.sh * (2012-07-12) Mikael Berthe Update prompt themes Since we do not display the mode on the first line, let's use this place for the date/time. * (2012-07-12) Mikael Berthe Update prompts / new showmode * (2012-07-12) Mikael Berthe More showmode cleanup, part2 * (2012-07-12) Mikael Berthe Switch showmode to using RPROMPT, part1 * (2012-07-12) Mikael Berthe Prompt: many improvements and fixes * (2012-07-11) Mikael Berthe More prompt code cleanup * (2012-07-11) Mikael Berthe More readable prompt generation * (2012-07-11) Mikael Berthe Dynamic path color * (2012-07-11) Mikael Berthe New prompt based on Zsh' vcs_info module * (2012-07-10) Mikael Berthe Add git info, add a light dev2 prompt * (2012-07-10) Mikael Berthe Dev prompt: Improve Mercurial repository detection * (2012-07-08) Mikael Berthe hg prompt: Change color of unapplied patches * (2012-07-08) Mikael Berthe Change Mercurial prompt format * (2012-07-08) Mikael Berthe Try to improve showmode support. Enable it for 256 color terms. * (2012-07-08) Mikael Berthe Fix interaction between showmode and the new "dev" prompt When showmode is disabled (e.g. in screen), do not display the mode in PS1. * (2012-07-08) Mikael Berthe Add development prompt (HG and minimal git support) Can be set up from the shell command line with "prompt_set_dev". * (2012-07-08) Mikael Berthe Ignore Vim swap files * (2009-12-22) Mikael Berthe Slight update zlog{in,out} * (2009-12-22) Mikael Berthe Add zlogin * (2009-12-22) Mikael Berthe Update hgignore list * (2009-12-22) Mikael Berthe Initial import into Mercurial
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"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    50
   builtin zle .redisplay
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    51
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    52
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    53
zle -N screenclear
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    54
bindkey "" screenclear
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
function zle-line-finish {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    57
   export RPS1="$__string_insert"
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
zle -N zle-line-finish
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    60
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    61
show_mode() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    62
   export RPS1=$1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    63
   builtin zle reset-prompt
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    64
   return
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    65
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    66
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    67
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    68
###       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
    69
###              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
    70
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    71
vi-add-eol() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    72
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    73
   builtin zle .vi-add-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    74
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    75
zle -N vi-add-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    76
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
    77
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    78
###       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
    79
###              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
    80
###              tion, without changing lines.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    81
vi-add-next() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    82
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    83
   builtin zle .vi-add-next
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    84
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    85
zle -N vi-add-next
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    86
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
    87
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    88
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    89
###       vi-change (unbound) (c) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    90
###              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
    91
###              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
    92
###              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
    93
###              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
    94
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    95
vi-change() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    96
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    97
   builtin zle .vi-change
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    98
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    99
zle -N vi-change
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   100
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
   101
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   102
###       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
   103
###              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
   104
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   105
vi-change-eol() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   106
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   107
   builtin zle .vi-change-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   108
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   109
zle -N vi-change-eol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   110
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
   111
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   112
###       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
   113
###              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
   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() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   116
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   117
   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
   118
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   119
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
   120
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
   121
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   122
###       vi-insert (unbound) (i) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   123
###              Enter insert mode.
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() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   126
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   127
   builtin zle .vi-insert
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   128
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   129
zle -N vi-insert
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   130
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
   131
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   132
###       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
   133
###              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
   134
###              and enter insert mode.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   135
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   136
vi-insert-bol() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   137
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   138
   builtin zle .vi-insert-bol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   139
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   140
zle -N vi-insert-bol
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   141
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
   142
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   143
###       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
   144
###              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
   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() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   147
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   148
   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
   149
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   150
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
   151
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
   152
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   153
###       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
   154
###              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
   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() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   157
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   158
   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
   159
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   160
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
   161
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
   162
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   163
###       vi-substitute (unbound) (s) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   164
###              Substitute the next character(s).
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() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   167
   show_mode "$__string_insert"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   168
   builtin zle .vi-substitute
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   169
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   170
zle -N vi-substitute
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   171
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
   172
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   173
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   174
###       vi-replace (unbound) (R) (unbound)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   175
###              Enter overwrite mode.
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   178
vi-replace() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   179
   show_mode "$__string_replace"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   180
   builtin zle .vi-replace
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   181
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   182
zle -N vi-replace
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   183
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
   184
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   185
###       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
   186
###              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
   187
###              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
   188
###              mode.
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
vi-cmd-mode() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   191
   show_mode "$__string_normal"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   192
   builtin zle .vi-cmd-mode
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   193
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   194
zle -N vi-cmd-mode
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   195
bindkey -M viins "" vi-cmd-mode
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   196
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-oper-swap-case
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   199
###              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
   200
###              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
   201
###              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
   202
###              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
   203
###              characters on the current line.
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
bindkey -M vicmd "g~" vi-oper-swap-case
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   207
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   208
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   209
bindkey -M vicmd "[2~" vi-insert
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   210
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
   211
bindkey -M vicmd '[5~' history-beginning-search-backward # PgUp
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   212
bindkey -M vicmd '[6~' history-beginning-search-forward  # PgDn
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   213
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   214
bindkey -M viins '[5~' history-beginning-search-backward # PgUp
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   215
bindkey -M viins '[6~' history-beginning-search-forward  # PgDn
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   216
bindkey -M viins '[7~' beginning-of-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   217
bindkey -M viins '[8~' end-of-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   218
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
   219
bindkey -M viins '^E'    end-of-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   220
bindkey -M viins '[3~' delete-char
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   221
bindkey -M viins ''  up-line-or-history
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   222
bindkey -M viins ''  down-line-or-history
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   223
bindkey -M viins '^Xc'   copy-prev-word
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   224
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
   225
bindkey -M viins '^_'    undo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   226
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
   227
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
   228
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
   229
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
   230
bindkey -M viins '^Xm'   _most_recent_file
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   231
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   232
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
   233
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   234
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   235
if [[ -z ${TERM:#screen} ]]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   236
  bindkey -M viins '[1~'  beginning-of-line   # Home
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   237
  bindkey -M viins '[4~'  end-of-line         # End
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   238
fi
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   239
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   240
# 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
   241
autoload edit-command-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   242
zle -N edit-command-line
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   243
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
   244
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   245
export RPS1="$__string_insert"