发现和 这里 是同一个问题, 是 cuda-mode 本身的问题, 我真不知道怎么在 cuda-mode 基础上写 hook 使得它起作用. 我试过:
(defun my/hack-dir-locals-for-somes-modes ()
(when (derived-mode-p 'cuda-mode)
(hack-dir-local-variables-non-file-buffer))) ; 试过 (hack-dir-local-variables) 也不行
(add-hook 'prog-mode-hook #'my/hack-dir-locals-for-somes-modes)
不过完全不起作用.
于是我放弃了 cuda-mode, 另一个原因是 cuda-mode 下 imenu 也用不了. 我改了 auto-mode-alist
, 让 .cu 和 .cuh 绑定到 c+±mode.
(assoc-delete-all "\\.cu\\'" auto-mode-alist)
(assoc-delete-all "\\.cuh\\'" auto-mode-alist)
(add-to-list 'auto-mode-alist '("\\.cu\\'" . c++-mode))
(add-to-list 'auto-mode-alist '("\\.cuh\\'" . c++-mode))
问题就这样不太漂亮地解决了.