Que signifie [converti] au bas de vim?


39

J'ai un fichier journal, et lorsque je l'ouvre via vim, il semble illisible, et il est [converti] en bas. Que signifie [converti]?

Existe-t-il un moyen de résoudre le problème de format afin qu'il soit lisible par l'homme?


Rien ne garantit qu'un fichier journal est lisible par l'homme. Au moins certains fichiers /var/log/ne le sont pas. Quel programme a fait le fichier journal? Quel est son nom de fichier?
Anthon

@Anthon Le journal d'origine semble bon, mais après la rotation du journal par daemontools, il n'est plus lisible par l'homme.
Mingyu

At-il été compressé par la rotation? Avez-vous exécuté la filecommande sur le fichier?
Anthon

@ Anthony Le type de fichier est data. Qu'est-ce que ça veut dire?
Mingyu

1
Après que je cours :set fileencoding=utf-8, filesorties data. Lorsque je cours fileavec le fichier journal d'origine, il est généré gzip compressed data, from Unix. Ainsi, la solution appropriée consiste à exécuter en filepremier lieu au lieu de fonctionner :set, ce qui perturbera davantage le fichier.
Mingyu

Réponses:


33

Cela signifie que vimdétecté que le fichier ne correspond pas au jeu de caractères donné par vos paramètres régionaux et a effectué une conversion. Si vous exécutez la commande :setde l'intérieurvim :

: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

Notez les 2 dernières options, fileencoding & fileencodings.

Le premier est l'encodage utilisé pour le fichier actuel, le second est une liste d'encodages reconnus séparés par des virgules.

Alors, quand vous voyez ce message vimvous dit que la conversion du fichier defileencoding enencoding .

Check-out :help fileencoding ou :help encodingpour plus de détails.

Référence

J'ai trouvé le fil ci-dessous, que j'ai utilisé comme source lorsque cela a été répondu. Le site d'origine a maintenant disparu (accessible dans l'historique de cette réponse), je déplace donc le contenu de ce fil ici pour des raisons de postérité. Le lien était toujours dans la Wayback Machine .

#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

12

En vimmode commande, tapez:

:help read-messages

Tu peux voir:

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

En général, cela signifie que vim a détecté que le fichier ne correspond pas au jeu de caractères fourni par vos paramètres régionaux et a effectué une conversion.

Pour voir plus de détails, essayer :help fileencoding, :help fileencodings.


2

Cela signifie que le fichier sur disque n'utilise pas le même jeu de caractères que la zone de mémoire de Vim et que la conversion de l'un à l'autre a réussi. Appuyez sur la touche d'échappement et tapez cette commande.

:set fileformat=unix

Enregistrez le fichier et essayez de lire à nouveau.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.