Apa yang [dikonversi] artinya di bawah vim?


38

Saya memiliki file log, dan ketika saya membukanya melalui vim, sepertinya tidak dapat dibaca, dan itu telah [dikonversi] di bagian bawah. Apa artinya [dikonversi]?

Apakah ada cara untuk memperbaiki masalah format sehingga dapat dibaca oleh manusia?


Tidak ada jaminan bahwa file log dapat dibaca oleh manusia. Setidaknya beberapa file /var/log/tidak. Program mana yang membuat file log? Apa nama file-nya?
Anthon

@Anthon Log asli terlihat bagus, tetapi setelah rotasi log oleh daemontools, tidak lagi dapat dibaca manusia.
Mingyu

Apakah itu dikompresi oleh rotasi. Apakah Anda menjalankan fileperintah pada file?
Anthon

@Anthon Jenis file adalah data. Apa artinya?
Mingyu

1
Setelah saya jalankan :set fileencoding=utf-8, fileoutput data. Ketika saya menjalankan fileterhadap file log asli, itu output gzip compressed data, from Unix. Dengan demikian, solusi yang tepat adalah menjalankan fileterlebih dahulu alih-alih menjalankan :set, yang selanjutnya mengacaukan file.
Mingyu

Jawaban:


32

Ini berarti bahwa vimterdeteksi bahwa file tidak cocok dengan rangkaian karakter yang diberikan oleh lokal Anda dan melakukan konversi. Jika Anda menjalankan perintah :setdari dalam 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

Perhatikan 2 opsi terakhir, fileencoding& fileencodings.

Yang pertama adalah pengkodean yang digunakan untuk file saat ini, yang kedua adalah daftar pengkodean yang dikenali oleh koma.

Jadi, ketika Anda melihat pesan vimitu memberi tahu Anda bahwa itu selesai mengubah file dari fileencodingke encoding.

Lihat :help fileencodingatau :help encodinguntuk detail tambahan.

Referensi

Saya menemukan utas di bawah ini, yang saya gunakan sebagai sumber ketika ini dijawab. Situs asli sekarang hilang (dapat diakses dalam riwayat jawaban ini), jadi saya memindahkan konten utas itu di sini untuk anak cucu. The Link masih di 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

Dalam vimmode perintah, ketik:

:help read-messages

Anda bisa melihat:

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

Secara umum, itu berarti vim mendeteksi file tidak cocok dengan rangkaian karakter yang diberikan oleh lokal Anda dan melakukan konversi.

Untuk melihat lebih detail, coba :help fileencoding, :help fileencodings.


2

Ini berarti bahwa file-on-disk tidak menggunakan charset yang sama dengan area memori Vim, dan bahwa konversi dari satu ke yang lain berhasil. Tekan tombol escape dan ketik perintah ini.

:set fileformat=unix

Simpan file dan coba baca lagi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.