Как отключить режим Verilog в emacs?

Я пытаюсь использовать CoQ с ProofGeneral, но встроенный режим Verilog тени *.v распознавание типов файлов. Можно ли как-то отключить его и позволить ProofGeneral переназначить их в режим coq?

3 ответа

Решение

Вам придется переопределить привязку в auto-mode-alist в вашем.emacs или еще чем-нибудь.

Этот так пост делает что-то похожее с VHDL:

Как мне отключить VHDL-режим в Emacs?

Кроме того, я погуглил "auto-mode-alist remove" и нашел эту ссылку. Скопируйте / вставьте важный бит:

;; Remove all annoying modes from auto mode lists

(defun replace-alist-mode (alist oldmode newmode)
  (dolist (aitem alist)
    (if (eq (cdr aitem) oldmode)
    (setcdr aitem newmode))))

;; not sure what mode you want here. You could default to 'fundamental-mode
(replace-alist-mode auto-mode-alist 'verilog-mode 'proof-general-mode)

Я не знаком с ProofGeneral, но если я правильно понимаю ваш вопрос, вам нужно изменить auto-mode-alist переменная, чтобы связать правильный майор с файлами с .v расширение. Итак, вам нужно добавить что-то подобное в ваш .emacs файл:

(add-to-list 'auto-mode-alist '("\\.v$" . proof-general-coq-mode))

Сработала следующая строка:

(setq auto-mode-alist (remove (rassoc 'verilog-mode auto-mode-alist) auto-mode-alist))

Это может быть проблема XY.

У меня сегодня такая же проблема, во-первых, я попробовал то же, что и вы, добавляю в свой ~/.spacemacs под dotspacemacs/user-init:

(setq auto-mode-alist (remove (rassoc 'verilog-mode auto-mode-alist) auto-mode-alist))

И тогда режим становится фундаментальным, и тогда я понял, что настоящая причина в том, что слой spacemacs coq не устанавливается автоматически, и вам нужно приложить много усилий, чтобы установить его и его зависимости.

Ниже приводится краткое изложение шагов по установке после успешного запуска Coq в Emacs: https://gist.github.com/luochen1990/68e5e38496b79790e70d82814bdfc69a

Надеюсь, это поможет:)

Другие вопросы по тегам