Làm thế nào tôi có thể tùy chỉnh lệnh biên dịch?


8

Trong một trong những dự án của tôi, tôi cần chạy make package installkhi xây dựng thay vì make. Nó nhớ lệnh biên dịch cuối cùng mà tôi đã sử dụng, nhưng đặt lại cho make -kmỗi khi emacs khởi động. Làm thế nào tôi có thể tùy chỉnh M-x compileđể mặc định make package install?


Giá trị của compilation-read-commandcái gì? Nếu biến này được đặt thành nilgiá trị không , M-x compilesẽ nhắc bạn sử dụng lệnh biên dịch. Ngoài ra, bạn có thể làm C-u M-x compile; trong trường hợp này, bạn sẽ được nhắc lệnh bất kể giá trị của compilation-read-command.
itjeyd

1
Nó được đặt thành t. Nó cho phép tôi chỉnh sửa lệnh trước khi chạy, nhưng tôi muốn thay đổi những gì nó mặc định thành
Connor

Tôi hiểu rồi. Đăng bình luận ở trên trước khi kiểm tra chỉnh sửa bạn thực hiện cho câu hỏi của bạn;)
itjeyd

Một câu hỏi hay. Từ hướng dẫn, tôi có ấn tượng rằng người ta có thể thêm "compile: ..." hoặc "compile-lệnh: ..." trong phần "Biến cục bộ:" ở cuối tệp, nhưng Emacs mới của tôi không ' dường như không chú ý đến họ ... :(
imz - Ivan Zakharyaschev

Câu trả lời:


7

Bạn có thể tùy chỉnh biến compile-commandđể thay đổi lệnh biên dịch được sử dụng theo mặc định:

(setq compile-command "make package install")

Lưu ý rằng lần đầu tiên bạn chạy lệnh biên dịch không phải make package install , lệnh mới đó sẽ trở thành mặc định mới của bạn.
nispio

2

Nếu bạn muốn tùy chỉnh biến cho mỗi dự án chứ không phải trên toàn cầu. Bạn có thể sử dụng biến thư mục . Điều này cho phép bạn áp dụng một số tùy chỉnh nhất định chỉ cho các tệp trong thư mục nhất định và thư mục con của nó.

Vì vậy, ví dụ bạn muốn sử dụng lệnh make package installas compile chỉ trong dự án A, bạn sẽ cần tạo một tệp có tên .dir-locals.eltrong thư mục gốc của dự án và thêm một cái gì đó như sau

((nil . ((compile-command . "make package install"))))

Cú pháp được giải thích chi tiết trong liên kết đến hướng dẫn sử dụng emacs ở trên. Như được chỉ ra bởi @hatschipuh, bạn có thể sử dụng các lệnh add-dir-local-variabledelete-dir-local-variableđể dễ dàng thêm và xóa các giá trị cục bộ dir.


Để thuận tiện, có các lệnh add-dir-local-variabledelete-dir-local-variable.
clemera

@hatschipuh, đề nghị tốt đã cập nhật câu trả lời để đề cập đến các lệnh này
Iqbal Ansari
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.