3

I have a JSON file and would like to fold it with a toggle (za) at every line with a key called subsection. I thought about using a global command like:

:g/subsection/za

but it doesn't work since a global command expects an editing function as the second argument, and za is not editing.

Any thoughts?

Rich Churcher
  • 6,721
  • 3
  • 33
  • 55

2 Answers2

7

How about: :g/subsection/norm za

From :h :g

To repeat a non-Ex command, you can use the ":normal" command: >
    :g/pat/normal {commands}
wywong
  • 386
  • 7
  • 11
3

For opening / closing folds (at a line / range), there are dedicated Ex commands: :foldopen and :foldclose. Those can be directly used with :global/subsection/foldclose.

If you need to use a normal mode command (like za), you can use :normal! to switch modes: global/subsection/normal! za.

Ingo Karkat
  • 161,022
  • 15
  • 231
  • 302