Determine se um documento está aberto em um editor

3

Existe uma maneira aprovada de consultar se um documento está aberto em um editor no Linux?

Por exemplo, se um documento está sendo editado, podemos querer avisar que um documento está aberto e deve ser salvo antes de um git mesclar ou puxar. Também poderíamos evitar o serviço automatizado de limpeza (remoção de espaço em branco, etc.) nos arquivos que estão sendo ativamente editados.

Existem três métodos óbvios, mas falhos.

  1. Teste se o arquivo está aberto usando lsof . No entanto, a maioria dos editores não deixa o arquivo aberto durante a edição do documento.
  2. Verifique se uma janela do editor está aberta com wmctrl -l . Isso é limitado aos editores X e, mesmo assim, somente se o documento for a guia ativa.
  3. Veja se há um arquivo temporário. Por exemplo, se o arquivo .foo.swp existir, poderemos presumir que o arquivo foo esteja aberto em vim , especialmente se .foo.swp for mais recente que foo . No entanto, não há um esquema de nomenclatura uniforme entre os editores, e alguns editores como LyX podem não criar o arquivo temporário instantaneamente.

Então, há uma maneira recomendada de dizer se um documento está aberto em um editor que funciona em todos os editores (ou pelo menos editores compatíveis com algum padrão do Gnome / KDE / outro)?

    
por gmatht 04.04.2016 / 06:17

1 resposta

0

Cada usuário deve ter sua própria área de trabalho e controlar sua atividade git . Por que você infligiria alterações de formato automatizadas no conteúdo do usuário enquanto ele trabalhava nele? As condições que você está controlando devem ser ocorrências relativamente raras. Se não estiverem, pode haver problemas com o fluxo de trabalho.

Ações de limpeza automatizadas, como alterações de formatação, devem ser aplicadas ao código não modificado. Ao usar o controle de versão, eles devem ser um commit separado. Tais mudanças devem ser relativamente fáceis de mesclar.

Não tenho conhecimento de nenhum padrão quanto a quando ou se devo avisar sobre arquivos alterados. No entanto, muitos editores agora pelo menos avisam antes de sobrescrever os arquivos alterados. Além disso, pode haver integração de controle de versão como funcionalidade interna ou por meio de um plug-in.

Parece que o LyX 2.1 possui funcionalidades básicas do GIT embutidas. Isso pode ajudar com seus problemas com arquivos abertos.

    
por 05.04.2016 / 02:42