Text objects are crucial to composing vim commands. Vim offers quite a few but honestly, there’s plenty more. I’d recommend using the vim-textobj-user as base to add appealing text objects. Personally, I can’t live without the “entire” text object which allows one to act upon the entire file. Like “indent entire file” etc.
https://github.com/kana/vim-textobj-user
https://github.com/kana/vim-textobj-entire