“Trocar arquivo xxx já existe” ao editar o arquivo de configuração do apache no vim?

9

Usando o vim, recebo uma mensagem dizendo "Trocar arquivo xxx já existe" ao editar uma configuração do apache. No entanto, não o vejo no diretório de trabalho em tmp. Como faço para excluir isso?

dzm
fonte

Respostas:

16

Os arquivos de troca do Vim normalmente estão ocultos (os arquivos ocultos do Unix começam com a .). Para visualizar arquivos ocultos e arquivos regulares, é necessário ls -A(mnemônico: A para todos). Isso deve mostrar se um arquivo de troca está lá ou não.

quanticle
fonte
5

Isso acontece apenas quando o arquivo que você estava tentando editar não é salvo completamente no disco. Os cenários são:

  1. Você encerra o sistema incorretamente quando um arquivo ainda está aberto no vi / vim.

  2. quando seu arquivo está sendo acessado simultaneamente por diferentes / mesmos consoles no vi.

O vi / vim cria um arquivo .swp sempre que um arquivo é aberto no vi / vim. Sempre que um arquivo é aberto no vi / vim, o vi / vim verifica esse arquivo e, se encontrado, esse aviso aparece

Isso pode ser evitado de duas maneiras

  1. um excluindo o arquivo .swp que é nomeado como

"caminho / do / arquivo / você / você / estava / editando / .seu_nome_do_arquivo.swp"

  1. você também pode optar pelo modo de recuperação do vi / vim ao abrir o arquivo e pressionar a opção de recuperação.

Estou apenas falando sobre o primeiro cenário e é seguro apenas para esse cenário. O segundo cenário é o caso diferente.

kaji
fonte
Se houver alterações não salvas, você poderá recuperá-las usando vi -r(ou vim -rse preferir). Normalmente, escrevo o arquivo recuperado em um arquivo temporário e diffno arquivo principal. (Eu não confiava a recuperação não à informação perder.)
Keith Thompson
1

Se o arquivo que você está editando for chamado httpd.conf, o arquivo de troca será chamado .httpd.conf.swp. Ele fica oculto, a menos que você adicione -aaos seus lsargumentos.

ls -a /etc/httpd/conf/
tylerl
fonte
1

Para remover o arquivo de troca no Linux, use este comando

rm .filename.swp
amareswar reddy
fonte
0

Na mensagem, você deve ver o caminho completo para o arquivo. Você pode removê-lo, colando o caminho da seguinte maneira:

rm -f /path/to/the/file

fonte