vimの下部で[変換済み]とはどういう意味ですか?


38

ログファイルがありますが、vimで開くと、読み取り不能になり、下部に[変換済み]が表示されます。[converted]はどういう意味ですか?

フォーマットの問題を修正して人間が読めるようにする方法はありますか?


ログファイルが人間が読み取れるという保証はありません。少なくともいくつかのファイル/var/log/はそうではありません。どのプログラムがログファイルを作成しましたか?そのファイル名は何ですか?
アントン14

@Anthon元のログは良好に見えますが、daemontoolsによるログのローテーション後、人間が読めなくなりました。
ミンギュ14

回転によって圧縮されましたか。fileファイルに対してコマンドを実行しましたか?
アントン14

@Anthonファイルタイプはdataです。どういう意味ですか?
ミンギュ14

1
実行後:set fileencoding=utf-8file出力しますdatafile元のログファイルに対して実行すると、が出力されますgzip compressed data, from Unix。したがって、適切な解決策は、run fileの代わりに最初に実行:setすることです。これにより、ファイルがさらに混乱します。
ミンギュ14

回答:


32

これは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

1つ目は現在のファイルに使用されるエンコーディングで、2つ目は認識されたエンコーディングのコンマ区切りリストです。

そのため、このメッセージvimが表示されたとき、ファイルのからfileencodingへの変換が完了したことが通知されencodingます。

チェックアウトする:help fileencoding:help encoding、詳細を確認してください。

参照

私は以下のスレッドを見つけました。これが回答されたときにソースとして使用しました。元のサイトは現在(この回答の履歴でアクセス可能)なくなっているため、後世のためにそのスレッドのコンテンツをここに移動しています。リンクはウェイバックマシンにまだありました

#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

ではvimコマンドモード、入力します。

:help read-messages

あなたが見ることができます:

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

一般的に、vimはファイルがロケールによって指定された文字セットと一致しないことを検出し、変換を行ったことを意味します。

詳細を表示するには、してみてください:help fileencoding:help fileencodings


2

これは、ディスク上のファイルがVimのメモリ領域と同じ文字セットを使用せず、一方から他方への変換が成功したことを意味します。Escキーを押して、このコマンドを入力します。

:set fileformat=unix

ファイルを保存して、もう一度お試しください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.