2010-01-21 27 views
8

Từ bài đăng trước, tôi nhận được chế độ Ruby hoạt động trong các emacs. Điều này đang làm việc tuyệt vời.thay đổi emacs ruby-mode thụt lề thành 4 dấu cách

Setting up .emacs file for mac ruby development

Công ty chúng tôi sử dụng 4 không gian cho indents dù thay vì mặc định 2. Tôi gặp khó khăn trong việc này để làm việc.

Đây là nộp emacs tôi

(add-to-list 'load-path "~/rdoc-mode.el")

(require' ruby-mode)

(setq indent-tabs-mode nil); luôn thay thế các tab bằng dấu cách

(setq-tab mặc định chiều rộng 4); đặt độ rộng tab thành 4 cho tất cả bộ đệm

Có ai nhìn thấy những gì tôi đang làm sai không?

Cảm ơn!

+0

chiều rộng tab chỉ kiểm soát tab -> mở rộng không gian, không tiếc là không thể thụt lề . –

Trả lời

17

Cài đặt tab-width chỉ kiểm soát chiều rộng của ký tự tab, nghĩa là số ký tự tab tương đương với khi được hiển thị trong bộ đệm của bạn. Nó không ảnh hưởng đến số lượng dấu cách (hoặc các tab) được sử dụng để thụt lề mã của bạn.

Đối với mã Ruby, thụt đầu dòng được điều khiển bởi biến ruby-indent-level:

(setq ruby-indent-level 4) 
+0

Đã hoạt động! Cảm ơn rất nhiều. – Poul

+0

Công ty của bạn là lạ, mọi công ty ruby ​​khác sử dụng 2 dấu cách :) – horseyguy

3

Có một cách để làm điều đó mà không cần chạm emacs. Bạn có thể đặt một khối chú thích đặc biệt ở cuối mỗi tập tin Ruby đặt "file variables" cụ thể cho tập tin đó. Bất kỳ emacs hoặc xemacs chỉnh sửa tập tin đó sẽ sử dụng chế độ, thiết lập tab, & vv trong khối bình luận đó.

Như một ví dụ, đây là "biến tập tin" khối chúng tôi sử dụng để phát triển Ruby:

# Local Variables: 
# mode: ruby 
# tab-width: 2 
# ruby-indent-level: 2 
# indent-tabs-mode: nil 
# End: 
14

Các áp phích khác đã cung cấp câu trả lời đúng, vì vậy tôi sẽ đề cập đến ở đây làm thế nào để tìm ra câu trả lời cho loại câu hỏi này.

Trước hết, vì bạn một cách chính xác cho rằng chiều rộng thụt lề sẽ được cấu hình, điều đầu tiên cần thử là:

M-x customize-group RET ruby-mode RET 

Và chắc chắn đủ, một trong những lựa chọn tùy biến có tên "Ruby Thụt lề Cấp" . Bạn có thể đặt và lưu các thay đổi. Làm xong!

Ngoài ra, bạn có thể nhìn vào ruby-mode bản thân:

M-x find-library RET ruby-mode RET 

Sau đó tìm kiếm (với C-s) cho 'thụt'. Ở đó bạn sẽ tìm thấy một định nghĩa biến:

(defcustom ruby-indent-level 2 ...) 

Khi bạn tìm thấy một biến như vậy, bạn có thể đặt nó trong .emacs (hoặc ~/.emacs.d/init.el) với setq:

(setq ruby-indent-level 4) 

Bạn cũng có thể khám phá ra rằng việc sử dụng biến apropos:

M-x apropos RET indent ruby RET 

Đó là lý do emacs được mô tả là "tự chủ tài liệu"!

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