Skip to content

Inconsistency with repeated motion #7

@chaoren

Description

@chaoren

Let ( ) denote the cursor position and [ ] denote visual selection.

Consider this behavior of word objects:

f(o)o bar -> viw -> [fo(o)] bar -> iw -> [foo( )]bar -> iw -> [foo ba(r)]
f(o)o bar -> v3iw -> [foo ba(r)]
f(o)o bar baz -> vaw -> [foo( )]bar baz -> aw -> [foo bar( )]baz -> aw -> [foo bar ba(z)]
f(o)o bar baz -> v3aw -> [foo bar ba(z)]

By analogy, your plugin should behave like this:

^f(o)o$           [^foo($)]          [^foo$          [^foo$
^$      -> vii ->  ^$       -> ii ->  ^($)] -> ii ->  ^$
^bar$              ^bar$              ^bar$           ^bar($)]

^f(o)o$            [^foo$
^$      -> v3ii ->  ^$
^bar$               ^bar($)]

^f(o)o$           [^foo$            [^foo$          [^foo$
^$                 ^($)]             ^$              ^$
^bar$   -> vai ->  ^bar$   -> ai ->  ^bar$ -> ai ->  ^bar$
^$                 ^$                ^($)]           ^$
^baz$              ^baz$             ^baz$           ^baz($)]

^f(o)o$            [^foo$
^$                  ^$
^bar$   -> v3ai ->  ^bar$
^$                  ^$
^baz$               ^baz($)]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions