Just another little note of "woah, vim already does that"

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Just another little note of "woah, vim already does that"

Tim Chase
I've got a rather large source file for an ETL process containing
several functions (one for each of the files it processes).  There's
enough similarity between the file processing that it's easy to do a
search and end up in the wrong function without noticing.

Knowing vim supported matching/colorizing based on line-numbers, I
started out with

  :match Error /\%<50l\|\%>120l/

to match anything outside the function I was focused on.  But as I'd
edit, those boundaries would change.  So I start grumbling, wishing
that vim supported similar functionality for marks instead of
absolute line numbers. BUT HO!  It DOES!

So I dropped mark "a" at the beginning of my function, dropped mark
"b" at the end of my function, issued

  :match Error /\%<'a\|\%>'b/

and lo, it updates automatically, highlighting the regions outside
the current function.  And when I move to the next function, I drop
the "this is the beginning" and "this is the end" marks, and it
updates.

It continues to delight me that vim still holds new/undiscovered
tricks, even after using vim for ~18yrs now.

Anyways, thought I'd share in case it was useful for anybody else.

-tim




--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Just another little note of "woah, vim already does that"

Arun Easi-2
On Tue, Feb 27, 2018 at 10:34 AM, Tim Chase <[hidden email]> wrote:
I've got a rather large source file for an ETL process containing
several functions (one for each of the files it processes).  There's
enough similarity between the file processing that it's easy to do a
search and end up in the wrong function without noticing.

Knowing vim supported matching/colorizing based on line-numbers, I
started out with

  :match Error /\%<50l\|\%>120l/

to match anything outside the function I was focused on.  But as I'd
edit, those boundaries would change.  So I start grumbling, wishing
that vim supported similar functionality for marks instead of
absolute line numbers. BUT HO!  It DOES!

So I dropped mark "a" at the beginning of my function, dropped mark
"b" at the end of my function, issued

  :match Error /\%<'a\|\%>'b/

and lo, it updates automatically, highlighting the regions outside
the current function.  And when I move to the next function, I drop
the "this is the beginning" and "this is the end" marks, and it
updates.

It continues to delight me that vim still holds new/undiscovered
tricks, even after using vim for ~18yrs now.

Anyways, thought I'd share in case it was useful for anybody else.


Very true, vim always amazes me. The learning is always there which keeps
it ever interesting.

As for the above issue, "folds" are good too.

- goto just before start of function and: zfgg
- after end of function: zfG

To prevent search from opening folds:
  :set foldopen-=search

For running commands that skips closed folds
  :foldd {cmd}

Regards,
-Arun 

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.