Whisk together the olive oil, garlic, ginger, lemon zest and some salt and pepper in a small bowl.
Put the swordfish in a large bowl. Put the onions, courgette and tomatoes in another large bowl. Evenly divide the olive oil mixture between the two bowls and toss to coat. Cover and let marinate for about 30 minutes to 1 hour at room temperature.
If you're using wooden skewers, soak them in water for at least 30 minutes before you start cooking.
Preheat a grill over medium-high heat (or light your fire and get your braai ready!).
Meanwhile, thread the swordfish onto the skewers, alternating with the onions, courgettes and tomatoes.
Brush the grill/braai grates with oil. Place the kebabs on the grill/braai, sprinkle with salt and pepper, and grill/braai until lightly charred and grill-marked and the swordfish is cooked through, 3 to 5 minutes per side.