Olá!
Entendo a sua frustração em relação à necessidade de posicionar o cursor na linha onde a string desejada se encontra para utilizar o comando de localizar e substituir no VIM. Realmente, pode parecer pouco produtivo ter que fazer isso, já que a função do comando é encontrar.
No entanto, essa é a forma como o comando de substituição funciona no VIM. Ele substitui apenas a primeira ocorrência da string na linha corrente, a menos que você adicione a flag "g" no final do comando, que significa "global" e faz a substituição em todas as ocorrências da linha.
Por exemplo, se você quiser substituir todas as ocorrências da palavra "encontre" pela palavra "altere" em uma linha, você pode usar o seguinte comando:
:s/encontre/altere/g
Dessa forma, todas as ocorrências da palavra "encontre" na linha serão substituídas pela palavra "altere".
Se você quiser substituir todas as ocorrências da palavra "encontre" pela palavra "altere" em todo o arquivo, você pode usar o seguinte comando:
:%s/encontre/altere/g
Esse comando substituirá todas as ocorrências da palavra "encontre" pela palavra "altere" em todas as linhas do arquivo.
Bons estudos!