Preheat your oven to 350°F (175°C). Grease and flour the cake pans.
In a large bowl, whisk together the flour, sugar, baking soda, baking powder, and salt until well combined.
In another bowl, mix the vegetable oil, buttermilk, eggs, vanilla extract, and purple food coloring until smooth.
Gradually add the wet ingredients to the dry ingredients, mixing until just combined. Do not overmix.
Stir in the vinegar, and mix gently until incorporated.
Divide the batter evenly between the two prepared cake pans.
Bake in the preheated oven for 30 minutes, or until a toothpick inserted into the center comes out clean.
Remove from the oven and let the cakes cool in the pans for 10 minutes before transferring to cooling racks to cool completely.
While the cakes are cooling, prepare the cream cheese frosting. In a mixing bowl, beat the softened cream cheese and butter together until creamy and smooth.
Gradually add the powdered sugar and vanilla extract, and mix until well combined. If desired, add milk to reach your desired frosting consistency.
Once the cakes are completely cooled, frost the top of one layer, place the second layer on top, and then frost the top and sides of the cake.
Decorate as desired and slice to serve.