[转换]在vim的底部是什么意思?


37

我有一个日志文件,当我通过vim打开它时,它看起来不可读,并且在底部已[转换]。[转换]是什么意思?

有没有一种方法可以解决格式问题,使其易于阅读?


不能保证日志文件是人类可读的。至少其中一些文件/var/log/不是。哪个程序制作了日志文件?它的文件名是什么?
Anthon 2014年

@Anthon原始日志看起来不错,但是在daemontools旋转日志之后,它不再可读。
Mingyu 2014年

它被旋转压缩了吗?您是否file在文件上运行了命令?
Anthon 2014年

@Anthon文件类型为data。这意味着什么?
Mingyu 2014年

1
我跑步后:set fileencoding=utf-8file输出data。当我file针对原始日志文件运行时,它输出gzip compressed data, from Unix。因此,正确的解决方案是file先运行:set,而不是run ,这进一步使文件混乱。
Mingyu 2014年

Answers:


31

这意味着vim检测到文件与您的语言环境指定的字符集不匹配,并进行了转换。如果:set从以下位置运行命令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

请注意最后两个选项fileencodingfileencodings

第一个是用于当前文件的编码,第二个是用逗号分隔的已识别编码的列表。

因此,当您看到该消息时vim,告诉您已完成将文件从转换fileencodingencoding

退房:help fileencoding:help encoding了解其他详细信息。

参考

我在下面找到了该线程,当我回答该问题时,我将该线程用作源。原来的站点现在不见了(可以在此答案的历史记录中访问),因此出于后代的原因,我在此移动了该线程的内容。该链接仍然在Wayback机器

#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

11

vim命令方式下,键入:

:help read-messages

您可以看到:

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

通常,这意味着vim检测到文件与您的语言环境给出的字符集不匹配,并进行了转换。

要了解更多信息,尝试:help fileencoding:help fileencodings


2

这意味着磁盘上的文件与Vim的存储区使用的字符集不同,并且从一个到另一个的转换成功。按退出键,然后键入此命令。

:set fileformat=unix

保存文件,然后尝试再次阅读。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.