[Chuyển đổi] có nghĩa là gì ở dưới cùng của vim?


38

Tôi có một tệp nhật ký và khi tôi mở nó qua vim, nó trông không thể đọc được và nó có [chuyển đổi] ở phía dưới. [Chuyển đổi] có nghĩa là gì?

Có cách nào để khắc phục vấn đề định dạng để con người có thể đọc được không?


Không có gì đảm bảo rằng một tệp nhật ký có thể đọc được. Ít nhất một số các tập tin trong /var/log/không. Chương trình nào đã tạo ra tệp nhật ký? Tên tập tin của nó là gì?
Anthon

@Anthon Nhật ký ban đầu có vẻ tốt, nhưng sau khi xoay vòng nhật ký bằng daemontools, nó không còn có thể đọc được.
Mingyu

Nó có bị nén bởi vòng quay không. Bạn đã chạy filelệnh trên tập tin?
Anthon

@Anthon Loại tệp là data. Điều đó nghĩa là gì?
Mingyu

1
Sau khi tôi chạy :set fileencoding=utf-8, fileđầu ra data. Khi tôi chạy filevới tệp nhật ký gốc, nó xuất ra gzip compressed data, from Unix. Vì vậy, giải pháp thích hợp là chạy filetrước thay vì chạy :set, điều này làm rối thêm tệp.
Mingyu

Câu trả lời:


32

Điều đó có nghĩa là đã vimphát hiện ra rằng tệp không khớp với bộ ký tự được cung cấp bởi ngôn ngữ của bạn và thực hiện chuyển đổi. Nếu bạn chạy lệnh :settừ bên trong 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

Lưu ý 2 tùy chọn cuối cùng, fileencoding& fileencodings.

Đầu tiên là mã hóa được sử dụng cho tệp hiện tại, thứ hai là danh sách mã hóa được phân tách bằng dấu phẩy.

Vì vậy, khi bạn thấy thông báo đó vimcho bạn biết rằng đã hoàn tất việc chuyển đổi tệp từ fileencodingsang encoding.

Kiểm tra :help fileencodinghoặc :help encodingđể biết thêm chi tiết.

Tài liệu tham khảo

Tôi tìm thấy các chủ đề dưới đây, mà tôi đã sử dụng như một nguồn khi điều này đã được trả lời. Trang web ban đầu đã biến mất (có thể truy cập trong lịch sử của câu trả lời này), vì vậy tôi đang chuyển nội dung của chủ đề đó ở đây vì lợi ích của hậu thế. Các liên kết vẫn còn trong máy 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

12

Trong vimchế độ lệnh, gõ:

:help read-messages

Bạn có thể thấy:

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

Nói chung, điều đó có nghĩa là vim đã phát hiện tệp không khớp với bộ ký tự được cung cấp bởi ngôn ngữ của bạn và thực hiện chuyển đổi.

Để xem chi tiết hơn, hãy thử :help fileencoding, :help fileencodings.


2

Điều đó có nghĩa là tệp trên đĩa không sử dụng cùng bộ ký tự như vùng nhớ của Vim và việc chuyển đổi từ tệp này sang tệp khác đã thành công. Nhấn phím thoát và gõ lệnh này.

:set fileformat=unix

Lưu tập tin và thử đọc lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.