Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/julian/vim-textobj-variable-segment

A text object to turn foo_bar_baz into foo_baz *and* quuxSpamEggs into quuxEggs *and* shine your shoes
https://github.com/julian/vim-textobj-variable-segment

neovim neovim-plugin text-object vim vim-plugin vim-textobj-user vim-textobject

Last synced: about 12 hours ago
JSON representation

A text object to turn foo_bar_baz into foo_baz *and* quuxSpamEggs into quuxEggs *and* shine your shoes

Awesome Lists containing this project

README

        

# vim-textobj-variable-segment

A vim plugin providing a single text object (on `iv` and `av`) for
variable segments. A variable segment is defined to be a substring in
any identifier character followed by an underscore ("snake case") or
a lowercase identifier character followed by an uppercase character
("camel case").

E.g.:

foo_ba|r_baz -> civquux -> foo_quux_baz
QU|UX_SPAM -> civLOTS_OF -> LOTS_OF_SPAM
eggsAn|dCheese -> civOr -> eggsOrCheese
_privat|e_thing -> civone -> _one_thing

foo_ba|r_baz -> dav -> foo_baz
QU|UX_SPAM -> dav -> SPAM
eggsAn|dCheese -> dav -> eggsCheese
_privat|e_thing -> dav -> _thing

It will also preserve case for small camels when initial segments are deleted
(with `av`):

_g|etJiggyYo -> dav -> _jiggyYo

Requires [vim-textobj-user](https://github.com/kana/vim-textobj-user).