O que significa [convertido] na parte inferior do vim?

38

Eu tenho um arquivo de log e quando o abro via vim, ele não parece legível e foi convertido na parte inferior. O que significa [convertido]?

Existe uma maneira de corrigir o problema de formato para que seja legível por humanos?

Mingyu
fonte
Não há garantia de que um arquivo de log seja humanamente legível. Pelo menos alguns dos arquivos /var/log/não são. Qual programa criou o arquivo de log? Qual é o nome do arquivo?
Anthon
@Anthon O log original parece bom, mas após a rotação do daemontools, ele não é mais legível por humanos.
Mingyu
Ficou comprimido pela rotação. Você executou o filecomando no arquivo?
Anthon
@Anthon O tipo de arquivo é data. O que isso significa?
Mingyu
11
Depois de executar :set fileencoding=utf-8, filesaídas data. Quando executo fileo arquivo de log original, ele é gerado gzip compressed data, from Unix. Portanto, a solução adequada é executar fileprimeiro em vez de executar :set, o que atrapalha ainda mais o arquivo.
Mingyu

Respostas:

32

Isso significa que vimdetectou que o arquivo não corresponde ao conjunto de caracteres fornecido pelo seu código de idioma e fez uma conversão. Se você executar o comando :setde dentro 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

Observe as 2 últimas opções, fileencoding& fileencodings.

A primeira é a codificação usada para o arquivo atual, a segunda é uma lista separada por vírgula de codificações reconhecidas.

Então, quando você vê essa mensagem viminformando que foi concluída a conversão do arquivo de fileencodingpara encoding.

Confira :help fileencodingou :help encodingpara detalhes adicionais.

Referência

Encontrei o tópico abaixo, que usei como fonte quando isso foi respondido. Agora, o site original se foi (acessível na história desta resposta), por isso estou movendo o conteúdo desse segmento para o bem da posteridade. O link ainda estava na 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
slm
fonte
12

No vimmodo de comando, digite:

:help read-messages

Você pode ver:

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

Em geral, isso significa que o vim detectou que o arquivo não correspondia ao conjunto de caracteres fornecido pelo seu código de idioma e fez uma conversão.

Para ver mais detalhes, tente :help fileencoding, :help fileencodings.

cuonglm
fonte
2

Isso significa que o arquivo em disco não usa o mesmo conjunto de caracteres da área de memória do Vim e que a conversão de um para o outro foi bem-sucedida. Pressione a tecla Escape e digite este comando.

:set fileformat=unix

Salve o arquivo e tente ler novamente.

Ramesh
fonte