En el momento de llamar a Vim podemos facilitarle como argumento no sólo un nombre de fichero, sino varios nombres separados por un espacio en blanco, o mediante un patrón. Por ejemplo, la orden 0 0«vim *.txt0 0» abrirá todos los ficheros de extensión ``.txt''.
En estos casos Vim supone que queremos editar todos los ficheros indicados por el orden en el que han sido cargados8.15, de manera que podemos ir activando sucesivamente los distintos buffers. Inicialmente estará activo el correspondiente al primer fichero. Para pasar de un buffer a otro disponemos de las siguientes órdenes:
Todas estas órdenes exigen que el buffer actual no tenga cambios pendientes de guardar en disco. En caso contrario hay que grabarlos o explícitamente descartarlos escribiendo 0 0«!0 0» al final del nombre del comando. Para ``:next'' y ``:previous'' hay una forma de la orden que empieza con ``w'': 0 0«:wnext0 0» y 0 0«:wprevious0 0» que significa: grabar cambios del buffer actual y pasar al siguiente (o al anterior) buffer. También podemos activar la opción ``autowrite'' para que automáticamente se graben los cambios al saltar a un fichero distinto.
Asimismo, si queremos saltar más de un fichero, podemos escribir el número de ficheros a saltar entre los dos puntos y el comando ``next'' o previous. Así 0 0«:3next0 0» saltará al tercer fichero contando desde el actual8.16.
Cuando, circulando entre los distintos ficheros, regresamos a uno en el que ya estuvimos, la marca 0 0«"0 0» representa el lugar en el que esta el cursor cuando lo abandonamos, y la marca 0 0«.0 0» representa la posición en la que se hizo el último cambio antes de abandonarlo la última vez. Asimismo, como ya se dijo las marcas asociadas a letras mayúsculas se considerarán marcas globales, es decir: podremos saltar a ellas aunque en el momento de hacer el salto no nos encontremos en el buffer en el que se fijaron. Esto es un método muy cómodo para moverse entre los distintos ficheros. Podemos además preguntar en donde está una marca concreta proporcionándola como argumento al comando ``:marks''. Así, por ejemplo, 0 0«:marks M0 0» nos indicará en qué fila, columna y fichero está la marca M, y 0 0«:marks ABC0 0» hará lo mismo para las marcas A, B y C.
Si en un momento dado queremos saber en qué fichero de la lista estamos, con el comando 0 0«:args0 0» veremos una lista de los ficheros abiertos, en la que el nombre del fichero actual se verá encerrado entre corchetes.
El comando 0 0«:args0 0» seguido de un argumento nos permite cambiar interactivamente la lista de ficheros editada. Es decir: escribir 0 0«:args NuevaLista0 0» equivale a salir de Vim y volver a entrar usando NuevaLista como nueva lista de ficheros a editar.