2010-10-05 25 views
105

Có ai biết về trình soạn thảo văn bản trên Linux cho phép tôi xem các ngắt dòng và trả về vận chuyển không? Vim có hỗ trợ tính năng này không?Xem ngắt dòng và trả về vận chuyển trong trình chỉnh sửa

+0

LƯU Ý: đôi khi dòng mới ($) và dấu xuống dòng (^ M) được ẩn trong MANY bảng màu và cũng có thể sử dụng putty cho ssh. –

Trả lời

91

:set list trong Vim sẽ hiển thị khoảng trắng. Kết thúc các dòng hiển thị là '$' và lợi nhuận vận chuyển thường hiển thị là '^M'.

+1

Cùng một câu hỏi ở đây: http://superuser.com/questions/97692/vim-show-line-feeds-carriage-return –

+167

Không đúng, ': bộ danh sách' sẽ KHÔNG hiển thị ký tự'^M' (CR). Việc cung cấp tùy chọn '-b' cho vi/vim sẽ hoạt động. Hoặc, một khi vim được nạp, gõ: ': e ++ ff = unix' – CaptSaltyJack

+4

@CaptSaltyJack Điều đó cần phải là câu trả lời riêng ..... –

68

VI hiển thị dòng mới (ký tự LF, mã x0A) bằng cách hiển thị văn bản tiếp theo trên dòng tiếp theo.

Sử dụng công tắc -b cho chế độ nhị phân. Ví dụ: vi -b filename hoặc vim -b filename --.

Sau đó, nó sẽ hiển thị các ký tự CR (x0D), thường không được sử dụng trong các tệp kiểu Unix, như các ký tự ^M.

146

Để không đồng ý với câu trả lời chính thức:

:set list sẽ không chương^M ký tự (CR). Việc cung cấp tùy chọn -b cho vi/vim sẽ hoạt động. Hoặc, khi vim được tải, hãy nhập :e ++ff=unix.

+1

Tại sao ': set ff = unix' không hoạt động, nhưng': e ++ ff = unix' làm gì? –

+2

Đó là Cú pháp. ': help edit' hiển thị' e [dit]! [++ opt] [+ cmd] '. Và ': help ++ e' nói _ Đối số [++ opt] có thể được sử dụng để buộc giá trị của 'fileformat' [..] _. – dennis

+11

chỉ để làm rõ, ': set list' hiển thị dòng mới (' $ '),': e ++ ff = unix' hiển thị CR ('^ M'); nếu bạn muốn xem cả hai, ': set list' rồi': e ++ ff = unix' –

9

Hãy thử lệnh sau.

: đặt nhị phân

Trong VIM, điều này sẽ làm tương tự như khi sử dụng tùy chọn dòng lệnh "-b". Nếu bạn đặt tệp này vào tệp khởi động (tức là .vimrc), tệp này sẽ luôn sẵn sàng cho bạn.

Trên nhiều hệ thống * nix, có lệnh "dos2unix" hoặc "unix2dos" có thể xử lý tệp và sửa bất kỳ sự cố kết thúc dòng nghi ngờ nào. Nếu không có vấn đề với kết thúc dòng, các tập tin sẽ không được thay đổi.

1

Tôi đề nghị bạn chỉnh sửa tệp .vimrc, để chạy danh sách các lệnh. Chỉnh sửa tập tin vimrc của bạn, như thế này:

cat >> ~/.vimrc <<EOF 
set ffs=unix 
set encoding=utf-8 
set fileencoding=utf-8 
set listchars=eol:¶ 
set list 
EOF 

Khi bạn đang thực hiện vim, các lệnh vào vimrc được thực hiện, và bạn có thể xem ví dụ này:

My line with CRLF eol here ^M¶ 
8

Chỉ cần làm rõ lý do tại sao :set list sẽ không hiển thị CR dưới dạng ^M mà không có e ++ff=unix và lý do tại sao :set list không liên quan gì đến số ^M.

Nội bộ khi Vim đọc một tệp vào bộ đệm, nó sẽ thay thế tất cả các ký tự dòng có đại diện riêng (hãy gọi nó là $). Để xác định những ký tự nào cần được loại bỏ, trước tiên nó sẽ phát hiện ra những gì kết thúc dòng định dạng được lưu trữ trong một tập tin. Nếu chỉ có CRLF '\r\n' hoặc chỉ CR '\r' hoặc chỉ LF '\n' ký tự kết thúc dòng, thì 'fileformat' được đặt thành dos, macunix tương ứng.

Khi tùy chọn list được đặt, Vim hiển thị $ ký tự khi ngắt dòng xảy ra bất kể tùy chọn fileformat đã được phát hiện. Nó sử dụng đại diện bên trong của riêng mình của dòng-break và đó là những gì nó hiển thị.

Bây giờ khi bạn viết đệm vào đĩa, Vim chèn ký tự kết thúc dòng theo những gì fileformat tùy chọn đã beed phát hiện, essentialy chuyển đổi tất cả những nội $ 's với các nhân vật thích hợp. Nếu số fileformat xảy ra là unix thì nó sẽ chỉ viết \n thay cho ngắt dòng nội bộ của nó.

Bí quyết là bắt buộc Vim đọc một tệp được mã hóa dosunix một. Hiệu ứng ròng là nó sẽ loại bỏ tất cả \n 's để lại \r' s bị ảnh hưởng và hiển thị chúng như là ^M 's trong bộ đệm của bạn. Đặt :set list sẽ bổ sung hiển thị dòng nội bộ dưới dạng $. Sau khi tất cả, bạn thấy ^M$ thay cho dos ngắt dòng được mã hóa.

Cũng lưu ý rằng :set list không liên quan gì đến việc hiển thị số ^M. Bạn có thể tự mình kiểm tra (đảm bảo bạn đã vô hiệu hóa tùy chọn list trước) bằng cách chèn CR đơn lẻ sử dụng CTRL-V theo sau là Enter trong chế độ chèn. Sau khi ghi bộ đệm vào đĩa và mở lại, bạn sẽ ses ^M tùy chọn được đặt thành 0.

Bạn có thể tìm thêm thông tin về định dạng tệp trên http://vim.wikia.com/wiki/File_format hoặc bằng cách nhập :help 'fileformat' trong Vim.

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