Kennt jemand einen Texteditor unter Linux, mit dem ich Zeilenumbrüche und Zeilenumbrüche sehen kann? Unterstützt Vim diese Funktion?
vim
newline
text-editor
line-breaks
carriage-return
Usertest
quelle
quelle
Antworten:
:set list
in Vim wird Leerzeichen angezeigt. Zeilenende wird als '$
' angezeigt, und Wagenrückläufe werden normalerweise als '^M
' angezeigt.quelle
:set list
zeigt KEINE^M
Zeichen (CRs) an. Das Bereitstellen der-b
Option zu vi / vim funktioniert. Oder geben Sie nach dem Laden von vim:e ++ff=unix
:set nolist
Um der offiziellen Antwort nicht zuzustimmen:
:set list
zeigt keine ^ M Zeichen (CRs) an. Das Bereitstellen der Option -b für vi / vim funktioniert. Oder geben Sie nach dem Laden von vim ein:e ++ff=unix
.quelle
:help edit
zeigte[dit]! [++opt] [+cmd]
. Und:help ++e
sagt, dass das Argument [++ opt] verwendet werden kann, um den Wert von 'fileformat' [..] zu erzwingen .:set list
zeigt newline ($
),:e ++ff=unix
zeigt CR (^M
); Wenn Sie beide sehen wollen,:set list
dann:e ++ff=unix
:set ff=unix
weist Vim Vim an , die Zeilenenden in den Unix-Stil zu ändern (als Teil des Festlegens des Dateiformats), damit die ^ M-Zeichen nicht mehr vorhanden sind (und daher nicht angezeigt werden).:e ++ff=unix
Weist es an, das Dateiformat zwangsweise festzulegen,unix
ohne den Inhalt tatsächlich zu ändern. Vim liest es also wie eine Unix-Datei, sieht die CR-Zeichen als Extra und zeigt sie als ^ M an.vim
aus irgendeinem Grund ... Ich meine weder-b
Option, noch:e ++ff=unix
wenn drinnen :(VI zeigt Zeilenumbrüche (LF-Zeichen, Code
x0A
) an, indem der nachfolgende Text in der nächsten Zeile angezeigt wird.Verwenden Sie den
-b
Schalter für den Binärmodus. ZBvi -b filename
odervim -b filename --
.Anschließend werden CR-Zeichen (
x0D
) als Zeichen angezeigt , die normalerweise nicht in Dateien im Unix-Stil verwendet werden^M
.quelle
Unix
Umgebung arbeite . Ich möchte jedoch vor Zeilenenden vom Typ Windows gewarnt werden, falls diese in der Datei vorhanden sind. Wirdvi -b filename
oder wird:set binary
nur angezeigt,^M
ob es sich um eine Windows-Datei handelt und ansonsten keine anderen Zeilenenden?Nur um zu klären, warum
:set list
CRs nicht als^M
ohne angezeigt werdene ++ff=unix
und warum:set list
nichts damit zu tun hat^M
.Wenn Vim intern eine Datei in seinen Puffer einliest , ersetzt es alle zeilenenden Zeichen durch eine eigene Darstellung (nennen wir es
$
s). Um zu bestimmen, welche Zeichen entfernt werden sollen, wird zunächst erkannt, in welchem Format Zeilenenden in einer Datei gespeichert sind. Wenn es nur CRLF sind'\r\n'
oder nur CR'\r'
oder nur LF'\n'
Zeilenende - Zeichen, dann die'fileformat'
festgelegt istdos
,mac
undunix
jeweils.Wenn die
list
Option festgelegt ist, zeigt Vim das$
Zeichen an, wenn der Zeilenumbruch aufgetreten ist, unabhängig davon, welchefileformat
Option erkannt wurde. Es verwendet eine eigene interne Darstellung von Zeilenumbrüchen und zeigt diese an.Wenn Sie nun Puffer auf die Disc schreiben , fügt Vim zeilenende Zeichen entsprechend
fileformat
den erkannten Optionen ein und konvertiert im Wesentlichen alle internen$
Zeichen mit den entsprechenden Zeichen. Wenn dasfileformat
passiert ist,unix
schreibt es einfach\n
anstelle seines internen Zeilenumbruchs.Der Trick besteht darin, Vim zu zwingen, eine
dos
codierte Datei alsunix
eine zu lesen . Der Nettoeffekt ist , dass sie alle entfernen wird\n
‚s verlassen\r
sie s unberührt und zeigt , wie‘^M
s in Ihrem Puffer. Bei der Einstellung:set list
werden zusätzlich interne Zeilenenden als angezeigt$
. Immerhin sehen Sie^M$
anstelle vondos
codierten Zeilenumbrüchen.Beachten Sie auch, dass dies
:set list
nichts mit Anzeigen zu tun hat^M
. Sie können dies selbst überprüfen (stellen Sie sicher, dass Sie dielist
Option zuerst deaktiviert haben ), indem Sie eine einzelne CR mit undCTRL-V
anschließendEnter
im Einfügemodus einfügen. Nachdem Sie den Puffer auf die Disc geschrieben und erneut geöffnet haben, wird dies angezeigt,^M
obwohl dielist
Option auf 0 gesetzt ist.Weitere Informationen zu Dateiformaten finden Sie unter http://vim.wikia.com/wiki/File_format oder durch Eingabe
:help 'fileformat'
von Vim.quelle
Versuchen Sie den folgenden Befehl.
: binär setzen
In VIM sollte dies dasselbe tun wie die Verwendung der Befehlszeilenoption "-b". Wenn Sie dies in Ihre Startdatei (dh .vimrc) einfügen, ist es immer für Sie vorhanden.
Auf vielen * nix-Systemen gibt es einen Befehl "dos2unix" oder "unix2dos", mit dem die Datei verarbeitet und vermutete Probleme mit dem Zeilenende behoben werden können. Wenn es keine Probleme mit den Zeilenenden gibt, werden die Dateien nicht geändert.
quelle
set binary
nicht das gleiche wievim -b filename.py
. Irgendeine Idee warum? Ich habe das überprüfthelp
und es scheint, dass das, was Sie sagen, im Allgemeinen richtig ist. Wie finde ich heraus, warum das so ist?:e ++ff=unix
zeigt das^M
richtig an und zeigt es nicht an, wenn ichunix
Ich empfehle Ihnen, Ihre .vimrc-Datei zu bearbeiten, um eine Liste von Befehlen auszuführen. Bearbeiten Sie Ihre .vimrc-Datei wie folgt:
Wenn Sie vim ausführen, werden die Befehle in .vimrc ausgeführt, und Sie können dieses Beispiel sehen:
quelle
Mit
cat
und-A
können Sie neue Zeilen als$
, Registerkarten als sehen^I
cat -A myfile
quelle
Sie können Bruchlinien mit dem gedit- Editor anzeigen .
Erstens, wenn Sie nicht installiert haben:
Installieren Sie jetzt die gedit-Plugins :
Wählen Sie das Plugin " Räume zeichnen" , geben Sie "Einstellungen" ein und wählen Sie " Neue Linien zeichnen"
Mit VSCode können Sie installieren Zeilenenden Erweiterung.
Sublime Text 3 verfügt über ein Plugin namens RawLineEdit , das Zeilenenden anzeigt und das Einfügen eines beliebigen Zeilenendentyps ermöglicht
shift + ctrl + p
Geben Sie den Namen des Plugins ein und wechseln Sie, um das Zeilenende anzuzeigen.quelle