Abrir más de un archivo

  Vim no solo soporta pestañas, también soporta paneles, es decir, unas divisiones por cada pestaña que pueden ser horizontales o verticales.

Algo importante que tenemos que saber es que Vim hace una distinción entre archivos y buffers. Un archivo está guardado en el disco mientras que un buffer se guarda en la memoria.

Cuando decimos que estamos editando un archivo lo que en realidad editamos es un buffer. Imaginemos que tenemos una carpeta con varios archivos de texto, ya sabéis esos que acaban en .txt. Desde nuestra terminal podemos abrir todos los archivos que tengan esa terminación con el comando vim *.txt.

Cuando Vim se abra veremos que en la ventana solo tenemos un archivo abierto, pero en realidad Vim ha creado un buffer para todos los archivos .txt de la carpeta, pero solo vemos un archivo en pantalla. Veamos que podemos hacer con esos buffers:

  • :ls .- Muestra una lista de los buffers. Si vemos el símbolo # delante del nombre de un buffer significa que es el buffer anterior al que hemos estado. Podemos volver al buffer anterior con <ctrl-^>. No es una combinación muy cómoda para el teclado español, pero siempre podemos editar nuestro .vimrc para ponerlo a nuestro gusto. Por otro lado si un archivo de la lista va precedido por el símbolo % significa que es el archivo que estamos editando en este momento.
  • :bn o bnext .- Su función es la de abrir el siguiente buffer de la lista.
  • :bp o bprevious .- Abre el buffer anterior.
  • :bf o bfirst .- Abre el primer buffer de la lista.
  • :bl o blast .- Abre el último buffer de la lista.
  • :bd o bdelete buffer .- Eliminar buffer de la lista, no elimina el archivo del disco.
  • :args .- Muestra una lista de argumentos, a diferencia de :ls solo muestra el nombre de los archivos y en cual estamos. Podemos añadir a la lista por ejemplo todos los archivos .js de las carpetas con el comando :args **/*.js.
  • :argdocomando” .- Permite ejecutar un comando (entre comillas) en todos los archivos de la lista a la vez. Muy útil si queremos reemplazar algun texto en todos los archivos.
  • :w o write[a o all] .- Guarda todos los archivos.
  • :q o quit[a o all] sale de todos los archivos. Si le añadimos el signo !, saldrá sin guardar los cambios.

 

Anuncios