Vim: como executar esta tarefa toda vez que eu abro um arquivo?

0

Por um tempo eu tenho uma configuração vim no meu laptop e outra na minha área de trabalho, então quando eu editei no meu Dropbox entre os dois eu acabaria com problemas de formato.

Especificamente, eu tinha ffs=mac,unix,dos em um e ffs=unix,dos no outro.

Agora, felizmente, essa configuração foi corrigida! No entanto, os retardatários permanecem (os arquivos que não foram abertos e convertidos e salvos com a nova configuração).

Agora, às vezes, quando abro um arquivo de onde ele foi salvo com um ff de "mac", recebo um monte de ^M .

Então eu faço:

e ++ff=mac
setlocal ff=unix
w

Para corrigir o problema.

O que funciona para executar este procedimento de 3 linhas sempre que abro um arquivo?

Ou melhor ainda, como poderia funcionar para fazê-lo automaticamente sempre que eu abrir um arquivo que tenha um ff que não seja unix?

Eu pesquisei [tarefa vim em todos os buffers abertos] e [macro vim em todos os arquivos abertos] e não vi nada que funcionasse.

(Eu tenho certeza que o vim em sua sabedoria aparentemente infinita tem algo apenas para isso, já que parece ter algo apenas para qualquer coisa [como eles imaginaram e fizeram todas essas características ?!).]

    
por Cris 19.11.2014 / 13:10

2 respostas

2

Eu hesitaria em corrigir isso automaticamente, mas o seguinte autocmd parece fazer o trabalho.

autocmd BufRead * if line('$') == 1 && getline(1) =~# '\r' | edit ++ff=mac | w ++ff=unix | endif

Ele detecta arquivos que consistem em apenas uma única linha que contém caracteres CR incorporados e realiza a conversão automaticamente. Eu provavelmente adicionaria um :echomsg para notificar o usuário também.

    
por 19.11.2014 / 13:30
1

Não tente automatizar sua solução alternativa para uma configuração com bork, corrija a configuração; ou seja, usar consistentemente uma determinada linha terminando em 'fileformat' em todas as plataformas e garantir que isso seja detectado corretamente (incluindo-o em 'fileformats' ) em cada sistema!

Para arquivos Vimscript, esse formato canônico seria unix , porque isso é tratado tanto pelo Vim no Windows quanto no Unix (e no Mac, suponho), enquanto dos causaria erros ao fazer o sourcing no Unix.

    
por 19.11.2014 / 13:16

Tags