Wenn Sie unter Solaris eine Datei in vi mit Windows-Zeilenenden öffnen, wird dies am Ende jeder Zeile als ^ M angezeigt.
Unter Linux ist vi cleverer und versteht das Windows-Dateiformat und zeigt ^ M nicht an.
Gibt es eine Einstellung, mit der Linux vi sich in dieser Hinsicht wie Solaris verhält?
Ein häufiges Problem für uns ist das Kopieren eines Shell-Skripts von einer (Windows) -Dev-Box und das Vergessen, es mit dos2unix zu versehen. Unter Solaris ist das Problem offensichtlich, sobald Sie die Datei öffnen, unter Linux jedoch nicht.
Vielen Dank.
vim
Normalerweise sehe ich auf meiner standardmäßig keine^M
, aber manchmal befindet sich eine am Ende der Datei.Antworten:
Versuchen Sie es
:set ffs=unix
beim Starten von vi (oder in vimrc als Standard), bei dem alle CR-Zeichen als angezeigt werden sollen^M
.vi errät automatisch, welches Format verwendet werden soll, basierend darauf, ob es auf Zeilen stößt, die nur mit LF oder beiden CR / LF enden.
quelle
:set list
zeigt$
am Ende aller Zeilen (Unix & DOS - Format), also nicht zwischen den beiden zu unterscheiden hilft.Not an editor command: ffs=unix
- aber mich auf den richtigen Weg gebracht. Laufen:set ffs=unix
mit der Datei in vi geöffnet hat nicht funktioniert - kein Fehler, aber nichts ist passiert. Ich habeset ffs=unix
meine .vimrc-Datei eingefügt und das hat funktioniert.ffs
genau so, wie es ist. Aber siehe die Antwort von @wisbucky.So zeigen Sie die Zeilenenden für die aktuelle Datei an:
:e +ff=unix
Dies zwingt das Dateiformat zu Unix, das
CR
als gerendert wird^M
Um diese Einstellung dauerhaft zu machen, fügen Sie Folgendes hinzu
~/.vimrc
:set ffs=unix
Beachten Sie, dass die Einstellung von .vimrc
ffs
nicht istff
.quelle
:e ++ff=unix
, glaube ich.