Desativar arquivos de backup Indent do GNU

5

Estou usando o GNU Indent para formatar o código C no meu projeto.

Por padrão, arquivos de backup são criados terminando com ~ .

Eu não quero ter nenhum arquivo de backup criado, existe uma maneira de desativá-lo?

    
por ivokosir 13.12.2013 / 23:51

4 respostas

4

Pesquisando a página man do indent e da documentação oficial do GNU Eu só vejo 2 métodos para controlar esse comportamento.

As variáveis de ambiente:

  • SIMPLE_BACKUP_SUFFIX
  • VERSION_WIDTH

Eu tentei vários truques para definir a largura como 0 e também definir o SIMPLE_BACKUP_WIDTH como nada ( "" ). Nenhum deles teve o efeito desejado. Eu acho que você é apenas o curso de ação seria criar um alias de shell e / ou função para quebrar o comando indent para fazer o que quiser.

Exemplo

$ function myindent() { indent "$@"; rm "$@"~; }

Então, quando eu executo:

$ myindent ev_epoll.c

Eu obtenho o efeito desejado:

$ ls -l | grep ev_epo
-rw-r--r--.   1 saml saml     7525 Dec 13 18:07 ev_epoll.c
    
por 14.12.2013 / 00:08
3

Use a fonte, que está no Mercurial. Um comentário em backup.c diz

 * Finally, if VERSION_CONTROL is "none" or "never", backups are not
 * made.  I suggest you avoid this behaviour.

Os valores permitidos para VERSION_CONTROL estão listados no mesmo arquivo :

{
    {none,              "never"},    /*!< Don't make backups. */
    {none,              "none"},     /*!< Ditto */
    {simple,            "simple"},   /*!< Only simple backups */
    {numbered_existing, "existing"}, /*!< Numbered if they already exist */
    {numbered_existing, "nil"},      /*!< Ditto */
    {numbered,          "numbered"}, /*!< Numbered backups */
    {numbered,          "t"},        /*!< Ditto */
    {unknown,           0}           /*!< Initial, undefined value. */
};

As mesmas informações estão no arquivo NEWS , indicando que elas são datas para a versão 1.3 (final dos anos 90), por isso provavelmente está disponível no seu sistema.

Não está no indent manual :

The type of backup file made is controlled by the value of the environment variable VERSION_CONTROL. If it is the string ‘simple’, then only simple backups will be made. If its value is the string ‘numbered’, then numbered backups will be made. If its value is ‘numbered-existing’, then numbered backups will be made if there already exist numbered backups for the file being indented; otherwise, a simple backup is made. If VERSION_CONTROL is not set, then indent assumes the behaviour of ‘numbered-existing’.

Por que vale a pena, eu testei GNU indent 2.2.11 (funciona).

    
por 18.06.2016 / 23:55
0

Usando mktemp :

a=$(mktemp)
indent -o "$a" file
mv "$a" file

Usando o Vim no modo Ex:

ex -sc '%!indent -st' -cx file

Exemplo

    
por 18.06.2016 / 23:17
0

Para explicitar a resposta de Thomas Dickey ,

declare -x VERSION_CONTROL=none 

funciona bem para mim.

    
por 05.12.2017 / 22:09