Kennt jemand einen Texteditor unter Linux, mit dem ich Zeilenumbrüche und Zeilenumbrüche sehen kann? Unterstützt Vim diese Funktion?
Kennt jemand einen Texteditor unter Linux, mit dem ich Zeilenumbrüche und Zeilenumbrüche sehen kann? Unterstützt Vim diese Funktion?
Antworten:
:set list
in Vim wird Leerzeichen angezeigt. Zeilenende wird als ' $
' angezeigt, und Wagenrückläufe werden normalerweise als ' ^M
' angezeigt.
: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
.
:help edit
zeigt e[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. ZB vi -b filename
oder vim -b filename --
.
Anschließend werden CR-Zeichen ( x0D
) als Zeichen angezeigt , die normalerweise nicht in Dateien im Unix-Stil verwendet werden ^M
.
Unix
Umgebung arbeite . Ich möchte jedoch vor Zeilenenden vom Typ Windows gewarnt werden, falls diese in der Datei vorhanden sind. Wird vi -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 werden e ++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 ist dos
, mac
und unix
jeweils.
Wenn die list
Option festgelegt ist, zeigt Vim das $
Zeichen an, wenn der Zeilenumbruch aufgetreten ist, unabhängig davon, welche fileformat
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 das fileformat
passiert ist, unix
schreibt es einfach \n
anstelle seines internen Zeilenumbruchs.
Der Trick besteht darin, Vim zu zwingen, eine dos
codierte Datei als unix
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 von dos
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 die list
Option zuerst deaktiviert haben ), indem Sie eine einzelne CR mit und CTRL-V
anschließend Enter
im Einfügemodus einfügen. Nachdem Sie den Puffer auf die Disc geschrieben und erneut geöffnet haben, wird dies angezeigt, ^M
obwohl die list
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.
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.
set binary
nicht das gleiche wie vim -b filename.py
. Irgendeine Idee warum? Ich habe das überprüft help
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 ich unix
Ich empfehle Ihnen, Ihre .vimrc-Datei zu bearbeiten, um eine Liste von Befehlen auszuführen. Bearbeiten Sie Ihre .vimrc-Datei wie folgt:
cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF
Wenn Sie vim ausführen, werden die Befehle in .vimrc ausgeführt, und Sie können dieses Beispiel sehen:
My line with CRLF eol here ^M¶
Mit cat
und -A
können Sie neue Zeilen als $
, Registerkarten als sehen^I
cat -A myfile
Sie können Bruchlinien mit dem gedit- Editor anzeigen .
Erstens, wenn Sie nicht installiert haben:
sudo apt-get install gedit
Installieren Sie jetzt die gedit-Plugins :
sudo apt-get install 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.