Can I send bitcoins straight from an ATM to a vendor? I want to buy something from a vendor on who accepts bitcoins.
Is is possible to go a bitcoin ATM and purchase bitcoins sent directly to his address?
Or do I have to purchase the bitcoin and have in my wallet then sending it to the vendor.
I think it is best to transfer to a wallet you control first.

This gives you full control of the transaction you send to make payment tp the vendor. This may be important in some situations. For example:

When a vendor gives you a payment address, it may come with a condition of sending payment within a certain amount of time (1 hour, for example). If you buy from an ATM, the ATM operator may only send a transaction to pay all customers once every couple of hours. So if you try to pay the vendor directly from the ATM, the vendor's payment page might time out by the time the payment is confirmed. In that case, you'd probably have to contact their customer service to resolve your order.