2011-12-26 60 views
15

我使用Emacs作爲編輯器。每當我使用CUDA文件(通常有擴展名.cu)時,我都必須手動執行M-x c++-mode以打開語法高亮和其他yasnpet功能。爲.cu(CUDA)文件啓動C++語法高亮顯示

我該如何確保在EMACS中啓動時所有的.cu文件都會自動借用所有C++模式功能。換句話說,.cu擴展名成爲.cpp擴展名的別名。

(我知道有一個CUDA模式爲Emacs,(不是內置),但是當我安裝了這種模式下,它不會對許多++目前在C有用的功能轉 - emacs的模式)

回答

29

把這個進入你的.emacs應該訣竅:

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

添加此產生的lisp錯誤對我來說。 「(setq auto-mode-alist(cons'(」\\。ipp $「。C++ - mode)auto-mode-alist))' –

+0

@NikhilJJoshi:什麼是錯誤信息?也許你的Emacs版本沒有默認啓用的'add-to-list'功能,但我不明白爲什麼會這樣。 –

7

以防萬一人們錯過了它;有一個稍微更正式的cuda-mode可用:http://www.emacswiki.org/emacs/CudaMode

你需要把它放在load-path的某個地方;例如在我的Mac上,我將代碼放入$HOME/Library/emacs/cuda-mode.el,並將以下行添加到我的.emacs文件中。

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

爲什麼「\\。cu \\'」'而不是'「\\。cu $」'? – Dan

+2

,因爲文件名可以包含要匹配的換行符「字符串結尾」而不是「行尾」,請參閱http://www.emacswiki.org/emacs/AutoModeAlist –

+0

如果您只是使用MELPA和list-packages上述步驟甚至不再需要http://melpa.org/#/ –