Sublime Forum

Vintage "d" Behavior

#1

It looks like there’s a bit of an issue getting the behavior of the “d” key to match Vim’s. Right now, if a selection is larger than 1 line, “d” will delete the entirety of those lines, instead of the selected characters. This becomes problematic when trying to do something like “di(” on a function definition that spans two lines, like this:

void FooBar::DoThing(std::pair<LongType, LongType> LongArgument IndentedArgument 2 LongArgument2)
Type “di)”
Instead of getting:

void FooBar::DoThing()

The entire function is deleted.

This is due to the “motion_mode”: “auto_line” setting, but when that’s disabled, motions like “dj” and “dk” work improperly – instead of deleting the whole lines, they now only delete portions. It’s a bit of a tricky spot! Any possibility of a fix?

0 Likes

#2

This seems indeed related to the way text objects like ‘i’ are dealt with. This also breaks the ‘y’ command for me.

0 Likes