Cut all the fish and veggies into similar-sized pieces; this helps everything lay flat when it is on the grill.
Marinate the fish and vegetables: To make the marinade, purée the chopped onion, rosemary, garlic, salt and pepper in a food processor. Drizzle in the olive oil while puréeing, continue to purée until smooth, about 1-2 minutes. Coat the fish and veggies in the marinade. Set in the fridge for at least an hour and up to overnight.
Thread onto skewers: When skewering the fish and vegetables, pierce the fish against the grain, and select pieces of veggies that are close to the same size as your fish. This is important, because if the pieces are different widths, some things will be charred and others undercooked.
Grill on high, direct heat: Prepare the grill for high, direct heat. Clean the grates and wipe them down with a paper towel that has been dipped in vegetable oil. Lay the skewers on the grill.
Don’t move them until the fish pieces are well browned on one side, about 3-6 minutes.
Then using tongs, carefully turn the skewers over and cook them until they are seared on the other side.
Serve hot or at room temperature.
Drizzle with lemon juice or serve with lemon wedges.