Cách tự động định dạng / thụt lề XML / HTML trong Notepad ++


628

Có cách nào để thụt lại một khối mã không? Tôi đang tìm kiếm một cái gì đó tương tự Ctrl+ Shift+ Ftrong Eclipse (Định dạng tự động / thụt lề).

Để rõ ràng,

  • Tôi đã biết cách định dạng XML bên ngoài Notepad ++ (Eclipse hoạt động tốt, như đã đề cập) vì vậy tôi không cần một loạt các liên kết đến các công cụ định dạng XML khác.
  • Tôi đặc biệt làm việc với XML và HTML.
  • Lý tưởng nhất là có một phím bấm tiện lợi như cái trong Eclipse, vì vậy tôi không phải phá vỡ quy trình làm việc của mình.

Tôi đã biết về NppAutoInent - nó sẽ không hoạt động, vì tôi đang làm việc với XML, HTML và CSS.


Câu trả lời:


838

Kể từ khi tôi nâng cấp lên 6.3.2, tôi sử dụng XML Tools.

  • cài đặt Công cụ XML thông qua Quản trị viên Plugin.
  • sử dụng phím tắt Ctrl+ Alt+ Shift+ B( hoặc menu → Plugins → Công cụ XML → In đẹp)

Trong các phiên bản cũ hơn: menu → TextFX → HTML Tidy → Tidy: Reindent XML.


11
Tôi đã cài đặt phiên bản 5.9.8 và thêm TextFX làm plugin. Plugin -> Trình quản lý plugin -> Hiển thị Trình quản lý plugin. Chọn TextFX và cài đặt. Sau khi khởi động lại npp, menu 'TextFS' sẽ hiển thị.
thúc

19
Cảnh giác với lỗi libtidy.dll bị thiếu trong các phiên bản gần đây khi cài đặt plugin HTMLTidy.
Amos M. Carpenter

11
Công cụ XML sẽ định dạng XHTML, nhưng không phải HTML. Hãy thử định dạng này : <form><input><input><input><input><input></form>. Mã của bạn cần phải ở định dạng này để hoạt động, đây sẽ là một công cụ giải quyết cho nhiều nhà phát triển:<form><input /><input /><input /><input /><input /></form>
thdoan

1
Tìm tùy chọn Định dạng trong Menu: Tiện ích mở rộng-> Công cụ XML -> In đẹp (có ngắt dòng)
fl0w

1
Hãy cẩn thận với điều này, nó sẽ biến <div> </ div> thành <div /> nếu div trống. Đây có thể là một thay đổi đột phá cho trình duyệt web kết xuất kiểu css.
Timothy Gonzalez

53

Cài đặt plugin Tidy2. Tôi có Notepad ++ v6.2.2 và Tidy2 hoạt động tốt cho đến nay.


5
Tôi thứ hai, Tidy2 đã hoàn thành công việc đánh dấu HTML và làm rất tốt công việc đó.
DWils

2
Tôi thứ ba này. Công cụ XML không hoạt động với tôi và không thể làm cho nó hoạt động với TextFX
Christian Vielma

4
Cảm ơn .. 'Công cụ XML' không hoạt động trên một số tệp nhất định và đây là công cụ phù hợp với tôi.
Subhashi

4
Chú ý: Các thực thể ký tự HTML nhất định được thay thế bằng ký tự unicode của chúng khi bạn ngăn nắp. Điều này là bất kể cấu hình Tidy2 hoặc mã hóa tài liệu. Ví dụ: "& # 8217;" trước khi dọn dẹp trở thành "'" (trích dẫn "thông minh") sau khi dọn dẹp. Điều này làm cho Tidy2 không thể sử dụng cho tôi. Dự án đã không được cập nhật kể từ năm 2012.
trebormf

không có tùy chọn nào cho việc sử dụng các tab thay vì khoảng trắng để thụt lề sẽ giết tôi.
cori

36

Đối với những người không biết, npp có rất nhiều hỗ trợ từ các plugin và các dự án khác. Bạn có thể tải xuống các plugin đó từ SourceForge .

nhập mô tả hình ảnh ở đây

Bạn cần XML Toolsđịnh dạng văn bản của bạn trong n ++

Sau khi bạn đã tải xuống XML Tools..

Thoát Notepad ++

Chuyển đến C:\Program File\Notepad++.... Thư mục đã cài đặt N ++ của bạn.

  1. Đặt bên dưới các tệp từ các công cụ xml mà bạn đã tải xuống trong thư mục gốc npp bằng cách copy replace

nhập mô tả hình ảnh ở đây

  1. Đi đến ..\Pluginsthư mục con và đặt bên dưới tệp đã tải xuống

nhập mô tả hình ảnh ở đây

Khởi động lại và tận hưởng !!!

Ctrl+ Alt+ Shft+ Bđể định dạng.


4
Tôi dường như không có trình quản lý plugin - Tôi có notepad ++ 7.3.3.

14

Đây là lần thứ ba tôi cài đặt Windows và npp và sau một thời gian tôi nhận ra chức năng gọn gàng không còn hoạt động. Vì vậy, tôi google cho một giải pháp, đến với chủ đề này, sau đó với sự giúp đỡ của một vài chủ đề nữa để cuối cùng tôi sửa nó. Tôi sẽ đặt một bản tóm tắt về tất cả các hành động của tôi một lần và mãi mãi.

  1. Cài đặt plugin TextFX: Plugin -> Trình quản lý plugin -> Hiển thị Trình quản lý plugin. Chọn các ký tự TextFX và cài đặt. Sau khi khởi động lại npp, menu 'TextFX' sẽ hiển thị. (tín dụng: @remipod).

  2. Cài đặt libtidy.dll bằng cách dán thư mục Cấu hình từ gói npp cũ: Làm theo hướng dẫn trong câu trả lời này .

  3. Sau khi có thư mục Cấu hình ở đích cài đặt npp mới nhất của bạn (thường là C: \ Chương trình tệp (x86) \ Notepad ++ \ plugin), npp cần quyền truy cập ghi vào thư mục đó. Nhấp chuột phải vào thư mục Cấu hình -> Thuộc tính -> tab Bảo mật -> chọn Người dùng, nhấp Chỉnh sửa -> kiểm tra Toàn quyền kiểm soát để cho phép truy cập đọc / ghi. Lưu ý rằng bạn cần đặc quyền của quản trị viên để làm điều đó.

  4. Khởi động lại npp và xác minh TextFX -> TextFX HTML Tidy -> Tidy: Reindent XML hoạt động.


Nếu bạn đang sử dụng cài đặt "allowAppDataPlugins" (cho phép plugin theo người dùng), bạn có thể thực hiện việc này bằng cách đặt thư mục gọn gàng từ bước 2 trong thư mục plugin người dùng của bạn và bỏ qua bước 3.
palswim

@palswim: Rất vui, cảm ơn! Giải pháp của bạn sạch hơn khi một người dùng sử dụng npp.
Vladimir Grigorov

9

Notepad ++ không cung cấp bất kỳ tính năng nào như vậy theo mặc định. Nhưng bạn có thể sử dụng một số công cụ trực tuyến để tự động định dạng văn bản như https://www.freeformatter.com/xml-formatter.html .

Nó giúp. :)


2
Mặc dù câu trả lời này là một cách giải quyết thay vì giải pháp cho câu hỏi của OP, nhưng đó là điều duy nhất phù hợp với tôi. Cả Công cụ XML và Tidy2 đều có vấn đề.
Nigel Alderton

8

Tôi đã phải cập nhật cài đặt proxy trong Plugins -> Trình quản lý plugin -> Hiển thị Trình quản lý plugin -> Cài đặt để xem bất kỳ PlugIns nào trong danh sách "Có sẵn".

Sau đó, cài đặt "Công cụ XML" thật dễ dàng và thực hiện công việc được yêu cầu như mô tả ở trên.


Sử dụng "Công cụ XML", thụt lề không như tôi yêu cầu đối với mã HTML + Javascript. Tìm thấy plugin "UniversalIndentGUI" thực hiện công việc độc đáo bằng cách đặt ngôn ngữ thành HTB (HTML, XML, XSL) và sau đó chạy 'thụt lề văn bản' từ menu plugin.
Giáo sư

6

Để trả lời trực tiếp OP, hãy xem trang web của anh chàng này: Thomas Hunter Notepad ++ Tidy cho XML . Các bước đơn giản để làm theo và bạn có được định dạng XML rất đẹp ngay bên trong NPP. Cho đến nay, sự bất thường duy nhất tôi tìm thấy là với các phần tử tự đóng lồng nhau:

<OuterTag>Text for outer element<SelfClosingTag/></OuterTag>

Sẽ được dọn dẹp tới:

<OuterTag>Text for outer element
<SelfClosingTag/></OuterTag>

Có thể có một cách để khắc phục điều này, nhưng hiện tại, nó đã được quản lý để giảm số lượng dòng trong tài liệu của tôi xuống 300k và sự bất thường đặc biệt này có thể được khắc phục.


1

Tôi đang sử dụng Notepad 7.6 với "Plugin Admin" và tôi không thể tìm thấy Công cụ XML.
Tôi đã phải cài đặt thủ công như @ some-java-guys đã làm trong câu trả lời của anh ấy ngoại trừ thư mục plugin của tôi được đặt ở đây: C:\Users\<my username>\AppData\Local\Notepad++\plugins
Trong thư mục đó tôi đã tạo một thư mục mới (có tên XmlTools) và sao chép XMLTools.dll ở đó. (Và tôi đã sao chép tất cả các phụ thuộc vào thư mục Notepad ++ trong các tệp Chương trình.)


Với Notepad ++ v7.8.4, "Công cụ XML" có sẵn trong "Quản trị viên plugin". Có lẽ đã từng có một sự không tương thích hoặc một cái gì đó. Vẫn có vẻ như nó cũng tích cực phát triển, xem xét cam kết mới nhất là 2 ngày trước trên github.com/morbac/xmltools
Micah Lindstrom

1

Chỉ cần cài đặt notepad ++ mới nhất và cài đặt thụt lề. Trên thanh menu chọn Plugins -> Plugins Admin và selct thụt lề Bằng cách gấp và cài đặt. Hoạt động tốt nhất


đây phải là câu trả lời ngay bây giờ vì tôi không thể sử dụng công cụ xml hoặc tidy2 để hoạt động. Dù sao, chúng ta có thể gán phím tắt cho việc sử dụng này?
Irfandi D. Vendy

Phiên bản mới nhất của Notepad ++ (7.8.6) rất đáng thất vọng. Tôi đã thử cài đặt IndentByFold vào phiên bản 7.5.6 và nó đã phá vỡ plugin AutoSave tuyệt vời của Franco Stellari, https://sites.google.com/site/fstellari/nppplugins . Xin lỗi: đối với tôi, đó là một công cụ thỏa thuận. (!) Có lẽ không có gì sai trái với IndentByFold của Frank Fesevur. Hiện tại, tôi đổ lỗi cho phiên bản mới nhất của Notepad ++, https://community.notepad-plus-plus.org/topic/16449 . Đáng thương.
Henke

Đối với tôi nó đã làm việc. Tôi đang sử dụng v7.8.4
Daniel Nyamasyo

Tôi có nguy cơ trượt khỏi chủ đề ở đây, nhưng nếu bất cứ ai cũng có thể báo cáo phiên bản Notepad ++ muộn hơn 7.5.6 hoạt động với plugin AutoSave 1.60 của Franco Stellari, https://sites.google.com/site/fstellari/nppplugins , tôi sẽ hạnh phúc hơn khi chuyển sang phiên bản đó. Nếu không - không có cách nào tôi sẽ cập nhật Notepad ++ 7.5.6 lên phiên bản mới hơn. Phiên bản 0.7 của IndentByFold cũng hoạt động với tôi. Nhưng tôi phản đối việc đặt các dấu cách (dấu) vào các hàng trống, điều mà IndentByFold làm.
Henke

Phiên bản Notepad ++ của tôi là 7.5.6. Bây giờ tôi đã thử 1) Công cụ XML, 2) HTML Tidy, 3) Tidy2 và AND 4) IndentByFold 0.7. Công cụ XML loại "hoạt động", nhưng tạo ra một mớ hỗn độn đáng tin cậy của mã HTML của tôi, https://i.imgur.com/oLOB30Z.png . Cả HTML Tidy và Tidy2 đều không hoạt động. IndentByFold 0.7 là giải pháp duy nhất tôi có thể làm việc. Tôi không thích điều đó đặt các dấu cách (dấu) trên các hàng trống, nhưng tôi có thể sống với điều đó. Tôi vẫn không ủng hộ câu trả lời này (của Daniel Nyamasyo). Lý do là tôi mạnh mẽ không đồng ý với những lời khuyên để sử dụng mới nhất phiên bản của Notepad ++.
Henke
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.