Add more Vi Motions
| New* | Map | Keybinding | Motion |
|---|---|---|---|
| No | vicmd viins |
\e[H \e[F (Home/End) |
beginning/end of line |
| No | vicmd viopp |
a' a" a` |
select a quoted string or backticks |
| No | vicmd viopp |
i' i" i` |
select in a quoted string or backticks |
| No | vicmd viopp |
a( a[ a{ a< ab a) a] a} a> aB |
select a bracketed segment |
| No | vicmd viopp |
i( i[ i{ i< ib i) i] i} i> iB |
select in a bracketed segment |
| No** | vicmd |
cs ds ys |
change/delete/add surrounding quotes/brackets |
| No | visual |
S |
add surrounding quotes/brackets |
| Yes | viopp |
v[motion] |
Force motion character-wise, or toggle exclusivity (see :h forced-motion in Vim) |
| Yes | vicmd viopp visual |
) ( g) g( |
move forward/back to start/end of command |
| Yes | vicmd viopp |
as aS |
select a command |
| Yes | vicmd viopp |
is iS |
select in a command (exclude terminating ; and control flow words) |
| Yes | vicmd viopp visual |
(Not enabled by default) | Move forward/back to start/end of $WORDCHARS-dependant words |
| Yes | vicmd viopp visual |
(Not enabled by default) | Move forward/back to start/end of shell words |
*("New": Plugins marked as "not new" are distributed with Zsh and are simply loaded by this plugin. Plugins marked as "new" are written and maintained in this repo.)
**(The cs ds ys commands don't work well by default due to KEYTIMEOUT problems/conflicting with the c d y commands. I wrap c d y here, this lets me fix this problem.)
Select in/a command list (Note, [;] is any kind of command terminator)
- Between
[;]while/[;]until/[;]repeatand[;]do/{/( - Between
[;]selectand[;]do/{/( - Between
[;]caseand[;]esac - Between
[;]doand[;]done - Between
[;]if/[;]elifand[;]then - Between
[;]thenand[;]elif/[;]fi - Between
[;]{and}[;]or[;](and)[;]