Skip to content

Remove yank behavior of c and d #3001

Description

@samholmes

I think Vim made a mistake by letting c and d pollute the default register by "yanking" the contents of the change or deletion. I'll make a short case as to why I think Helix should make a bold decision to not do this like vim (and maybe even kak).

Why not?

The reason why d and c should not also yank is simple, because you can yank before d and c easily with y. You cannot as easily "prevent yank" without knowing about registers and particularly the black-hole register "_; so you're left with "_d or "_c which is too often a use-case to make it not the default behavior. The times when you want to yank before a modification is easily opt-in with yd and yc. Simply put, the answer why the default behavior should be inverted: it's the correct UX.

Note, in View mode, y does not remove the selection like it does in vim. This positions Helix to be able to even consider the correct behavior.

With the correct default behavior in place, users can edit happily knowing that when they copy something to their default register many modifications back in their history, they will not accidentally overwrite the default register with d and c. The foot-gun has been holstered.

How do we migrate?

Some users (vim and kak alike) will not expect this change and will perhaps not like to modify their habit. However, this could easily be mitigated with a config to change the default behavior back (which is what user's do already). If a user doesn't like the position Helix makes, they can modify the behavior or change their habits.

Please.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-keymapArea: Keymap and keybindingsC-discussionCategory: Discussion or questions that doesn't represent real issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions