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 listin Vim wird Leerzeichen angezeigt. Zeilenende wird als ' $' angezeigt, und Wagenrückläufe werden normalerweise als ' ^M' angezeigt.
:set listzeigt KEINE ^MZeichen (CRs) an. Das Bereitstellen der -bOption zu vi / vim funktioniert. Oder geben Sie nach dem Laden von vim :e ++ff=unix
:set nolist
Um der offiziellen Antwort nicht zuzustimmen:
:set listzeigt 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 editzeigt e[dit]! [++opt] [+cmd]. Und :help ++esagt, dass das Argument [++ opt] verwendet werden kann, um den Wert von 'fileformat' [..] zu erzwingen .
:set listzeigt newline ( $), :e ++ff=unixzeigt CR ( ^M); Wenn Sie beide sehen wollen, :set listdann:e ++ff=unix
:set ff=unixweist 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=unixWeist es an, das Dateiformat zwangsweise festzulegen, unixohne 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.
vimaus irgendeinem Grund ... Ich meine weder -bOption, noch :e ++ff=unixwenn drinnen :(
VI zeigt Zeilenumbrüche (LF-Zeichen, Code x0A) an, indem der nachfolgende Text in der nächsten Zeile angezeigt wird.
Verwenden Sie den -bSchalter für den Binärmodus. ZB vi -b filenameoder vim -b filename --.
Anschließend werden CR-Zeichen ( x0D) als Zeichen angezeigt , die normalerweise nicht in Dateien im Unix-Stil verwendet werden ^M.
UnixUmgebung arbeite . Ich möchte jedoch vor Zeilenenden vom Typ Windows gewarnt werden, falls diese in der Datei vorhanden sind. Wird vi -b filenameoder wird :set binarynur angezeigt, ^Mob es sich um eine Windows-Datei handelt und ansonsten keine anderen Zeilenenden?
Nur um zu klären, warum :set listCRs nicht als ^Mohne angezeigt werden e ++ff=unixund warum :set listnichts 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, macund unixjeweils.
Wenn die listOption festgelegt ist, zeigt Vim das $Zeichen an, wenn der Zeilenumbruch aufgetreten ist, unabhängig davon, welche fileformatOption 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 fileformatden erkannten Optionen ein und konvertiert im Wesentlichen alle internen $Zeichen mit den entsprechenden Zeichen. Wenn das fileformatpassiert ist, unixschreibt es einfach \nanstelle seines internen Zeilenumbruchs.
Der Trick besteht darin, Vim zu zwingen, eine doscodierte Datei als unixeine zu lesen . Der Nettoeffekt ist , dass sie alle entfernen wird \n‚s verlassen \rsie s unberührt und zeigt , wie‘ ^Ms in Ihrem Puffer. Bei der Einstellung :set listwerden zusätzlich interne Zeilenenden als angezeigt $. Immerhin sehen Sie ^M$anstelle von doscodierten Zeilenumbrüchen.
Beachten Sie auch, dass dies :set listnichts mit Anzeigen zu tun hat ^M. Sie können dies selbst überprüfen (stellen Sie sicher, dass Sie die listOption zuerst deaktiviert haben ), indem Sie eine einzelne CR mit und CTRL-Vanschließend Enterim Einfügemodus einfügen. Nachdem Sie den Puffer auf die Disc geschrieben und erneut geöffnet haben, wird dies angezeigt, ^Mobwohl die listOption 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 binarynicht das gleiche wie vim -b filename.py. Irgendeine Idee warum? Ich habe das überprüft helpund es scheint, dass das, was Sie sagen, im Allgemeinen richtig ist. Wie finde ich heraus, warum das so ist?
:e ++ff=unixzeigt das ^Mrichtig 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 catund -Akö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.