a) Dodge her Q with your own Q, that immediately shuts down a lot of her initiation power over you, and that's really her main advantage over you; initiation power. Negate it, and you can do some serious hurt in the ensuing auto attack brawl.
b) Yes and no. You can't compete with Vi in areas Vi does best, in this case ganking. It's really bad logic if you think about it; Vi has a lot of power in ganking, Yi doesn't. Why would you intentionally handicap yourself then by trying to gank as Yi trying to outdo Vi?
tl;dr at the bottom
What you want to do is keep your eyes open for lanes you can freeze or reset. Yi's Waveclear is superior to Vi's, in my opinion, and his freezing capabilities are so much safer since he has two tools to counter burst; his Q and his W. To sum up, be sure to give your laners a lot of breathing room. If your laners drop below 40-50%, ask them in chat if you can hold their lane for them while they go back and heal up. What this does is give Vi far fewer targets to hunt down - Full Health Targets does not a easy gank make. Once the laners leave lane, all you need to do at this point is freeze properly. Excuse my cynicism here while I explain what freezing is - Basically, don't let your tower touch the minions, but do not kill so many of the opponent's minions that the lane pushes in the enemy laner's direction. Done correctly, by the time the laner comes back to lane, there will be a gigantic enemy minion wave waiting for them which gives them a butt ton of gold, ensuring that they don't fall behind just because they left lane for a while. The other option, resetting the wave, has different implications depending on the scenario, so this is a trick you're going to need to learn by yourself, but the short version basically goes like this. Let's say your laner just won a huge fight, maybe burned the enemy summoners maybe even kill the enemy laner, but they're so low on health they need to go back immediately. What happens now is that you have a dead lane, nobody on your team and nobody on their team. If you ignore a dead lane for too long however, there's a good chance that the minions may stack up, and the enemy laner can get a lot of gold depending on how the minions stack up. To completely negate this, what you want to do is run to the dead lane while nobody is there and shove it as fast as possible so that the enemy tower starts killing your minions. What happens now is that since all the minions are killed by the tower, the enemy laner doesn't benefit them. Even better though, is that the tower killing your minions causes the minion wave to shove in your ally's direction, ideally meaning that they can get more gold out of it than their enemy laner.
tl;dr: Hold the lane for a laner if they need to heal, and if you're holding a lane, freeze it. If an enemy laner isn't in lane (for example they just got killed), you want to shove the lane as fast as possible to reset the lane. Doing this makes it much harder for Vi to get a successful gank, it gives your teammates some advantages in lane for minimal loss, and you can screw the enemy laners over while filling your pocket with gold.