2009-11-28 19 views
19

Tôi đang cố sử dụng chương trình "thụt lề" để thụt lề chương trình C++. Nhưng nó dường như không hoạt động tốt. Nó làm rối tung sự thụt đầu dòng nhiều hơn.Có tiện ích nào để thụt lề các chương trình C++ hay không

Đây là tệp Lớp. Bạn có thể vui lòng đề xuất các tùy chọn phù hợp cho nó hoặc chương trình khác hoạt động không?

Cảm ơn

+0

Có thể bạn có thể đưa ra một ví dụ về những gì nó đang làm mà bạn không thích và - quan trọng hơn - cách bạn muốn nó hoạt động. –

Trả lời

18

Hãy thử Artistic Style:

Artistic Style là một mã nguồn indenter, định dạng, và beautifier cho C, C++, C# và các ngôn ngữ lập trình Java.

+1

Điều đó không hiệu quả. Nó chỉ dành cho Microsoft. – tchrist

+7

Không, không phải: "Gói Windows chứa một tệp nhị phân đã biên dịch. Các nền tảng khác sẽ cần phải biên dịch mã nguồn. Makefiles được bao gồm cho các trình biên dịch phổ biến nhất" –

11

trong visual studio, CTRL +một, CTRL +k, CTRL +f sẽ tự động-indent toàn bộ tập tin bạn đang làm việc trong

5

Nhiều người chỉnh sửa như Vim và Emacs có một tính năng ngăn chặn mã theo được xây dựng trong indentation tiêu chuẩn.

Trong Vim, bạn có thể nhập = với bất kỳ chuyển động nào. (Giống như =% tại bất kỳ delimiter khối hoặc S-v để chọn một vùng và sau đó = định dạng lại.) Các GQ lệnh có thể được sử dụng để định dạng lại ý kiến ​​và văn bản khác.

Trong Emacs, bạn có thể nhập M-xindent-region sau khi chọn một khu vực. (Chẳng hạn như với M- <M->.) Bạn cũng có thể định dạng lại các nhận xét với M-xfill-paragraph.

+2

emacs: Escape-x indent-region. (Chọn khu vực đầu tiên.) –

+1

và sử dụng 'M- < C-space M->' để chọn toàn bộ bộ đệm hiện tại ... – dmckee

+0

Emacs không thể làm như vậy gọi là "thụt lề phức tạp", tức là làm cho niềng răng bị treo hoặc ngược lại. [Đó là wiki] (http://www.emacswiki.org/emacs/IndentingC) lời khuyên để sử dụng một công cụ bên ngoài. –

2

bcpp, có sẵn trong bất kỳ bản phân phối Linux nào (và có thể là mingw/cygwin, nhưng tôi chưa kiểm tra) là trình trích xuất và làm đẹp C++. Bạn có thể parametrize cách nó hoạt động với mã.

1

Một chìa khóa ngắn trong Visual Studio 2008:

Ctrl + A, Alt + F8

+0

Không hoạt động tốt với mã Qt. trong các tệp tiêu đề mỗi tín hiệu, macro vùng được thụt lề thêm một cấp nữa. Việc thụt đầu dòng chỉ được thực hiện khi các đại diện công cộng/tư nhân/được bảo vệ tiếp theo. –

3

Đây là in reply to OP và áp phích khác: Tôi làm việc trong môi trường Windows và đã cũng đang tìm kiếm thụt lề. Đây là những gì tôi đã học:

Tôi đã thử bcpp. Nó có vẻ là khá cũ (nhiều hơn hoặc ít hơn từ năm 1996) và bạn cần phải tìm một cửa sổ exe. Tôi tìm thấy một ở đây: http://www.zeusedit.com/zforum/viewtopic.php?t=1067. Tuy nhiên tôi nghĩ rằng nó không thực sự đáng làm phiền, vì nó chỉ có thể làm không gian/tab, mức độ thụt lề và chuyển đổi cú đúp.

Sau đó, có Phong cách nghệ thuật, phiên bản mới hơn và trên sourceforge. Nó có vẻ là khá có khả năng, nhưng nó có thể không, ví dụ, định dạng lại không gian xung quanh tên hàm và các thông số (như, rẽ if (a (b)) vào if (a(b)).

Tôi thích Cygwin thụt (http://www.cygwin.com/) tốt nhất, nhưng nó chỉ hoạt động tốt trên các tệp được phân tách bằng dòng mới, vì vậy bạn phải sử dụng nó như "dos2unix < infile | indent ...". Nhưng thụt lề sẽ không định dạng lại các chú thích đóng hộp ... :)

Có thể một combi của Phong cách nghệ thuật và Cygwin thụt lề hoạt động tốt nhất . Bây giờ tôi sử dụng dòng lệnh này: astyle --style=kr -s3 --break-closing-brackets < infile.cpp | dos2unix | indent --no-tabs --k-and-r-style --indent-level 3 --dont-cuddle-else | unix2dos. Tôi hơi dài, tôi đồng ý, nhưng ngoài ra nó tạo ra một kết quả rất tốt. :)

+1

Tôi tin rằng * Phong cách nghệ thuật * ** có thể ** xử lý không gian định dạng ngày nay bằng tùy chọn '--unpad-paren'. – Magnus

0

Trong netbeans, bạn chỉ có thể làm

Alt + Shift + F

Hãy chắc chắn rằng các plugin được cài đặt cho ngôn ngữ tương ứng. Ví dụ, đối với thụt lề mã PHP, bạn phải chọn netbeans PHP hoặc cài đặt các plugin PHP từ kho lưu trữ.

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