Notepad bỏ qua ngắt dòng [trùng lặp]


36

Câu hỏi này đã có câu trả lời ở đây:

Hầu hết các tài liệu tôi đang mở trong notepad.exe trong windows 7 gần đây, không có ngắt dòng ... mọi thứ chỉ chạy cùng nhau. Các tài liệu tương tự trong bất kỳ chương trình nào khác, thậm chí được xem trước trực tiếp trong Explorer, sẽ hiển thị chính xác các ngắt dòng. điều này xảy ra với nhiều tệp .info, .css, .js .. nhưng không phải tất cả chúng.

Tôi đoán đó là một loại ký tự mã hóa unix kết thúc dòng này hay thứ khác, nhưng tự hỏi liệu tôi có thể làm gì hay có ai có kinh nghiệm tương tự không và liệu tôi có thể làm cho notepad hoạt động chính xác không. Tôi thích nó hơn notepad ++ / trình soạn thảo văn bản khác cho những mục đích sử dụng nhất định.


Xem stackoverflow.com/a/50241693/6309 : Notepad hiện hỗ trợ \ n (Windows 10, Q2 2018)
VonC

Câu trả lời:


45

Có ngắt dòng, tuy nhiên các hệ điều hành khác nhau nhận ra các chuỗi khác nhau cho ngắt dòng.

Notepad chỉ nhận ra CR, LF (0x0d, 0x0a), trong khi các nguồn khác có thể chỉ sử dụng CR hoặc chỉ LF.

Bạn không thể làm cho Notepad hoạt động khác đi, vì vậy lựa chọn duy nhất của bạn là đảm bảo nội dung có trình tự phù hợp với Notepad. Lưu ý rằng notepad là trình chỉnh sửa duy nhất có hạn chế này, vì vậy nếu nội dung của bạn hoạt động trong Notepad, nó sẽ hoạt động ở mọi nơi khác.

Một cách đơn giản để sửa các nguồn cấp dữ liệu là sao chép và dán văn bản vào Word, sau đó quay lại vào notepad và các nguồn cấp dữ liệu sẽ được "sửa" thành chuỗi CR, LF.


36
aha Nghe có vẻ giống như việc bỏ notepad có thể dễ dàng hơn nhiều; P
Damon

1
Hoàn toàn (đệm).
Paul

3
Tôi nghĩ rằng điều thực sự khó hiểu là giới hạn hai mươi tuổi này chưa từng được sửa chữa ...
Haroldo_OK

1
mở bằng từ, lưu, sau đó mở bằng notepad ... không cần sao chép-dán
Gavin Palmer

2
Tin tốt, công nghệ cuối cùng đã đến .
mkobit

9

Bàn phím

Nếu ác cảm của bạn với notepad ++ và các trình soạn thảo văn bản khác là chúng không phải là một phần tiêu chuẩn của tất cả các hệ thống Windows, hãy sử dụng Wordpad. Nó không hoàn toàn thô sơ như Notepad.

Wordpad sẽ đọc và hiển thị chính xác các tệp văn bản với các kết thúc dòng Unix.

Khác

Nếu bạn không thích cả hai trình soạn thảo văn bản một thật thì notepad ++ có lẽ là một lựa chọn tốt.


thử nghiệm của tôi w / notepad ++ để xem / chỉnh sửa thực sự nhanh chóng thực sự là nó giữ cho nhiều tài liệu mở trừ khi tôi đặc biệt đóng chúng; chỉ không cảm thấy đúng cho việc sử dụng đó. Tôi chỉ có thể liên kết lại các tệp loại văn bản với worpad và đảm bảo rằng nó có trong open with...menu của tôi .
Damon

2
Đối với bất kỳ ai đọc những năm sau này, Bạn có thể tắt chức năng này trong các tùy chọn, đại loại như "Ghi nhớ phiên hiện tại cho lần ra mắt tiếp theo"
Uberfuzzy

2
@Damon Tôi cũng từng ghét hành vi này, nhưng bạn có thể vô hiệu hóa nó. Bạn chỉ cần cấu hình Notepad ++ để không mở lại các phiên cũ. Chuyển đến Cài đặt -> Tùy chọn -> Sao lưu. Bỏ chọn "Ghi nhớ phiên hiện tại để khởi chạy tiếp theo".
Bacon Bits

Sẽ nói rằng vấn đề không phải là quá nhiều về việc muốn trình soạn thảo văn bản được chuyển sang Windows, cũng như muốn Windows cung cấp ít nhất một trình soạn thảo văn bản đàng hoàng. Tôi sẽ không tính MS Word hoặc Wordman là "trình soạn thảo văn bản", vì mục đích của các công cụ này là tạo báo cáo, thay vì chỉnh sửa văn bản. Văn bản không nhất thiết phải đi kèm với các trang hoặc phải phù hợp với các trang. Vẫn trong năm 2018 và Windows 10, tôi chưa tìm thấy bất kỳ thứ gì trong số này.
patrik

5

Bạn có thể viết một tập lệnh bó đơn giản :

@ECHO OFF
TYPE %1 | FIND /V "" >%1.1
MOVE %1.1 %1 > NUL 2>&1
START "NOTEPAD" C:\WINDOWS\SYSTEM32\NOTEPAD.EXE %1
EXIT /B

Lưu cái này như notepad.battrong bất cứ thư mục nào bạn thích. Sau đó, thay vì mở .info/ .css/ .jstệp của bạn bằng Notepad, hãy mở chúng bằng tập lệnh bó này. Nó sẽ tự động chuyển đổi tất cả các kết thúc dòng Unix sang DOS và sau đó mở tệp bằng Notepad.

Hạn chế:

  • Mỗi khi bạn mở chương trình, nó sẽ thêm một dòng mới vào cuối tập tin. ( Đã sửa bởi @mpag )
  • Mở cửa sổ Dấu nhắc Lệnh (Đã sửa bằng cách sử dụng STARTtrên dòng 4)
  • Thay đổi ngày tạo của tệp thành ngày hiện tại


đề nghị khác. thay thế startdòng bằng START "NOTEPAD" "%SystemRoot%\System32\NOTEPAD.EXE" %1để khái quát hóa cho những crazies có D là ổ đĩa gốc hoặc WinNT cho thư mục windows của họ.
mpag

@mpag Chắc chắn, ngoại trừ tôi không cảm thấy cần phải chỉnh sửa câu trả lời của mình. Bất cứ ai cũng đủ rằng thư mục gốc của họ C:sẽ không nhận được hỗ trợ từ tôi. C:đã trở thành tiêu chuẩn kể từ khi DOS ra đời năm 1981.
MD XF

1
để bảo toàn dấu thời gian:mkdir %1.dir TYPE %1 | FIND /V "" >%1.dir\%1 robocopy . %1.dir %1 /copy:t >NUL 2>&1 move %1.dir\%1 . > NUL 2>&1 rmdir %1.dir
mpag

Hoặc bạn chỉ có thể sử dụng này tiện ích tồn tại trước đó.
mbomb007

4

Vì Notepad ++ đã được đề cập cụ thể trong OP, nên (ít nhất là bây giờ) có cài đặt cần thiết trong:

Chỉnh sửa -> Chuyển đổi EOL -> Định dạng Windows.


Phiên bản Notepad ++ 7.5.9, các tùy chọn có tên "Windows (CR LF)" trong Chuyển đổi EOL.
André M. Faria

3

Bạn cần thay đổi loại mã hóa ngắt dòng được sử dụng trong tệp.

Trong Linux có một chương trình gọi là "unix2dos" có thể làm điều đó cho bạn. Tôi không chắc chắn nếu Windows đi kèm với một chương trình như vậy, nhưng dường như có một chương trình tương tự có sẵn ở đây: http://www.thefreecountry.com/tofrodos/

Có nhiều thông tin liên quan đến quá trình này trong Wikipedia: http://en.wikipedia.org/wiki/Unix2dos nơi bạn có thể lấy ví dụ về các chương trình dòng lệnh khác nhau có thể thay đổi.


nếu bạn đã cài đặt Sublime, bạn có thể chọn View->Line endings -> Windowsvà sau đó lưu tệp để ghi đè lên nó. Trong trường hợp này, kết thúc dòng unix sẽ chuyển sang định dạng Windows. Nếu bạn mở tệp đã lưu này trong Notepad, nó sẽ hiển thị kết thúc dòng chính xác.
Junior M

1

Một điều khác bạn có thể làm: Mở tệp trong Wordman và sau đó lưu nó. Nó sẽ sửa các kết thúc dòng. Đây là phương pháp nhanh nhất.


1

Bạn đã đúng rằng đó là một vấn đề với kết thúc dòng Unix. Có một số kết thúc dòng khác nhau , nhưng ba biến thể là phổ biến nhất:

  • "U + 000A LINE FEED" (LF): Unix, Linux, macOS, v.v.
  • "U + 000D CARRIAGE RETURN" (CR): macOS cổ điển trong số những người khác
  • "U + 000D CARRIAGE TRẢ LẠI" theo sau là "U + 000A LINE FEED" (CRLF): Windows và các hệ điều hành không phải Unix / IBM khác

Các phiên bản cũ hơn của Notepad chỉ nhận ra CRLF, nhưng các phiên bản mới hơn hỗ trợ CRLF, CR và LF .

Không có cài đặt để thay đổi hành vi này trong các phiên bản cũ hơn của Notepad, nhưng bạn có thể trở lại hành vi cũ trong phiên bản mới . Hầu hết các chương trình chính thống khác đã hoạt động với cả ba kết thúc dòng trong một thời gian khá dài, vì vậy nếu nội dung của bạn hoạt động trong các phiên bản cũ hơn của Notepad, thì nó sẽ hoạt động khá nhiều ở mọi nơi khác.

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.