2011-12-26 24 views
15

Tôi sử dụng Emacs làm trình soạn thảo. Cuối của bất cứ khi nào tôi sử dụng các tập tin CUDA (thường có phần mở rộng .cu), tôi phải tự làm M-x c++-mode để bật tính năng đánh dấu cú pháp và các tính năng khác.Bắt đầu đánh dấu cú pháp C++ cho các tệp .cu (CUDA)

Làm cách nào để đảm bảo rằng tất cả các tệp .cu khi bắt đầu trong EMACS tự động mượn tất cả các tính năng của chế độ C++. Nói cách khác, tiện ích mở rộng .cu trở thành bí danh cho tiện ích mở rộng .cpp.

(Tôi biết có một chế độ CUDA cho Emacs, (không sẵn có) nhưng khi tôi cài đặt chế độ này nó không bật nhiều tính năng hữu ích có mặt trong C++ - phương thức emacs)

Trả lời

29

Đưa này vào số .emacs của bạn nên thực hiện thủ thuật:

(add-to-list 'auto-mode-alist '("\\.cu\\'" . c++-mode)) 
+0

Thêm lỗi này do lỗi sản xuất này. Những gì làm việc là '(setq auto-mode-alist (khuyết điểm '(" \\. Ipp $ ". C++ - mode) auto-mode-alist))' –

+0

@NikhilJJoshi: Thông báo lỗi là gì? Có lẽ phiên bản Emacs của bạn không có chức năng 'add-to-list' được kích hoạt mặc định, mặc dù tôi không hiểu tại sao lại như vậy. –

7

Chỉ trong trường hợp mọi người đã bỏ lỡ nó; có chính thức hơn một chút cuda-mode sẵn có: http://www.emacswiki.org/emacs/CudaMode

Bạn cần đặt nó ở đâu đó trong số load-path; ví dụ trên máy Mac của tôi, tôi đặt mã trong $HOME/Library/emacs/cuda-mode.el và thêm các dòng sau vào tệp .emacs của tôi.

(add-to-list 'load-path "~/Library/emacs") 
(autoload 'cuda-mode "cuda-mode.el") 
(add-to-list 'auto-mode-alist '("\\.cu\\'" . cuda-mode)) 
+0

Tại sao nó '" \\. Cu \\ '"' thay vì '" \\. Cu $ ​​"'? – Dan

+2

vì tên tệp có thể chứa ký tự dòng mới bạn muốn đối sánh "cuối chuỗi" chứ không phải "cuối dòng", hãy xem http://www.emacswiki.org/emacs/AutoModeAlist để biết thêm chi tiết –

+0

Nếu bạn chỉ sử dụng MELPA và danh sách gói các bước trên thậm chí không cần thiết nữa http://melpa.org/#/ –

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