How to make a text object/motion with begining and ending pattern in Vim -
How to make a text object/motion with begining and ending pattern in Vim -
i define text object iw
, ab
, other ones listed in :help text-objects
defines area origin pattern , ending another. more precisely, define text object starts {pattern1}
, ends {pattern2}
. patterns included. of import can stretch on multiple lines (like ab
unlike a"
).
the examples have in mind selecting in-line equations in latex, is, between 1 $
, next $
(including $
's), , selecting latex environments between \begin{*}
, next \end{*}
, *
here string of characters (but non-greedy \{-}
in vim regex).
i have tried tried @ this guide @ vim tips wiki, not know how replace [z
, ]z
searches backwards pattern , forwards patters, respectively, works want to.
so give illustration of inline equation (lets text obejct called ad
), then, if cursor placed somewhere between $
's in next line:
it follows $ \sum_{n=0}^\infty 2^{-n} $ 2
in normal mode, , vad
pressed, $ \sum_{n=0}^\infty 2^{-n} $
should in visual, or if dad
pressed should deleted.
the mentioned vim tips wiki page lists 2 plugins (under "related scripts") create defining new text objects easy:
textobj-user flexible , generic countjump plugin (by me) specially written text objects defined start , end patternsthe next phone call defines ad
text object text within $...$
:
call countjump#textobject#makewithcountsearch('', 'd', 'a', 'v', '\$', '\$')
vim
Comments
Post a Comment