Chuyển đổi EOL trong notepad ++


113

Vì một số lý do, khi tôi mở tệp từ máy chủ unix trên máy windows của mình, chúng thỉnh thoảng có chuyển đổi Macintosh EOL và khi tôi chỉnh sửa / lưu lại chúng không hoạt động bình thường trên máy chủ unix. Tôi chỉ sử dụng notepad ++ để chỉnh sửa tệp từ máy chủ unix này, vậy có cách nào để tạo macro tự động chuyển đổi EOL sang định dạng Unix bất cứ khi nào tôi mở tệp không?



1
Vấn đề của bạn có thể là với bất kỳ chương trình FTP nào bạn đang sử dụng. Ví dụ: tôi sử dụng WinSCP để điều khiển từ xa vào máy chủ Unix, Notepad ++ được đặt làm trình soạn thảo mặc định của tôi, nhưng tôi phải vào cài đặt của WinSCP và đặt chế độ truyền Binaryđể giữ nguyên phần cuối dòng. Vì vậy, bạn có thể định cấu hình lại chương trình FTP / SCP / etc của mình để chuyển các tệp theo một cách khác.
Slicktrick

Câu trả lời:


200

Chức năng đó đã được tích hợp sẵn trong Notepad ++. Từ menu "Chỉnh sửa", chọn "Chuyển đổi EOL" -> "Định dạng UNIX / OSX".

ảnh chụp màn hình của tùy chọn để tìm kiếm nhanh hơn (hoặc các phiên bản ngôn ngữ khác nhau)

Bạn cũng có thể đặt EOL mặc định trong notepad ++ thông qua "Cài đặt" -> "Tùy chọn" -> "Tài liệu mới / Thư mục mặc định" rồi chọn "Unix / OSX" trong hộp Định dạng.


7
Tôi biết về chuyển đổi trong menu chỉnh sửa và cài đặt bạn đã đề cập chỉ dành cho các tài liệu mới. Tôi muốn tự động thực hiện chuyển đổi cho mọi tệp tôi mở (hoặc mọi tệp tôi lưu)
Jeff

Vấn đề là khi tôi mở tệp Unix hiện có, "Chuyển đổi EOL" -> Định dạng UNIX / OSX chuyển sang màu xám. Notepad ++ gây khó chịu khi sử dụng với các tệp UNIX, vì vậy tôi sử dụng Notetab Lite cho phép tôi lưu Tất cả các tệp dưới dạng UNIX, không chỉ những tệp mới.
Off The Gold

3
@OffTheGold Tùy chọn UNIX EOL chuyển sang màu xám vì đây là lựa chọn hiện tại.
blakeoft

Tiếp tục. Cảm ơn bạn từ tháng 11 năm 2017 qua Google.
SDsolar

Điều này không làm việc cho tôi. Tôi tiếp tục chọn "EOL Conversion -> Unix", nhưng nó không có tác dụng gì. Tôi quay lại menu và thấy rằng Windows là tùy chọn chuyển sang màu xám (do đó đã chọn?), Vì vậy tôi nhấp lại vào Unix. Tôi thậm chí đã cố gắng chọn tất cả văn bản của mình trước trong trường hợp nó chỉ hoạt động khi lựa chọn, sau đó chọn lại Unix. Tuy nhiên nó không làm gì cả.
Loduwijk

16

Trong Notepad ++, sử dụng thay thế tất cả bằng biểu thức chính quy. Điều này có lợi thế hơn so với lệnh chuyển đổi trong menu là bạn có thể thao tác trên toàn bộ thư mục mà phải mở từng tệp hoặc kéo n thả (trên vài trăm tệp, nó sẽ trở nên chậm hơn đáng kể) ngoài ra bạn cũng có thể đặt bộ lọc ký tự đại diện tên tệp.

(\r?\n)|(\r\n?)

đến

\n

Điều này sẽ khớp mọi mẫu kết thúc dòng có thể có (đơn \ r, \ n hoặc \ r \ n) trở lại \ n. (Hoặc \ r \ n nếu bạn đang chuyển đổi sang kiểu cửa sổ)

Để hoạt động trên nhiều tệp, hãy:

  • Sử dụng "Thay thế Tất cả trong tất cả tài liệu đã mở" trong tab "Thay thế". Trước tiên, bạn sẽ phải kéo và thả tất cả các tệp vào Notepad ++. Thật tốt là bạn sẽ có quyền kiểm soát tệp nào sẽ hoạt động nhưng có thể chậm nếu có vài trăm hoặc hàng nghìn tệp.
  • "Thay thế trong tệp" trong tab "Tìm trong tệp", bằng bộ lọc tệp bạn chọn, ví dụ: * .cpp * .cs trong một thư mục được chỉ định.

Điều này có thể làm mất EOL do thay thế \ r \ n \ r \ n bằng một \ n. Tôi nghĩ.
Sunspawn vào

Xác nhận đã hoạt động trong Notepad ++ 6.9.1. Nó sẽ tìm kiếm về phía trước, do đó không phải thay thế đệ quy những cái ở phía sau.
Wappenull

Khi trả lời: "Điều này có thể gây mất EOL do thay thế \ r \ n \ r \ n bằng một \ n" >> Điều này sẽ không xảy ra, vì nó sử dụng | (hoặc) toán tử giữa 2 nhóm có thể.
Wappenull

3

Tôi mở tệp "trực tiếp" từ WinSCP, mở tệp trong Notepad ++ Tôi đã có tệp php trên máy chủ linux của mình, tệp này luôn mở ở định dạng Mac bất kể tôi đã làm gì :-(

Nếu tôi tải xuống tệp và sau đó mở nó từ cục bộ (cửa sổ), nó sẽ mở dưới dạng Dos / Windows .... hmmm

Giải pháp là EOL-chuyển đổi tệp cục bộ thành "Định dạng UNIX / OSX", lưu nó và sau đó tải nó lên.

Bây giờ khi tôi mở tệp trực tiếp từ máy chủ, nó sẽ mở dưới dạng "Dos / Windows" :-)


1

Tùy thuộc vào dự án của bạn, bạn có thể muốn xem xét sử dụng EditorConfig ( https://editorconfig.org/ ). Có một plugin Notepad ++ sẽ tải .editorconfig nơi bạn có thể chỉ định "lf" làm phần cuối của dòng bắt buộc.

Tôi chỉ mới bắt đầu sử dụng nó, nhưng nó tốt cho đến nay và các dự án mã nguồn mở mà tôi đã làm việc đã bao gồm các tệp .editorconfig trong nhiều năm. Cài đặt "Chuyển đổi EOL" không được thay đổi, vì vậy có thể hơi khó hiểu, nhưng nếu bạn "Xem> Hiển thị biểu tượng> Hiển thị cuối dòng", bạn có thể thấy rằng nó đang thêm LF thay vì CRLF, ngay cả khi "Chuyển đổi EOL "và góc dưới bên dưới hiển thị một cái gì đó khác (ví dụ: Windows (CR LF)).

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.