Como forçar o vim a finalizar todas as linhas com um único caractere de alimentação de linha (LF)

5

Como o título diz, eu preciso forçar o vim (no meu caso gVim ) terminar todas as linhas com um único caractere de alimentação de linha (LF). Como posso fazer isso?

Estou tentando seguir os padrões de codificação PHP, especificamente link .

    
por Mariano Avopa 08.12.2011 / 05:32

2 respostas

6

A resposta curta é abrir o arquivo no Vim e digitar " :set fileformat=unix ", depois escrever o arquivo. Daquele ponto em diante, o Vim deve tratar o arquivo como formato de arquivo Unix e usar apenas caracteres de nova linha em vez de carriage-return + newline.

A resposta longa é que isso às vezes não funciona, porque quando você abre o arquivo no Vim você vê os caracteres ^ M reais no final da maioria das linhas. Nesse caso, pode ser por dois motivos:

  1. O mais provável é que ele tenha sido salvo originalmente como formato de arquivo do DOS, depois "danificado" por outro editor que assumiu que poderia tratá-lo como formato Unix sem conversão e deixou algumas linhas sem terminações de linha do DOS. Nesse caso, você deve apenas fazer algo como :%s/\%x0d$//g e depois escrever.
  2. O arquivo é um formato de arquivo adequado do DOS, mas o Vim não está reconhecendo esse fato. Isso provavelmente significa que a opção 'fileformats' não está configurada corretamente. Para saber mais sobre isso, consulte " :help 'fileformats' " (as aspas simples fazem parte do comando help).

Finalmente, se você estiver usando o Vim em uma máquina Windows, talvez seja necessário alterar a opção 'fileformats' mencionada para "unix, dos" no seu ~/_vimrc em vez do padrão "dos, unix" definido para em ambientes DOS / Windows. Isso fará com que o Vim crie novos buffers no formato Unix em vez do formato DOS. (Mais uma vez, consulte a ajuda para detalhes.)

    
por 08.12.2011 / 06:43
4

Heptite está correta, e para fazer esta configuração automaticamente sempre que você editar um arquivo PHP, você pode adicionar o seguinte ao seu arquivo ~/_vimrc :

au BufRead,BufNewFile *.php set fileformat=unix

Este é um comando automático que é executado sempre que você lê um arquivo em um buffer ou cria um novo buffer que tem um nome de arquivo que corresponda ao padrão "* .php" e define o formato de arquivo como "unix", conforme a resposta da Heptite. .

    
por 15.12.2011 / 06:52