Question

I intend to fold all the lines ending in { but not classes. So far I have came up with this command :

:%g/.\{-}\(class\)\@!.*{$/normal! zf%

But this would match also the lines containing class.

Était-ce utile?

La solution

There are several problems:

  1. From :help /\@!: "You can't use "\@!" to look for a non-match before the matching position". Use \@<!, include the possible characters in between in there, and drop the useless (because it's not anchored) non-greedy first match.
  2. The :global command places the cursor on the first column of matching lines, so add a $ to make the % work all the time.
  3. Subsequent inner folds must be defined with the outer fold open: zv.

Ergo:

:%g/\%(class.*\)\@<!{$/normal! $zvzf%
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top