Por que Vim salvar arquivos com uma extensão de ~?
-
03-07-2019 - |
Pergunta
Descobri que ao usar Vim no Windows Vim salva o arquivo, um arquivo .ext.swp
que está excluído em fechar a janela Vim e um arquivo .ext~
.
Eu assumo o arquivo .ext.swp
é um backup de sessão no caso Vim falhas. Qual é a finalidade do arquivo .ext~
no entanto? É este um arquivo de backup permanente? É chato como eu gostaria de copiar todos os arquivos que eu estou trabalhando para o meu host, sem essas duplicatas. Como posso desligar isso ou , se ele está lá por um bom motivo, ocultar os arquivos ?
Solução
O arquivo *.ext~
é um arquivo de backup, que contém o arquivo como era antes você editou-lo.
O arquivo *.ext.swp
é o arquivo de swap, que serve como um arquivo de bloqueio e contém o histórico undo / redo, bem como quaisquer outras necessidades Vim Informações interno. Em caso de um acidente você pode re-abrir o arquivo e Vim irá restaurar o estado anterior do arquivo de troca (o que eu acho útil, então eu não desligá-lo).
Para desligar a criação automática de arquivos de backup, o uso (no seu vimrc):
set nobackup
set nowritebackup
Onde nowritebackup
muda o padrão "salvar" o comportamento do Vim, que é:
- buffer de gravação para o novo arquivo
- exclua o arquivo original
- mudar o nome do novo arquivo
e faz Vim escrever o buffer para o arquivo original (resultando no risco de destruí-lo em caso de um erro de I / O). Mas você evitar "arquivos de salto" no desktop do Windows com ele, que é a principal razão para eu ter nowritebackup
no lugar.
Outras dicas
Eu acho que a melhor solução é colocar estas linhas no seu arquivo vimrc
set backupdir=~/vimtmp//,.
set directory=~/vimtmp//,.
A primeira linha é para arquivos de backup, a segunda linha para trocar arquivos. A barra dupla nos garante finais que não há conflito no caso de dois arquivos com o mesmo nome, ver os comentários (no momento desta edição esta opção só é honrado para trocar arquivos, nem ainda com arquivos de backup ). O ,.
permitir vim
para usar o diretório atual, se o primeiro não existe.
Você tem que criar um diretório no seu diretório home chamado vimtmp para que isso funcione. Além disso, verificar que os backups são ativados em sua config (set backup
add se não).
Dessa forma, você recebe o benefício de ambos os mundos, você não tem que ver os arquivos, mas se algo não se futzed você pode ir buscar o seu arquivo de backup do vimtmp. Não se esqueça de limpar o diretório para fora de vez em quando.
Para desligar esses arquivos, basta adicionar estas linhas para Vimrc (arquivo de configuração do vim no Mac OS baseados em Unix):
set nobackup #no backup files
set nowritebackup #only in case you don't want a backup file while editing
set noswapfile #no swap files
:set nobackup
desligará backups. Você também pode definir um backupdir se você ainda quer que os arquivos de backup, mas em uma pasta central. Desta forma, o dir de trabalho não está cheio de arquivos ~.
Você encontra mais informações sobre backups em : ele de backup .
E você pode também definir uma extensão de backup diferente e onde para salvar aqueles backup (eu prefiro ~/.vimbackups
no linux). Eu costumava usar backups "versionadas", via:
au BufWritePre * let &bex = '-' . strftime("%Y%m%d-%H%M%S") . '.vimbackup'
Isso define uma extensão de backup dinâmico (ORIGINALFILENAME-YYYYMMDD-HHMMSS.vimbackup
).
Coloque esta linha em seu vimrc
:
set nobk nowb noswf noudf
"
nobackup
nowritebackup
noswapfile
noundofile
'windows'" que seria o:
C:\Program Files (x86)\vim\_vimrc
arquivo de configuração vim todo o sistema para todos os usuários.
Definindo a última noundofile
é importante no Windows para evitar a criação de *~
Tilda arquivos após a edição.
Desejo Vim tinha essa linha incluído por padrão. Ninguém gosta de diretórios feias.
Deixe o usuário escolha se e como ela quer ativar o backup avançado / arquivo de desfazer apresenta em primeiro lugar.
Esta é a parte mais irritante de Vim.
O próximo passo pode ser a criação de:
set noeb vb t_vb=
"
errorbells
visualbell
para desativar beeping na vim assim: -)
Você está correto que o arquivo .swp
é usado por vim para bloquear e como um arquivo de recuperação.
Tente colocar set nobackup
em sua vimrc se você não quer que esses arquivos. Consulte o Vim docs para várias opções relacionadas de backup se você quiser toda a colher, ou se quiser têm bak arquivos em vez ...
A única opção que funcionou para mim foi a de colocar esta linha no meu arquivo ~ / .vimrc
set noundofile
As outras opções referentes aos arquivos de backup não impediu a criação dos arquivos temporários que terminam em ~ (til)
Eu tive que adicionar set noundofile
para ~ _gvimrc
O "~" diretório pode ser identificado por mudar o diretório com o comando cd ~