To manipulate code at the speed of thought.
It is the same reason that we learn to touch-type — to write at the speed of thought.
gg: go to the top of the fileG: go to the bottom of the fileb: go back a wordf: go forward a word$: teleport to the start of the line,0: teleport to the end.- replace everything within 2 parenthesis? no worries, it's natural: change in ( = "change in brackets" – duh!
Beyond being able to manipulate code on your own computer very quickly, the benefit of learning Vim is that you can manipulate code on any machine really quickly.