Was bedeutet [konvertiert] am Ende von vim?

38

Ich habe eine Protokolldatei und wenn ich sie über vim öffne, sieht sie nicht lesbar aus und hat unten [konvertiert]. Was bedeutet [konvertiert]?

Gibt es eine Möglichkeit, das Formatproblem so zu beheben, dass es für Menschen lesbar ist?

Mingyu
quelle
Es gibt keine Garantie dafür, dass eine Protokolldatei für den Menschen lesbar ist. Zumindest einige der Dateien in /var/log/sind nicht. Welches Programm hat die Protokolldatei erstellt? Wie lautet der Dateiname?
Anthon
@Anthon Das ursprüngliche Protokoll sieht gut aus, ist aber nach der Protokollrotation durch daemontools nicht mehr für den Menschen lesbar.
Mingyu
Wurde es durch die Drehung komprimiert? Haben Sie den fileBefehl für die Datei ausgeführt?
Anthon
@Anthon Der Dateityp ist data. Was bedeutet das?
Mingyu
1
Nachdem ich ausgeführt habe :set fileencoding=utf-8, wird fileausgegeben data. Wenn ich filegegen die ursprüngliche Protokolldatei starte, wird sie ausgegeben gzip compressed data, from Unix. Daher ist es die richtige Lösung, filezuerst zu starten :set, anstatt zu starten , was die Datei weiter durcheinander bringt.
Mingyu

Antworten:

32

Dies bedeutet, dass vimfestgestellt wurde, dass die Datei nicht mit dem von Ihrem Gebietsschema angegebenen Zeichensatz übereinstimmt, und dass eine Konvertierung durchgeführt wurde. Wenn Sie den Befehl :setvon innen ausführen vim:

:set
--- Options ---
  autoindent          fileformat=dos      scroll=7            textwidth=70
  background=dark     filetype=asciidoc   shiftwidth=2        ttyfast
  cscopetag           helplang=en         softtabstop=2       ttymouse=sgr
  cscopeverbose       hlsearch            syntax=asciidoc
noendofline           list                tabpagemax=3
  expandtab           ruler               textmode
  backspace=indent,eol,start
  comments=s1:/*,ex:*/,://,b:#,:%,:XCOMM,fb:-,fb:*,fb:+,fb:.,fb:>
  cscopeprg=/usr/bin/cscope
  fileencoding=utf-8
  fileencodings=ucs-bom,utf-8,latin1

Beachten Sie die letzten beiden Optionen fileencoding& fileencodings.

Die erste ist die für die aktuelle Datei verwendete Kodierung, die zweite ist eine durch Kommas getrennte Liste der erkannten Kodierungen.

Wenn Sie also sehen, dass die Nachricht Sie vimdarüber informiert, dass die Konvertierung der Datei von fileencodingnach abgeschlossen ist encoding.

Check out :help fileencodingoder :help encodingfür weitere Details.

Referenz

Ich habe den folgenden Thread gefunden, den ich als Quelle verwendet habe, als dies beantwortet wurde. Die ursprüngliche Site ist jetzt weg (zugänglich in der Geschichte dieser Antwort), daher verschiebe ich den Inhalt dieses Threads hierher, um der Nachwelt willen. Der Link befand sich noch in der Wayback-Maschine .

#1 Eli the Bearded January 21st, 2004 - 06:51 pm ET | Report spam
In comp.os.linux.misc, Leon. wrote:
Hide the quote
"Gaétan Martineau" wrote in message
news:E9jLb.2903$
> [ system_notes]$ vi installation_chouette.txt
> What means the [converted] at the bottom of the screen, as in:
> "installation_chouette.txt" [converted] 2576L, 113642C

It means that vim detected that the file did not match the
charset given by your locale and made a conversion. What does

:set

Tell you about "fileencoding" and "fileencodings"? The first is
the encoding used for the current file, the second is a comma
separated list of recognized encodings.

Hide the quote
> This file has accented characters. How can I save the file so that if I
> reload if again, I do not see "converted"?



Figure out what charset you want, and then

:set fileencoding=[charset]
:w

Hide the quote
It means deleting the Microsoft Dos/ Windows CR LF end of lines, to just
LF - unix standard end of lines.

It does not. If you open a file with DOS line ends, vim reports [dos]
after the filename, not [converted]. If you do have a dos file that
you wish to convert to unix line ends, you can

:set fileformat=unix
:w

Elijah
slm
quelle
12

Geben Sie im vimBefehlsmodus Folgendes ein:

:help read-messages

Du kannst sehen:

[converted]      conversion from 'fileencoding' to
                 'encoding' done

Im Allgemeinen bedeutet dies, dass vim erkannt hat, dass die Datei nicht mit dem von Ihrem Gebietsschema angegebenen Zeichensatz übereinstimmt, und eine Konvertierung durchgeführt hat.

Um zu sehen , mehr Details, versuchen :help fileencoding, :help fileencodings.

cuonglm
quelle
2

Dies bedeutet, dass die Datei auf der Festplatte nicht denselben Zeichensatz wie der Speicherbereich von Vim verwendet und die Konvertierung von einer in die andere erfolgreich war. Drücken Sie die Escape-Taste und geben Sie diesen Befehl ein.

:set fileformat=unix

Speichern Sie die Datei und versuchen Sie es erneut.

Ramesh
quelle