[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Umlautkonvertierung in vim



Stefan Keul (by way of Stefan Keul ) wrote:
Am Donnerstag, 12. September 2002 05:56 schrieb Dirk Prösdorf:

Alexander Schmehl <alexander@schmehl.info> wrote:

kann man vim eigentlich irgendwie beibringen, dass er bei
bestimmten Dateien Umlaute automatisch konvertieren soll?

Ja, kann man.
^L
Beim Bearbeiten einer HTML-Datei z.B. wie folgt für jeden Buchstaben:
 autocmd BufNewFile,BufRead *.htm*,*.ph*,*.inc imap ä &auml;
Wenn es nachträglich sein soll, musst Du Dir ein Makro für jeden
Buchstaben anlegen:
 map <F7> :%s/ä/\&auml;/g<CR>


Super, aber geht mapping auch beim Schreiben/Lesen der Datei. Was ich
meine:

Ich habe die html-Datei und da steht nun \&auml drin. Wenn ich diese
Datei öffne sieht das hässlich aus, ist schwer lesbar und jede
Rechtscheibkorrektur wird verzweifeln. Also möchte ich das vim beim
lesen der Datei in den Buffer mir \&auml->ä ersetzt. Dann hab ich einen
wunderbar lesbaren Buffer mit dem ich angenehm arbeiten kann. Ich kann
problemlos alle möglichen Sonderzeichen eintippen, ... und wenn ich die
Datei wieder wegschreibe muß natürlich das umgekehrte mapping erfolgen
ä->\&auml.

Gibt's da ne Lösung für?

:1,$s/\\&auml/ä/g

: = Befehl folgt
1,$ = Alle Zeilen
s = substitude (ersetzen)
/ = Feldtrenner
\\&auml = Der String der ersetzt werden soll [1]
ä = Zeichen durch das ersetzt werden soll
g = Auch Mehrere Vorkommen in einer Zeile ersetzten

HTH

[1] Der Backslasch muss 2* getippt werden, da er normalerweise eine Sonderbedeutung hat. Der erste Backslash hebt also nur die Sonderbedeutung für den 2. auf.

--
- maik



Reply to: