2009-08-05 65 views
6

Vì vậy, thụt lề tự động của emacs cho CSS đang khiến tôi bị dơi. Dưới đây là những gì tôi thích CSS để trông giống như:CSS thụt lề trong các emacs

#foo ul.bar { 
    .... 
} 

    #foo ul.bar li { 
     .... 
    } 

     #foo ul.bar li a { 
      .... 
     } 

Đây là những gì emacs mang lại cho tôi với tính năng tự động thụt đầu dòng của nó:

#foo ul.bar { 
    .... 
} 

#foo ul.bar li { 
    .... 
} 

#foo ul.bar li a { 
    .... 
} 

Tôi muốn giữ phong cách của tôi dần dần thụt nếu họ sử dụng các thác. Tuy nhiên, emacs sẽ tự động hóa mọi thứ ở cùng một mức độ.

Mọi thứ tôi có thể làm?

+0

Bạn đã tìm thấy giải pháp chưa? Im có cùng một vấn đề. – vise

+0

Không, theo như tôi có thể nói, ngắn của tab ràng buộc để chèn một mức độ rõ ràng của thụt lề, không có một giải pháp thực sự. – thedz

+2

Bạn có thể muốn kiểm tra SCSS/SASS tại http://sass-lang.com/ hoặc một giải pháp tương tự để giải quyết vấn đề này ở cấp độ cơ bản hơn thay thế. –

Trả lời

3

Tôi không nghĩ rằng bất kỳ chế độ CSS nào tôi đã sử dụng với Emacs sẽ hỗ trợ kiểu thụt đầu dòng đó - chúng không nhìn vào nội dung của bộ chọn, dù có hay không một cái gì đó là một bộ chọn (không thụt lề) hoặc là một quy tắc bên trong một bộ chọn (thụt lề một bước).

Nếu bạn muốn thay đổi điều này, bạn cần ghi đè chức năng thụt lề cho chế độ CSS của mình.

+0

Có cách nào để thực hiện thụt lề thủ công không? Nếu tôi không thể sử dụng autoindent để thụt lề theo cách tôi thích, tôi sẽ sống nếu tôi có thể thụt lề bằng tay. – thedz

+0

Dường như - ít nhất với chế độ css tôi đang sử dụng - nếu bạn tự thụt lề dòng chọn ban đầu đến nơi bạn muốn, bạn chỉ cần nhấn 'TAB' sau đó để thụt lề chính xác các quy tắc sau và kết thúc '}' - và sau đó bạn sẽ phải tự tạo không gian cho bộ chọn tiếp theo, v.v. (Phiên bản css-mode dường như đi kèm với Emacs từ đôi khi trong khung thời gian Emacs 22, vì vậy nó có thể là những gì bạn đang sử dụng nếu bạn có một Emacs gần đây và chưa tải cụ thể cái gì khác.) – genehack

3

Tôi khuyên bạn nên bắt đầu biên dịch CSS bằng "Sass" - các tệp .scss trông giống như CSS nhưng cho phép bạn lồng các quy tắc theo cách chính xác như bạn mong muốn trong ví dụ của mình đầu ra thực sự khá giống CSS được tạo thủ công - vì vậy, trước tiên, CSS của bạn sẽ vẫn dễ hiểu; và, thứ hai, nếu bạn muốn từ bỏ Sass, bạn chỉ có thể xóa các tệp .scss và chỉnh sửa các tệp .css từ thời điểm đó trở đi.

Và Emacs đã thụt vào Sass hoàn hảo, vì Emacs chỉ tuân theo các quy tắc bình thường để đếm số dấu ngoặc móc và thụt lề tương ứng. mã nguồn của bạn ở trên, nếu chuyển đổi sang Sass, sẽ trông như thế này:

#foo ul.bar { 
    ... 

    li { 
     ... 

     a { 
      ... 
     } 
    } 
} 

Rõ ràng, điều này loại bỏ sự lặp lại và làm cho nó dễ dàng hơn để đọc và duy trì CSS của bạn. Dự án Sass nằm ở đây: http://sass-lang.com/

+1

Nếu bạn thêm [la bàn] (http://compass-style.org/), bạn sẽ nhận được một số quà tặng miễn phí, bao gồm thêm công thức nấu ăn css và compass watch biên dịch mỗi khi một tập tin thay đổi. –

1

Tôi biết đây là một hack, nhưng tôi đã thấy chế độ java hoạt động tốt hơn hoặc ít hơn với css.

0

Bạn có thể sử dụng nhận dạng tích hợp emacs. Tôi làm việc trên bất kỳ chế độ và làm một công việc phong nha với các tập tin css.

(defun cesco/indent() (interactive) (mark-whole-buffer) (indent-region (point-min) (point-max) nil) (pop-global-mark) )

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