Trình tạo EditorConfig

.editorconfig
Kết quả

Tệp .editorconfig đặt ở gốc thư mục repository sẽ cho mọi IDE hiện đại biết dự án này định dạng tệp tin của mình như thế nào, giải quyết tranh luận tab với khoảng trắng cho từng tệp. Python: 4 khoảng trắng. JavaScript: 2. Makefile: bắt buộc dùng tab. Trình tạo này tạo tệp .editorconfig từ các tùy chọn định dạng của bạn (kiểu và kích thước thụt lề, kết thúc dòng, bảng mã ký tự, độ dài dòng tối đa, dòng mới cuối cùng và cắt bỏ khoảng trắng cuối dòng) và luôn kèm hai tùy chỉnh phổ biến: [*.md] giữ khoảng trắng cuối dòng cho các dấu ngắt dòng trong Markdown, còn [Makefile] dùng tab theo yêu cầu của make.

Cách tạo tệp .editorconfig

  1. 1

    Cấu hình giá trị mặc định toàn cục

    Bảng mã ký tự (mặc định utf-8), kết thúc dòng (lf hoặc crlf), kiểu và kích thước thụt lề, độ dài dòng tối đa, chèn dòng mới cuối tệp và cắt bỏ khoảng trắng cuối dòng.

  2. 2

    Kiểm tra tùy chỉnh có sẵn

    Trình tạo luôn thêm `[*.md]` với `trim_trailing_whitespace = false` (Markdown cần khoảng trắng cuối dòng để xuống dòng) và `[Makefile]` với `indent_style = tab` do chính make yêu cầu.

  3. 3

    Sao chép tệp

    Dùng nút sao chép để lấy tệp `.editorconfig` vừa tạo rồi đặt vào thư mục gốc của repository.

  4. 4

    Mở rộng sau này

    Cần quy tắc theo từng ngôn ngữ? Hãy thêm các mục của riêng bạn, ví dụ `[*.py]` với `indent_size = 4`.

.editorconfig làm gì?

Tệp có tên .editorconfig đặt tại gốc dự án (hoặc trong bất kỳ thư mục nào) sẽ khai báo các quy ước định dạng. Các trình soạn thảo hỗ trợ EditorConfig (tất cả IDE lớn và hầu hết trình soạn thảo văn bản hiện đại) sẽ áp dụng các quy tắc này khi mở tệp.

Mẫu kết quả đầu ra

Với cài đặt mặc định (khoảng trắng, kích thước 4, LF, utf-8), trình tạo tạo ra:

root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab

Các chỉ thị chính

Chỉ thị Giá trị được chấp nhận Ghi chú
root true / false Đặt true tại gốc dự án để việc tra cứu dừng lại tại đó
charset utf-8, utf-8-bom, latin1, utf-16-be, utf-16-le Mặc định là utf-8
end_of_line lf, crlf, cr lf cho đa nền tảng; crlf cho các kho chỉ dành riêng cho Windows
indent_style space, tab
indent_size số nguyên Số khoảng trắng; bị bỏ qua khi dùng tab
tab_width số nguyên Chiều rộng hiển thị của tab (mặc định bằng indent_size)
insert_final_newline true / false Đảm bảo các tệp tuân thủ tiêu chuẩn POSIX
trim_trailing_whitespace true / false Tắt cho Markdown (khoảng trắng ở cuối dòng có nghĩa là ngắt dòng)

Quy ước từng ngôn ngữ trong nháy mắt

Ngôn ngữ / tệp Quy ước
JS, TS, JSON 2 khoảng trắng
HTML, CSS, YAML 2 khoảng trắng
Python 4 khoảng trắng (PEP 8)
PHP 4 khoảng trắng (PSR-12)
Ruby 2 khoảng trắng
Go Tab (gofmt bắt buộc)
Rust 4 khoảng trắng (rustfmt bắt buộc)
Java 4 khoảng trắng
Makefile Tab (bản thân make yêu cầu)
Markdown Giữ khoảng trắng ở cuối dòng (dùng cho <br>)
Batch / CMD (.bat) Kết thúc dòng crlf

Cạm bẫy: khoảng trắng ở cuối dòng trong Markdown

Trong Markdown, hai khoảng trắng ở cuối dòng có nghĩa là “chèn <br> vào đây”. Nếu .editorconfig cắt bỏ khoảng trắng cuối dòng ở tất cả các tệp, các lần ngắt dòng đó sẽ biến mất. Hãy ghi đè bằng trim_trailing_whitespace = false cho [*.md].

IDE của bạn có hỗ trợ không?

Hỗ trợ nguyên bản: VS Code, các nền tảng thuộc gia đình JetBrains và IntelliJ, Sublime Text, Vim (qua plugin), Emacs (qua plugin), Atom, Notepad++, Xcode. Nếu một trình soạn thảo không hỗ trợ EditorConfig ngay từ đầu, thì thường có plugin hỗ trợ. Tệp này cũng có thể được máy đọc được, do đó các công cụ kiểm tra lỗi và định dạng có thể sử dụng nó một cách chính xác.

Câu hỏi thường gặp

Đặt tại gốc dự án với root = true. Bạn có thể thêm các tệp .editorconfig khác trong thư mục con để ghi đè các đường dẫn cụ thể; quá trình tra cứu đi ngược lên trên cây thư mục và dừng lại ở tệp root = true đầu tiên tìm thấy.

Không. EditorConfig xử lý các yếu tố cơ bản về khoảng trắng và cách kết thúc dòng trong mọi trình soạn thảo. Các công cụ kiểm tra văn bản chuyên biệt hơn và phù hợp với từng ngôn ngữ lại xử lý các quy tắc phong cách phức tạp hơn (dấu ngoặc kép, dấu phẩy kép, dấu phẩy nối cuối câu). Hai công cụ này bổ sung cho nhau.

Hãy thiết lập end_of_line = crlf nếu bộ công cụ của Windows trong kho thực sự yêu cầu điều này. Lựa chọn tốt hơn là gửi bản end_of_line = lf và thêm các bản .gitattributes* text=auto; như vậy, Git sẽ tự động chuẩn hóa đầu dòng khi gửi bản, trong khi các bản lấy ra sẽ phù hợp với hệ điều hành tương ứng.

Không. Các lựa chọn của bạn chỉ được dùng để tạo tệp; không có dữ liệu nào được lưu trên máy chủ của chúng tôi hay giữ lại sau khi bạn rời khỏi trang.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác