Что означает [преобразованный] в нижней части vim?

39

У меня есть файл журнала, и когда я открываю его через vim, он выглядит не читаемым, и он [конвертируется] внизу. Что означает [преобразовано]?

Есть ли способ исправить проблему с форматированием, чтобы она была удобочитаемой?

Mingyu
источник
Нет никаких гарантий, что файл журнала читается человеком. По крайней мере, некоторые из файлов /var/log/не являются. Какая программа сделала файл журнала? Какое у него имя файла?
Anthon
@Anthon Исходный журнал выглядит хорошо, но после ротации журнала daemontools он больше не читается человеком.
Mingyu
Сжатие это вращением. Вы запустили fileкоманду для файла?
Anthon
@Anthon Тип файла data. Что это значит?
Mingyu
1
После того, как я бегу :set fileencoding=utf-8, fileвыходы data. Когда я запускаю fileисходный файл журнала, он выводит gzip compressed data, from Unix. Таким образом, правильное решение состоит в том, чтобы запустить fileсначала вместо run :set, что еще больше испортит файл.
Mingyu

Ответы:

33

Это означает, что 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

Обратите внимание на последние 2 варианта fileencoding& fileencodings.

Первая - это кодировка, используемая для текущего файла, вторая - список распознанных кодировок через запятую.

Поэтому, когда вы видите, что сообщение vimговорит вам, что оно завершило преобразование файла из fileencodingв encoding.

Проверьте :help fileencodingили :help encodingдля получения дополнительной информации.

Ссылка

Я нашел ветку ниже, которую я использовал в качестве источника, когда на этот вопрос был дан ответ. Первоначальный сайт больше не доступен (доступен в истории этого ответа), поэтому я перевожу содержимое этой темы сюда для потомков. Связь была еще в 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
источник
12

В vimкомандном режиме введите:

:help read-messages

Ты можешь видеть:

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

В общем, это означает, что vim обнаружил, что файл не соответствует кодировке, указанной в вашей локали, и сделал преобразование.

Чтобы увидеть больше деталей, попробуйте :help fileencoding, :help fileencodings.

cuonglm
источник
2

Это означает, что файл на диске не использует ту же кодировку, что и область памяти Vim, и что преобразование из одного в другое прошло успешно. Нажмите клавишу выхода и введите эту команду.

:set fileformat=unix

Сохраните файл и попробуйте прочитать снова.

Рамеш
источник