I think macro earned it’s place on keyboard because it’s pretty powerful command. I don’t use it as often as in Vim. I see two common use-cases in my workflow:
- irregular code that is hard to select all at once. I record rough edit and then tweak manually case by case. Example: converting function signatures from C header to Crystal bindings.
- working with incremental changes. Example - writing markdown document. If I paste a lot of URLs, I record macro that converts URL under cursor to markdown link. I could do this at the end but have to write link description manually anyway.
- there is also golfing…