Irytujący problem z nową linią w MacVimie

1

Wiele razy, gdy otwieram plik za pomocą MacVima i zamykam go, bez zapisywania, SVN zawsze pokazuje, że plik został zmodyfikowany. Po zrobieniu svn diff na pliku otrzymuję coś takiego:

-</script>
\ No newline at end of file
+</script>


Jakie ustawienia konfiguracji muszę dodać, aby MacVim mógł ładnie grać w SVN?

Paul Smith
źródło

Odpowiedzi:

1

To nie jest szczególny problem z MacVimem; plik w Subversion nie ma końcowej nowej linii (EOL), ale Vim zawsze ją dodaje. Niektóre aplikacje (również kilka edytorów tekstu) tworzą pliki bez ostatecznego EOL, wiele osób twierdzi, że pliki te są uszkodzone, ale mimo to istnieją.

Jeśli nie możesz zgodzić się w swoim zespole na uniknięcie popełniania takich plików w Subversion, musisz obejść ten problem w Vimie. Jeśli w ogóle nie zrobisz :writetego pliku, Vim nie powinien go dotykać, ale nawet :ww niezmodyfikowanym pliku doda ostateczne EOL.

Aby lepiej radzić sobie z tego rodzaju plikami, napisałem wtyczkę PreserveNoEOL .

Ingo Karkat
źródło
Dzięki za wyjaśnienie i wtyczkę! Jaki jest powód, dla którego Vim zawsze dodaje nową linię? Czy to tylko spuścizna Vima? A * Nix?
Paul Smith
1
Większość twierdzi, że to właściwa rzecz, ale tak, pochodzi z Uniksa. Oto jedno wyjaśnienie; z pewnością znajdziesz o wiele więcej dyskusji w sieci.
Ingo Karkat