Как переписать настройки пакета Emacs (скрипт) через глобальные настройки (без редактирования скрипта пакета) - PullRequest
0 голосов
/ 03 сентября 2018

Назначение:

для перезаписи значения в скрипте пакета через файл глобальных настроек (без редактирования скрипта пакета)

Окружающая среда:

  • Emacs: Spacemacs
  • Пакет: vue-mode (от MELPA)

Подробности:

Я хочу использовать yajade-mode вместо pug-mode для секции lang="pug" в файле компонентов vue. Я нашел способ переписать (:type template :name pug :mode pug-mode) в (:type template :name pug :mode yajade-mode) на .emacs.d/elpa/vue-mode-xxxxxxxx.xx/vue-mode.elc (не на vue-mode.el файл)

Но я хочу сделать то же самое с помощью файла глобальных настроек (.spacemacs). Есть ли хороший способ?

1 Ответ

0 голосов
/ 03 сентября 2018

Код, о котором идет речь, выглядит следующим образом:

(defcustom vue-modes
  '((:type template :name nil :mode vue-html-mode)
    (:type template :name html :mode vue-html-mode)
    (:type template :name jade :mode jade-mode)
    (:type template :name pug :mode pug-mode)
    [...])
  "A list of vue component languages [...]"
  [...]
  :group 'vue)

(defcustom vue-modes сообщает вам, что переменная vue-modes является пользовательской опцией , и поэтому вы можете настроить it:

М-х customize-option RET vue-modes RET

Вы также можете попасть туда по ссылке "настроить" в C-h v vue-modes RET

Сделайте необходимые изменения в буфере настройки и используйте кнопку «Применить и сохранить», чтобы сохранить изменения в файле инициализации (или в Ch v custom-file RET , если это было установлено).

<Ч />

Вы также увидите ссылку в буфере настройки для редактирования всех пользовательских параметров для группы vue (обратите внимание на :group 'vue в коде). Вы можете перейти непосредственно к этому с помощью:

М-х customize-group RET vue RET

У большого количества библиотек Emacs есть подобная группа настроек, и вы обычно можете угадать / автоматически завершить свой путь к этому, даже не глядя на код.

<Ч />

Я нашел способ переписать ... в ... на .emacs.d/elpa/vue-mode-xxxxxxxx.xx/vue-mode.elc (не на vue-mode.el файл)

Как вы уже поняли, вам, вероятно, не следует их редактировать, но редактирование .elc файлов, скомпилированных байтами, определенно не рекомендуется.

По умолчанию Emacs предпочитает файлы, скомпилированные байтами (потому что они более эффективны), но это основано на предположении, что файлы .elc, скомпилированные байтами, будут обновляться со своим источником .el .

Используйте Mx customize-option RET load-prefer-newer RET , чтобы включить эту опцию, после чего, если вы внесете какие-либо изменения в файл .el, Emacs предпочтет это перед связанным с ним файлом, скомпилированным, но теперь устаревшим .elc (если есть). См. Также C-h i g (emacs)Lisp Libraries RET

Вы также можете перекомпилировать измененный файл .el с помощью Mx byte-compile-file RET /path/to/file.el RET (среди прочих методов), чтобы ваш изменения в файле .el распространяются на скомпилированный файл .elc.

...