VIM Editor: Mã hóa tệp và kết thúc dòng


0

Khi lưu tệp, đây là các cài đặt mặc định của tôi trong TextMate (Mac OS X):

Mã hóa tệp: UTF8 (được khuyến nghị) Kết thúc dòng: LF (được khuyến nghị)

Làm cách nào tôi có thể đặt VIM để lưu các tệp có cùng mã hóa tệp và kết thúc dòng như TextMate? Tôi sẽ biết ơn bất kỳ đề nghị. Cảm ơn bạn!

Câu trả lời:


5
" Stick with the UTF-8 encoding.
if has('multi_byte')
  " Encoding used for the terminal.
  if empty(&termencoding)
    let &termencoding = &encoding
  endif

  " Encoding used in buffers, registers, strings in expressions, "viminfo"
  " file, etc.
  set encoding=utf-8

  " Encoding used for writing files.
  setglobal fileencoding=utf-8
endif

" Use both Unix and DOS file formats, but favor the Unix one for new files.
set fileformats=unix,dos

CHÚ THÍCH: Ưu điểm của dòng cuối cùng là cả hai định dạng được hiển thị chính xác trong bộ đệm Vim. Ví dụ: nếu bạn xóa dos từ fileformats, sau đó tất cả dos các tệp mà bạn sẽ mở trong Vim từ bây giờ sẽ bị lộn xộn với ^M biểu tượng ở cuối dòng. Điều này ^M không có gì khác, nhưng \r mà Vim, trong trường hợp này, sẽ không giải thích đúng. Vì vậy, nó được khuyến khích để giữ fileformats như được trình bày ở trên. Đừng lo lắng, bất kỳ tệp mới nào bạn tạo sẽ được sử dụng unix định dạng theo mặc định (như đã nêu trong nhận xét ở trên).

Nếu bạn gặp một số tập tin với dos định dạng và muốn chuyển đổi nó thành unix, sau đó gõ như sau:

:set ff=unix

Cảm ơn, nhưng điều kiện IF đó làm gì? có cần thiết không

Nó đang kiểm tra xem Vim có được biên dịch với đa bào tính năng (bao gồm hỗ trợ Unicode và hơn thế nữa). Bạn có thể gõ :version và tìm kiếm +multi_byte. Nếu nó có mặt ở đó, điều đó có nghĩa là Vim đã được biên dịch với đa bào tính năng, và kiểm tra này chắc chắn sẽ vượt qua. Mặt khác, nếu bạn thấy -multi_byte ở đó, điều đó có nghĩa là ngược lại (Unicode không được hỗ trợ) và do đó, kiểm tra này sẽ không vượt qua, điều này sẽ ngăn Vim không bị sập / sủa khi tải .vimrc.
Alexander Shukaev

Có, tôi có tùy chọn đó (+ multi_byte). Có nên đặt cả mã hóa và mã hóa tệp thành utf-8 không? Tôi không thực sự hiểu sự khác biệt giữa chúng. Khi tôi tạo một tập tin được sử dụng? Và cái nào khi tôi lưu nó. Cảm ơn bạn!

Nhận xét ngắn đã cung cấp cho bạn khá nhiều thông tin về mục đích thực tế của cả hai encodingfileencoding. Tôi không có ý định viết lại tài liệu Vim ở đây. :h encoding:h fileencoding là bạn của bạn
Alexander Shukaev

0

Các kết thúc dòng được xác định bởi 'fileformat' (thực sự được sử dụng) và 'fileformats' (những gì được phát hiện) tùy chọn. Nếu có unix trong đó, bạn ổn; đại diện cho <LF>. Bạn có thể dùng :help trên bất kỳ trong số này để đọc thêm.

Của bạn 'encoding' nên được đặt thành utf-8và giá trị đó cũng sẽ xuất hiện trong 'fileencodings' (theo mặc định).

Bạn có thể kiểm tra các cài đặt với (lưu ý phần đuôi ? sau tên tùy chọn):

:set encoding?

Để thay đổi vĩnh viễn, đặt :set ... lệnh vào ~/.vimrc.

Lưu ý rằng bạn cũng luôn có thể ghi đè cài đặt, ví dụ:

:edit ++ff=unix ++enc=utf-8 myfile
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.