2012-11-26 43 views
10

Tôi không biết nhiều về Emacs, nhưng sau khi một số googling, tôi thay đổi nội dung tập tin .emacs của tôi để thực hiện như sau:Làm thế nào tôi có thể nhận được Emacs để thụt lề // nhận xét của tôi với mã của tôi?

(setq c-default-style "bsd" c-basic-offset 4) 

Mục tiêu của tôi là để có được Allman kiểu thụt với các tab 4 cách nhau. Nó hoạt động như mong đợi, nhưng bây giờ ý kiến ​​của tôi // không thụt lề với mã của tôi. Trước khi tôi thay đổi điều này, khi tôi nhập //, nó sẽ được tự động thụt lề để phù hợp với phần còn lại của mã trong hàm. Làm thế nào tôi có thể nhận được Emacs để tự động thụt lề các nhận xét //?

Tôi đã cố gắng thêm c-indent-comments-syntactically-p 1 đến .emacs tập tin trên, nhưng điều đó không thay đổi nó ...

Ví dụ:

int main() 
{ 
    // I'd like this line to be auto-indented to match the block 
    for (int i = 0; i < 10; ++i) 
    { 
     // And this line to be auto-indented to match the block 
     doStuff(); 
    } 
} 

Hiện nay, TAB không thụt // nhận xét của tôi, và nó cũng không tự động thụt lề.

Trả lời

8

Bạn có thể kiểm tra và thay đổi giá trị của thụt lề hiện tại bằng cách đặt điểm trên đường liên quan và nhấn C-c C-o. Điều chỉnh các biểu tượng thích hợp theo sở thích của bạn.

Đây không phải là vĩnh viễn. Sử dụng lời gọi trực tiếp của hàm c-set-offset trong số .emacs của bạn để thực hiện thay đổi trên toàn cầu.

đơn giản ví dụ:

int main() { 
    // 
} 

Đây là thụt lề mặc định của tôi. Sau khi di chuyển con trỏ đến dòng 2, tôi thấy rằng biểu tượng có liên quan là comment-intro.

Sử dụng:

(c-set-offset 'comment-intro 6) 

tôi nhận được:

int main() { 
     // 
} 

offset tích lũy qua biểu tượng:

int main() { 
     // 
    { 
      // 
    } 
} 
+0

Nhưng nếu đó là một khối lồng nhau? – Cornstalks

+1

@Cornstalks offset tương ứng với bù đắp xung quanh. Tôi đã thêm một ví dụ. – pmr

+0

Tuyệt vời. Với tập tin '.emacs' nhỏ của tôi từ phía trên, điều gì sẽ là cách thích hợp để thêm cái này? Đặt '(setq c-default-style" bsd "c-basic-offset 4 (c-set-offset 'bình luận-intro 4))' trong 'của tôi.tập tin emacs' làm cho Emacs bị lỗi với lỗi: 'Đối số kiểu sai: symbolp, (c-set-offset (trích dẫn chú thích-giới thiệu) 4)' – Cornstalks

1

Hitting TAB vẫn indents dòng bình luận của bạn, phải không? Sau đó, những gì bạn đang thiếu là sự công nhận tự động của dấu gạch chéo kép kích hoạt tính năng tự động hóa. Điều đó được thực hiện bởi (c-điện-slash). Trước tiên hãy chắc chắn rằng dấu gạch chéo vẫn bị ràng buộc với lệnh đó: C-h k / (trợ giúp về phím tắt). Sau đó, giả sử tài liệu về c-electric-slash xuất hiện, hãy đọc nó để tìm ra trong điều kiện nào nó bị ức chế.

+0

Không. TAB không còn thụt lề nhận xét. Tôi sẽ chỉnh sửa câu hỏi của mình để đề cập đến điều đó. – Cornstalks

0

Nếu bạn muốn đặt xét của bạn về các Alignement cùng một phạm vi mã của bạn, chỉ cần thêm dòng folllowing đến file ~/emacs của bạn:

(c-set-offset 'comment-intro 0) 
Các vấn đề liên quan