2011-09-13 40 views
15

Xin lỗi các emacs mới của tôi ở đây, nhưng không ai biết làm thế nào để vượt qua chuyện này? Khi mã hóa trong emacs, ở chế độ ruby, nó thụt vào mức chính xác (tức là 2 dấu cách) sau tất cả các từ khóa, như def, class, module, begin v.v. dường như vị trí ngẫu nhiên, giống như 40 cột hoặc hơn.Emacs ruby-mode, thụt vào bên trong dấu ngoặc đơn?

Tôi đã đọc xung quanh cài đặt tab emacs và dường như chỉ đi vòng quanh và không nhận được thông tin tôi đang tìm kiếm, vì vậy tôi đã tìm tôi sẽ hỏi tại đây.

Đây là ảnh chụp màn hình về vị trí đặt con trỏ trong danh sách tham số. Tôi đã cố gắng thụt vào bên trong của các dấu ngoặc nhọn (ví dụ: cho một khối, hoặc một băm) và đó là làm việc ok, đó là dấu ngoặc đơn đang rối tung lên.

Bug

Trả lời

17

http://compgroups.net/comp.emacs/Ruby-mode-indentation-of-continuation-lines

(setq ruby-deep-indent-paren nil) 

Hoặc tạm thời, trong phiên hiện tại:

Mx set-biến RET ruby-sâu-indent-paren RET nil RET

Bên trong dấu ngoặc đơn, nó sẽ thụt lề như ở mọi nơi khác. Vẫn còn một lỗi nhỏ trong trường hợp tôi đã đăng ở trên. Nó thụt lề 2 khoảng cách xa hơn tôi muốn nó, bởi vì tôi đang nhầm lẫn nó với sự kết hợp của ({.

+2

Một lỗ hổng nhỏ còn lại: Đóng dấu ngoặc/dấu ngoặc đơn vẫn bị bẻ cong nhầm lẫn với nội dung, thay vì han tuôn ra với biểu thức đã mở danh sách. – mcandre

+0

@mcandre bạn đã bao giờ tìm ra cách sửa lỗi đó chưa? – fennec

+0

Không, thật đáng buồn. Tôi đã đăng ngay khi tôi tìm thấy bản sửa lỗi. – mcandre

0

Về cơ bản nó đang cố gắng xếp hàng args trong một danh sách nhiều dòng của các đối số trong ngoặc đơn, như:

function_call (arg1, 
       arg2); 

Thiết lập ruby-deep-indent-paren để nil như trên thay đổi behvaior đến khó chịu đôi thụt cho niềng răng hỗn hợp , ví dụ:

if (cond) then 
    do_stuff 
end 
function_call (&proc { 
    do_stuff 
    }) 

Sự lố bịch thụt lề thực sự làm phiền tôi. Tôi đã chỉnh sửa mã ruby-mode.el ban đầu của Mats để thử và thụt lề hơn. Nhưng tôi không thể làm sạch nó cho cuộc sống của tôi.

1

ruby-deep-indent-paren và các viêc liên quan không có hiệu lực đối với tôi vì ruby-use-smiet. Thiết vừa để nil dường như không giúp được gì :-(

Nhưng chuyển sang enh-ruby-mode, nó làm việc!

  • Thiết enh-ruby-deep-indent-paren-nil có ảnh hưởng.
  • Thiết enh-ruby-bounce-deep-indent-t cho phép tôi nhấn lại Tab để chuyển đổi giữa các kiểu!
Các vấn đề liên quan