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
  • 7,361
  • 3
  • 37
  • 60

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
  • 6
  • 12
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
  • 167,457
  • 16
  • 250
  • 324