2009-09-02 11 views
19

Trong emacs, khi tôi gõ:Làm thế nào để tôi cấu hình emacs trong chế độ java để nó không tự động sắp xếp các thông số phương pháp

public void foo(String one, 
    String two) { 

Nó tabifies như thế này:

public void foo(String one, 
       String two) { 

Tôi muốn thay vào đó là không, và chỉ cần căn chỉnh các thông số như tiếp tục dòng khác. Làm thế nào tôi có thể cấu hình nó không làm điều này?

Trả lời

36

này xuất phát từ hướng dẫn Thông tin cho Emacs CC Mode, sử dụng GNU Emacs 23,1 trên Windows:

  1. Bắt đầu xây dựng lớp Java của bạn mà không thụt đúng cách. Trong trường hợp của bạn, chính xác những gì bạn đã gõ ở trên.
  2. Di chuyển con trỏ đến đầu dòng không thụt lề đúng cách. Trong trường hợp của bạn, "String two) {".
  3. Nhấn C-c C-s (c-show-syntactic-information) để hỏi Emacs yếu tố cú pháp nào mà nó nghĩ bạn đang xem. Trong trường hợp của bạn, nó sẽ nói một cái gì đó như ((arglist-cont-nonempty n m)).
  4. Sử dụng C-c C-o (c-set-offset) để cho biết rằng bạn muốn thay đổi mức thụt đầu dòng cho phần tử cú pháp này.
  5. Giá trị mặc định theo ý tưởng của yếu tố cú pháp, ví dụ: arglist-cont-nonempty. Chỉ cần nhấn RET nếu mặc định đó là chính xác.
  6. Bây giờ, nó muốn biết biểu thức nào cần sử dụng để tính toán bù trừ. Trong trường hợp của bạn, mặc định là một biểu thức elisp. Xóa điều đó và chỉ sử dụng dấu cộng + dấu cộng.
  7. Hãy thử nghiệm để đảm bảo rằng nó hoạt động chính xác: Nhấn TAB một loạt trên các dòng khác nhau hoặc M-x thụt lề-khu vực hoặc tương tự.
  8. Để làm cho nó vĩnh viễn, thêm video này vào emacs tập tin của bạn:

(. Setq c-offset-alist '((arglist-tiếp-không rỗng +)))

+1

Cảm ơn bạn đã không chỉ trả lời câu hỏi của tôi, mà còn khai sáng cho tôi về cách giải quyết những điều tương tự trong tương lai. :) –

+0

Câu trả lời sáng chói. Rất hữu ích thực sự. Cảm ơn. –

+0

ở đây bạn có thể thấy tại sao ''+' btw, và những tùy chọn khác có sẵn: https://emacswiki.org/emacs/IndentingC#toc13 –

2

Tôi muốn chỉ định kiểu chế độ trong dòng đầu tiên của mỗi tệp nguồn. Hãy thử:

// -*- mode: java; c-file-style: "stroustrup" -*-

Điều này sẽ cung cấp cho bạn tabification hợp lý. Bạn cũng có thể thử "k & r".

+0

Lưu ý rằng khi đặt tệp này vào tệp thực tế, bạn ghi đè mọi tùy chỉnh mà người dùng khác có thể có trong cài đặt .emacs của họ khi xem tệp của bạn. Nếu có thể, hãy chuyển những thứ này vào tệp cấu hình của bạn. –

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