vim allows powerful text manipulation: di" to delete inside double quotes, ci( to change inside brackets, etc. If you use IdeaVim in JetBrains IDEs, this can be enhanced with the AnyObject Plugin.

To enable it, just add this to your .ideavimrc:

set anyobject

After that, you can do:

  • daa - Delete argument and its separator. For example, you want to delete name parameter in one stroke in def say_hi(name, email)
  • ciq - Change inside any quote. "hello", 'good bye', `again`
  • yif - Yank inner function. Copy all the function body ♥️
  • din - Delete inner block level. Especially useful for indentation based languages (Python, YAML)