Le range (portée) permet de limiter l'effet d'une commande. On place la portée en préfixe de la commande.
| % | Toutes les lignes |
|---|---|
| . | La ligne courante |
| 1 | La première ligne |
| $ | La dernière ligne |
| 12,20 | Entre les lignes 12 et 20 |
| .+1,$ | De la ligne sous le curseur à la fin du fichier. |
Dans l'exemple ci dessous, on fait une substitution qui opère sur l'ensemble du fichier. On remplace toutes les occurrences de toto par tata. L'argument g en fin de commande permet de définir plusieurs remplacement sur une même ligne si nécessaire:
:% s/toto/tata/g
La portée peut également être définie à l'aide de marques ou par sélection via le mode visuel.
'a,'b s/toto/test/g
Dans l'exemple ci-dessus on remplace toto par test dans l'intervalle définit entre les marques a et b.
Dans le cas du mode visuel, presser : pour passer en mode commande, la portée est automatiquement définie a l'aide des marques spéciales '<,'> qui définissent les bornes du mode visuel