Scripting O arquivo do vim mudou a detecção externamente

1

Quando você altera um arquivo fora do vim, avisos do vim e solicita ação: ele deve recarregar o arquivo e descartar as alterações que você tiver? deve manter suas alterações?

Muitas vezes, apenas reler o buffer está correto. Normalmente, isso ocorre:

  • Abra um arquivo no vim.
  • Recorte, salve.
  • Alterar ramificações no git.
  • O Vim detecta que o arquivo foi alterado.

Neste ponto, eu realmente só quero que o arquivo seja recarregado, pois ele é salvo. (Se o buffer não for salvo, o prompt normal está correto.) Me clicando / digitando "Carregar arquivo" é propenso a erros se eu tiver um buffer perdido que não é salvo. Ver essa mensagem apenas para buffers que são modificados seria muito mais seguro.

Algo que faz exatamente o que eu quero seria ótimo, mas eu realmente tenho outros desejos também (difamar um buffer modificado seria legal): você pode rotear o que acontece quando um arquivo é alterado no disco?

    
por Thanatos 22.02.2013 / 22:21

2 respostas

1

Se :set autoread não for suficiente, você pode realmente criar um script do comportamento; nessa ocasião, o evento FileChangedShell é acionado e você pode se ligar a isso e influenciar o comportamento. Veja :help FileChangedShell para detalhes.

    
por 22.02.2013 / 22:46
0

Parece que a opção autoread do vim faria o que você está procurando. Você pode ativar isso adicionando o seguinte ao seu arquivo vimrc ou digitando-o em uma sessão vim:

:set autoread

Você pode obter mais informações sobre a opção usando:

:help 'autoread'

Para informações sobre como visualizar as diferenças entre o que está no buffer vim e o que está em execução no disco:

:help :DiffOrig

Isso contém algum código que você pode colocar no seu arquivo vimrc , para definir um comando :DiffOrig que fará exatamente isso.

    
por 22.02.2013 / 22:42

Tags