2012-12-20 24 views
6

Sử dụng lệnh :source của vim trên tệp vimscript có đuôi dòng dos cho tôi lỗi mà nó không thể xử lý với ^M ký tự.Cách tạo vim: nguồn chấp nhận các kết thúc dòng khác nhau?

Các ký tự ^M là một phần của kết thúc dòng dos, nhưng không phải là kết thúc dòng unix. Vì vậy, nó đang cố gắng để :source các tập tin bằng cách sử dụng một định dạng tập tin unix.

Điều này là, tôi có cài đặt :set fileformats=unix,dos. Khi mởchỉnh sửa tệp (không phải :source: -ing), không có sự cố kết thúc dòng. Vim thấy một tập tin với kết thúc dòng dos tinh khiết và theo fileformats nó điều chỉnh chính nó cho phù hợp.

:help fileformats chỉ cung cấp cho các đầu mối barest rằng trên dos hệ thống nếu bạn có :set fileformats=unix,dos, vim thực hiện một phát hiện ad-hoc trong đó nó nên sử dụng (và như một chi tiết không liên quan, đây :source xử lý phát hiện trộn kết thúc dòng khác so với hơn để mở mở tệp).

Tôi đang sử dụng hệ thống mac hiện đại, làm cách nào để có được nó ở :source một tệp kết thúc dòng dos?

Trả lời

6

Điều này được thảo luận tại :h :source_crnl.

Trên hệ thống UNIX, trong đó bao gồm Mac OS X, không có phát hiện CRLF tự động, và một CR thực tế ở phần cuối của một dòng sẽ thể nâng cao một lỗi, ví dụ trong bản đồ. Từ trợ giúp:

Trên các hệ thống khác, Vim mong muốn tệp ": nguồn" sẽ kết thúc bằng < NL>. Những thứ này luôn hoạt động. Nếu bạn đang sử dụng tệp có số < CR> < NL> < EOL> s (ví dụ: tệp được tạo trên MS-DOS), tất cả các dòng sẽ có dấu là < CR>.

Để có khả năng tương thích tốt nhất, tốt nhất nên có tệp tập lệnh Vim luôn sử dụng dòng mới NL. Những điều này sẽ luôn hoạt động ở mọi nơi, miễn là dòng đầu tiên của tập lệnh không vì lý do nào đó kết thúc bằng CR và 'fileformats' không trống (không được để trống theo mặc định).

Tóm lại, hãy xem xét chuyển đổi kết thúc dòng của bạn thành LF.

+0

Cách dễ dàng để thực hiện chuyển đổi này là thực hiện ': set ff = unix' và sau đó lưu tệp. ... đó là nếu ': set ff?' trả về 'dos' anyway ... –

+1

@ dash-tom-bang Hoặc, trong một lệnh đơn,': w ++ ff = unix'. – glts

Các vấn đề liên quan