El comando global (que se puede usar como ``:g'') es uno de los más potentes de Vim. Su formato es muy parecido al de la sustitución:
0 0«:[rango]global/PatrónBúsqueda/comando0 0»
Al igual que en las sustituciones se buscará un texto a lo largo del rango indicado, con la diferencia de que cuando se encuentre ese texto en lugar de poner otro texto en su lugar, se ejecutará el comando indicado. Otra diferencia con ``substitute'' es que el rango por defecto en ``:global'' es el de todo el documento. Si en lugar de 0 0«:global0 0» se ejecuta 0 0«:global!0 0» el comando se ejecutará en todas las líneas que no coincidan con el patrón de búsqueda.
Por ejemplo, imaginemos que en un programa C++ queremos cambiar la palabra ``uno'' por la palabra ``dos'', pero sólo en los comentarios, que en el estilo C++ empiezan por los caracteres ``//''. La siguiente línea lo haría por nosotros:
0 0«:g+//+s/uno/dos/g0 0»
Analicémosla despacio:
En definitiva, dicho comando lo que hace es buscar los caracteres ``//'' y cada vez que los encuentre en la línea en la que estuvieran cambiar todas las apariciones de ``uno'' por ``dos''.
Con el comando global sólo podemos ejecutar comandos que empiecen por ``:''. Para ejecutar comandos normales (que no empiecen por ``:'') podemos usar el comando 0 0«:normal0 0». Este comando ejecuta los comandos normales que se le indiquen. Así por ejemplo 0 0«:normal dap0 0» ejecuta el comando 0 0«dap0 0» desde la línea de comandos. Con normal podemos teclear varios comandos seguidos y serán ejecutados en ese orden aunque en caso de deshacer la edición, todos serán deshechos conjuntamente.