feat: add support for 'tildeop' option (~ as operator)#9993
Merged
Conversation
J-Fields
reviewed
May 26, 2026
J-Fields
reviewed
May 26, 2026
reliying on doesActionApply we conditionally treat `~` as: - command - operator - motion (when used after an operator)
0170707 to
2962c9a
Compare
Contributor
Author
|
Applied the requested changes and re-ran the tests successfully. Thanks for the review! |
J-Fields
reviewed
Jun 1, 2026
J-Fields
reviewed
Jun 1, 2026
J-Fields
reviewed
Jun 1, 2026
J-Fields
reviewed
Jun 1, 2026
J-Fields
reviewed
Jun 1, 2026
… check
createsUndoPoint is unnecesary, its true in base class
TildeMotion is unnecesary:
its only purpose is to handle {operator}~
the ~~ case and is the only one that makes sense but the ~~ path already
works completely independently through a different mechanism
configuration.tildeop:
fixes g~~ in tildeop=false
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
add support for the
tildeopoption, allowing~to behave as an operator when enabled, matching Vim behavior.When
tildeop = false(default):~toggles the case of a single character (unchanged behavior)When
tildeop = true:~acts as an operator and requires a motion (e.g.~w,~$)~~toggles the entire lineg~continues to work as beforeIn Visual and Visual Line modes:
~always toggles the selected text (independent oftildeop)Implementation details
vim.tildeopconfiguration option~as:g~)Tests
Added tests covering:
tildeop = false)~w,~$,2~w)~~,g~~):set tildeop/:set notildeopThis implementation Closes #3094