When I write C code, I never know how to name functions. In an object-oriented language, my methods are verbs: add, insert, get, swashbuckle, and so on. The subject or indirect object of these verbs is an instance of the containing class, making my code read like English sentences: vector.add, list.insert, image.get, swashbuckler.swashbuckle.
In C, which has one global namespace, functions simply can’t be named generically. Add, insert, and get are out of the question. Usually, I add the name of the data structure to the function: vector_add, list_insert, image_get. However, sometimes I get the order swapped in my head, and type in insert_list or free_stack or some such.
It happens often enough that I wrote a Vim macro to turn free_stack into stack_free:
nmap <Space>_ dt_ea_<ESC>pbx
I hit <Space>_ with the cursor in the offending function identifier and the tokens get switched around. Let me break down this command into its steps: