Re: [OT] digraph 0 in vim
Hallo Gebhard!
Gebhard Dettmar schrieb am Mittwoch, den 02. August 2006:
> ich habe hier html-Seiten, die noeol files sind. Entweder ich sehe ganz
> viele blaue ^M oder garnichts (aber natürlich alles in einer Zeile). Wenn
> ich die mit \n substituiere, kriege ich ganz viele blaue ^@ (und immer
> noch nur eine Zeile), \r\n im Ersetzungsteil bringt Zeilenwechsel und ein
> blaues ^@ an jedem Zeilenanfang. Da, wo keine ^M stehen, nehme ich im
> Suchteil \t, das gibt dito ^@ am Zeilenanfang
Hmm, das sieht so aus, als würde vim nicht korrekt das Fileformat
erkennen. Also ob Dos, Unix oder Mac Zeilentrenner verwendet werden.
AFAIK ist ^M ein CarriageReturn und damit ein Indiz für das Fileformat
vom Mac (9?).
Jedenfalls mußt du die CR durch ordentliche Trennzeichen ersetzen.
Probier es mal damit:
:e ++ff=mac foobar.txt
:w ++ff=unix
Per regexp kriegt man das wohl nicht so richtig gerade gebogen, da \n beim
ersetzen als ASCII NULL (^@) ersetzt wird (:h NL-used-for-Nul). Laut der
vim-Mailingliste scheint aber erstaunlicherweise diese Ersetzung zu
funktionieren:
:s/\r/\r/g
(siehe auch http://www.vim.org/tips/tip.php?tip_id=1266)
Aber eigentlich ist das eine Aufgabe für tr:
tr '\r' '\n' <foobar.txt sollte die Ersetzungen auch vornehmen.
> Laut :dig kriegt man die mit NU, also CTRL-K NU (oder dezimal 10, laut
> digraph.html in der Vim-Doku ist official name: NULL, dec = 0), ich frage
> mich nur: was ist das, wo kommt das her (beim ersetzen)?
Siehe oben, \n wird beim Ersetzen zu ASCII 0.
Grüße,
Christian
--
Wenn die Menschen nur über Dinge reden würden, von denen sie etwas
verstehen - das Schweigen wäre bedrückend.
-- Robert Lembke
Reply to: