O que é o formato de ficheiro SWP?
.swp é um arquivo de troca do Vim - um arquivo binário temporário que o Vim cria automaticamente ao abrir um arquivo para edição. Seu propósito é a recuperação de falhas: se o Vim fechar inesperadamente devido a uma queda de energia, fechamento do terminal ou falha do sistema, o arquivo de troca preserva as alterações não salvas que podem ser recuperadas na próxima inicialização.
O Vim cria o arquivo de troca no mesmo diretório do arquivo editado, nomeando-o com um ponto inicial e o sufixo .swp - por exemplo, editar config.py produz .config.py.swp. Em sistemas do tipo Unix, o ponto inicial o torna oculto por padrão. Se várias sessões do Vim editarem o mesmo arquivo, os arquivos de troca subsequentes usarão .swo, .swn e assim por diante.
O arquivo de troca possui uma estrutura binária baseada em blocos. O primeiro bloco de 4 KB (bloco 0) contém um cabeçalho mágico b0VIM , a string da versão do Vim, o caminho do arquivo original, o nome do host (hostname), o nome de usuário e o ID do processo (PID). Os blocos subsequentes armazenam o conteúdo do buffer organizado como uma árvore B (B-tree) de páginas de 1 KB. O conteúdo do arquivo é armazenado em texto simples - o arquivo de troca não é criptografado.
Quando o Vim abre um arquivo e detecta um .swp existente, ele solicita que você recupere (r) as alterações não salvas ou exclua (d) o arquivo obsoleto. Um .swp remanescente sem nenhum processo do Vim em execução pode ser excluído com segurança; execute vim -r filename para tentar a recuperação explicitamente. O Neovim utiliza o mesmo formato de troca.
Uma consideração de segurança: arquivos .swp deixados em diretórios de servidores web podem expor o código-fonte não criptografado se o servidor estiver configurado para servir arquivos ocultos.
Segurança e proteção
RISCO: MEDIUMO arquivo .swp em si não é um malware, mas apresenta um risco de divulgação de informações: (1) Se deixado em um diretório acessível pela web, expõe o texto simples completo do arquivo que está sendo editado, além do hostname do servidor e o nome de usuário - uma descoberta clássica de reconhecimento em testes de invasão (pentests). (2) Se for incluído acidentalmente no git: use «git rm --cached .*.swp» e adicione «*.swp» ao .gitignore. Adicione «*.swp» ao seu .gitignore global (~/.config/git/ignore) para evitar commits acidentais.
Detalhes do formato
em resumo- Arquivo de Troca de Memória Virtual do Windows - O Windows usa pagefile.sys/swapfile.sys, não a extensão .swp; a confusão com o swap do sistema operacional é infundada, mas comum.
- Oracle Forms .swp - Versões mais antigas do Oracle Forms usavam .swp para um buffer de troca diferente; muito raro.
Programas que abrem arquivos SWP
Detalhes técnicos
especificação profunda| Propósito do arquivo | Buffer de recuperação de falhas para sessões ativas de edição no Vim; excluído automaticamente ao sair corretamente |
| Magic bytes | `62 30 56 49 4D 20` («b0VIM ») no deslocamento 0 |
| Estrutura de blocos | Bloco 0: cabeçalho de 4 KB; blocos subsequentes: páginas de 1 KB em uma árvore B; o tamanho total cresce com o conteúdo do buffer |
| Conteúdo do cabeçalho | String da versão do Vim, caminho do arquivo original, hostname, nome de usuário e PID armazenados no bloco 0 |
| Codificação de conteúdo | Texto simples (sem criptografia); o conteúdo original do arquivo é legível diretamente do arquivo de troca |
| Ordem dos bytes (Byte order) | Dependente da plataforma (corresponde à compilação do Vim host; normalmente little-endian em x86 e ARM) |
| Convenção de nomenclatura | `.filename.swp` (ponto inicial + sufixo `.swp`); oculto em sistemas Unix por padrão |
| Nomenclatura de estouro | Quando várias sessões editam o mesmo arquivo: `.swo`, `.swn`, `.swm`, … alocados em ordem alfabética |
| Detecção de obsolescência | O Vim cruza o PID e o hostname no cabeçalho do bloco 0; avisa se o processo registrado não estiver mais em execução |
| Comando de recuperação | `vim -r filename` ou pressione `r` no prompt de recuperação ao reabrir o arquivo no Vim |
| Compatibilidade com Neovim | O Neovim lê e grava arquivos de troca compatíveis com o Vim usando o mesmo formato de cabeçalho `b0VIM` |
| Nota de segurança | Arquivos de troca em diretórios acessíveis pela web expõem o código-fonte como texto simples se o servidor servir arquivos ocultos (dotfiles) |
| Lançado | 1991 (Vim 1.0); vi swap concept from 1970s ex/vi |
| Versão mais recente | Vim 9.1 (2024) swap format; compatible block-based format since Vim 6 |
| Especificação | github.com |
Conversões de SWP
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos SWP.