Jak se zbavit otravných ^M ve Vimu

Uživatelé všelijakých UltraEditů, SuperEditů či PSPadů si neuvědomují, že jejich editory akceptují znaky konce řádku jak pro DOS tak pro UNIX. Na tom by nebylo nic špatného, ale těmto programům nevadí, když se konce řádků míchají v jednom souboru. To už není košer. Máme-li soubor s prvním řádkem ukončeným stylem DOS a druhý stylem UNIX, co by měl editor vložit když zařádkujeme na třetím?

Vim vyžaduje, aby byl soubor korektní ve smyslu buď UNIX (CR) nebo DOS (CRLF). Je to logické a předchází se chybám u programů, které s touto věcí nepočítají (a například špatně přečtou různé konfigurační hodnoty a podobně). Pakliže otevřete soubor se smíchanými konci řádků ve Vimu, na konci uvidíte znaky ^M – typický ukazatel, že soubor má pomíchaná zařádkování.

Ať už má mít ve výsledku soubor styl DOS nebo UNIX, cesta k nápravě spočívá ve třech krocích:

  • Smažte všechny výskyty znaku ^M, které jsou v sekvcenci CRLF navíc.
:%s/^M$//g
  • Smažte výskyty znaku ^M, kterým chyběl CR.
:%s/^M/ /g
  • Nastavte požadovaný výstup (dos nebo unix) a uložte.
:set ff=unix
:wq

Zdroj: http://www.vim.org/tips/tip.php?tip_id=26

Diskuze

If you can't read the letters on the image, download this .wav file to get them read to you.
pridej.cz
blog/jak_se_zbavit_otravnych_m_ve_vimu.txt · Poslední úprava: 29.05.2008 09:04 (external edit)
Creative Commons License Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0