¿Qué es el formato de archivo SWP?
.swp es un archivo de intercambio de Vim (swap file), un archivo binario temporal que Vim crea automáticamente al abrir un archivo para editarlo. Su propósito es la recuperación ante fallos: si Vim se cierra inesperadamente debido a un corte de energía, cierre de la terminal o fallo del sistema, el archivo de intercambio preserva los cambios no guardados que pueden recuperarse en el siguiente inicio.
Vim crea el archivo de intercambio en el mismo directorio que el archivo editado, nombrándolo con un punto inicial y el sufijo .swp; por ejemplo, editar config.py genera .config.py.swp. En sistemas tipo Unix, el punto inicial lo hace oculto por defecto. Si varias sesiones de Vim editan el mismo archivo, los archivos de intercambio posteriores utilizan .swo, .swn, y así sucesivamente.
El archivo de intercambio tiene una estructura binaria basada en bloques. El primer bloque de 4 KB (bloque 0) contiene un encabezado mágico b0VIM , la cadena de versión de Vim, la ruta del archivo original, el nombre del host, el nombre de usuario y el ID del proceso (PID). Los bloques subsiguientes almacenan el contenido del búfer organizado como un árbol B de páginas de 1 KB. El contenido del archivo se almacena en texto plano; el archivo de intercambio no está cifrado.
Cuando Vim abre un archivo y detecta un .swp existente, le solicita Recuperar (r) los cambios no guardados o Eliminar (d) el archivo obsoleto. Un archivo .swp remanente sin un proceso de Vim en ejecución es seguro de eliminar; ejecute vim -r nombre_archivo para intentar la recuperación explícitamente. Neovim utiliza el mismo formato de intercambio.
Una consideración de seguridad: los archivos .swp que quedan en directorios de servidores web pueden exponer el código fuente sin cifrar si el servidor está configurado para servir archivos ocultos.
Seguridad y protección
RIESGO: MEDIUMEl archivo .swp en sí no es malware, pero plantea un riesgo de divulgación de información: (1) Si se deja en un directorio accesible por web, expone el texto plano completo del archivo editado más el nombre de host y el nombre de usuario del servidor, un hallazgo clásico de reconocimiento en pentests. (2) Si se confirma accidentalmente en git: «git rm --cached .*.swp» y añada «*.swp» a .gitignore. Añada «*.swp» a su .gitignore global (~/.config/git/ignore) para evitar confirmaciones accidentales.
Detalles del formato
en pocas palabras- Archivo de intercambio de memoria virtual de Windows - Windows utiliza pagefile.sys/swapfile.sys, no la extensión .swp; la confusión con el intercambio del SO es infundada pero común.
- Oracle Forms .swp - Las versiones antiguas de Oracle Forms utilizaban .swp para un búfer de intercambio diferente; muy poco común.
Programas que abren archivos SWP
Detalles técnicos
especificación profunda| Propósito del archivo | Búfer de recuperación ante fallos para sesiones activas de edición en Vim; se elimina automáticamente al salir correctamente |
| Bytes mágicos | `62 30 56 49 4D 20` («b0VIM ») en el desplazamiento 0 |
| Estructura de bloques | Bloque 0: encabezado de 4 KB; bloques subsiguientes: páginas de 1 KB en un árbol B; el tamaño total crece con el contenido del búfer |
| Contenido del encabezado | Cadena de versión de Vim, ruta del archivo original, nombre de host, nombre de usuario y PID almacenados en el bloque 0 |
| Codificación de contenido | Texto plano (sin cifrado); el contenido del archivo original es legible directamente desde el archivo de intercambio |
| Orden de bytes | Dependiente de la plataforma (coincide con la compilación de Vim del host; típicamente little-endian en x86 y ARM) |
| Convención de nomenclatura | `.nombrearchivo.swp` (punto inicial + sufijo `.swp`); oculto en sistemas Unix por defecto |
| Nomenclatura por desbordamiento | Cuando varias sesiones editan el mismo archivo: `.swo`, `.swn`, `.swm`, … asignados alfabéticamente |
| Detección de obsolescencia | Vim verifica el PID y el nombre de host en el encabezado del bloque 0; advierte si el proceso registrado ya no está en ejecución |
| Comando de recuperación | `vim -r nombre_archivo` o presione `r` en el aviso de recuperación al reabrir el archivo en Vim |
| Compatibilidad con Neovim | Neovim lee y escribe archivos de intercambio compatibles con Vim utilizando el mismo formato de encabezado `b0VIM` |
| Nota de seguridad | Los archivos de intercambio en directorios accesibles por web exponen el código fuente como texto plano si el servidor sirve archivos que comienzan con punto |
| Lanzado | 1991 (Vim 1.0); vi swap concept from 1970s ex/vi |
| Última versión | Vim 9.1 (2024) swap format; compatible block-based format since Vim 6 |
| Especificación | github.com |
Conversiones de SWP
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos SWP.