Làm thế nào tôi có thể có một người dân địa phương thứ hai?


7

Khi hợp tác trong một dự án, một số biến chỉnh sửa được đặt để đảm bảo mọi người đều tạo ra một kiểu mã tương tự. Trong Emacs, chúng thường được thực hiện dưới dạng biến cục bộ tệp hoặc biến thư mục cục bộ.

Các biến cục bộ tệp là tốt nhất khi bạn muốn giữ giá trị của biến được gắn vào chính tệp đó, nhưng chúng trở nên cồng kềnh khi nó là biến lặp đi lặp lại giống nhau cho mọi tệp trong dự án.

Sử dụng biến thư mục cục bộ sẽ là lựa chọn rõ ràng, nhưng cá nhân tôi sử dụng điều này để đặt email tôi sử dụng trong dự án (trái ngược với email công việc của tôi, v.v.) để đảm bảo tôi không bao giờ mâu thuẫn với cam kết của mình dữ liệu.

Có cách nào xung quanh vấn đề này? Tôi có thể có hai tệp giữ các biến thư mục cục bộ trong cùng một thư mục (một tệp cá nhân và một tệp được kiểm soát phiên bản) không?

Tham khảo: sx.el@3a5afcc

Câu trả lời:


4

Theo tôi nghĩ phiên bản 26.1, Emacs hỗ trợ .dir-locals.eltệp bổ sung thứ hai (được đặt tên một cách khéo léo .dir-locals-2.el).

Từ Hướng dẫn sử dụng Emacs: "Biến cục bộ trên mỗi thư mục":

Bạn cũng có thể sử dụng .dir-locals-2.el; nếu được tìm thấy, Emacs tải nó ngoài .dir-locals.el. Điều này hữu ích khi .dir-locals.el nằm dưới sự kiểm soát phiên bản trong kho lưu trữ được chia sẻ và không thể được sử dụng cho các tùy chỉnh cá nhân.


Thay đổi câu trả lời được chấp nhận vì đây sẽ là khuyến nghị trong tương lai. Cảm ơn đã thêm nó ở đây!
Sean Allred

Thú vị lưu ý: Các tiểu bang tài liệu mà Emacs tải .dir-locals-2.elngoài.dir-locals.el , nhưng có vẻ như hành vi thực tế là để tải nó thay vì của .dir-locals.el(ít nhất là trên Emacs 26,2).
0x5453

7

Điều này dường như làm việc:

(defadvice hack-dir-local-variables (around second-dir-locals-file activate)
  ad-do-it
  (let ((dir-locals-file ".alt-dir-locals.el"))
    ad-do-it))

Điều này sẽ áp dụng cả .dir-locals.el.alt-dir-locals.eltheo thứ tự đó?
Sean Allred

Nó làm, theo thử nghiệm đơn giản của tôi.
Sean

Ngọt! Tôi sẽ thử cái này vào ngày mai :)
Sean Allred
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.