Skip to content

Inconsistent behaviour of w motion #13095

@Ashwini6516

Description

@Ashwini6516

NOTE: i may be saying w or e as the opposite of what they do as i have them set to subwords and i may have set them differently and i also might be saying the _end and _start thingy as i am going off of memory

So, when doing e ->block goes to last character of the word in that case you do a or as i like to ;a to get rid of selection
w ->you go to the whitespace after the end of the word so you go ;i

But when there is a comma at the end of word
in both w and e the block goes to the last character of the word

I don't think they should behave differently in this case, it would be much more helpful in editing if it selected the comma as well

e by default is "move_next_word_end"
w by default is "move_next_word_start"

Also something i have is

[editor.cursor-shape]
insert = "bar"

insert mapping:

  1. c-left = ["move_next_sub_word_end", "collapse_selection"]
    or
  2. c-left = ["move_next_sub_word_start", "collapse_selection"]

if the word doesn't have a comma at the end -> 1 puts cursor after the last character and 2 put the cursor before the last character
if the word does have a comma at the end -> 1 and 2 both do the same thing i.e, put the cursor before the last character of the word(1 should put the cursor after the last character of the word)

I think it should do what it says it does and always be consistent
c-left that I et up is not big deal as i plan to abandon it but this also screw up key binds like
key = ["do_stuff", "insert_mode", "move_next_word_end", "do stuff"]
you have to work around it by doing
key = ["do_stuff",,"insert_mode", "do_stuff", "normal_mode", "move_next_word_end", "append", "collapase_selection", "do stuff"]

W or "move_next_long_word_end" doesn't work as i want it to go by sub word so what i want is to just place the block on the comma(bar after the last character of word) when doing w or e whichever is the correct one. Dont wanna have a seperate keybind for it

IIRC neovim also does this
dw to remove the word with the comma
de to remove the word
which is definitely exactly what i want as it makes me much faster

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions