Try dish soap or laundry detergent. These detergents are made to break down and remove things like this. You can also get carpet cleaners, that are basically the same thing as a launfry detergent, and use that to spot clean with.
Once you remove as much of the vomit from the carpet as possible, scrub (use a scrub brush and scrub in towards the center of the stain, not across or out) with with soapy water. Then use a rag and clean water to get as much of the soap up as possible. After that you place a clean dry towel over it and use your weight (step on it) to help absorb as much of the water as possible.
The only problem with this method is that you may end up with cleaned spots showing up as cleaner than the rest of your carpet.
