Elisp (void-variable ]) при попытке оценить функцию в списке свойств

#debugging #emacs #spacemacs

#отладка #emacs #spacemacs

Вопрос:

В моей конфигурации Spacemacs я настраиваю свой уровень организации для масштабирования любого latex, который он генерирует, следующим образом

 (org :variables
      org-format-latex-options '(:foreground "#90ee90" :background default :scale 2.0
                                                :html-foreground default
                                                :html-background "Transparent" :html-scale 1 :matchers
                                                ("begin" "$1" "$" "$$" "\(" "\["))

  

Я использую эту конфигурацию на нескольких компьютерах, и мне нравятся разные масштабирования для разных дисплеев, поэтому я написал небольшую функцию

 (defun switch-scale ()
  (cond
   ((equal (system-name) "WMachine") 5.0)
   (t 2.0) ;; default
   )
  )
  

И переписал приведенный выше код для вызова функции в свойстве :scale, например

 org-format-latex-options '(:foreground "#90ee90" :background default :scale (switch-scale)
                           ...
  

Когда я тестирую масштабирование переключателя в буфере с нуля, он работает нормально (возвращает 5.0), но когда я добавляю его в свою конфигурацию, он вызывает следующую ошибку при попытке сгенерировать latex в режиме организации

 Debugger entered--Lisp error: (void-variable ])
  eval(] nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)
  

Я застрял в том, что происходит, кажется, что (масштаб переключения) просто не оценивается???

Ответ №1:

Ответ: я не понимаю систему оценки elisps… итак, поскольку он был в списке в кавычках, все внутри этого списка было буквальным, поэтому мне действительно нужно было использовать обратную кавычку, чтобы заключить список в кавычки, а затем использовать запятую для оценки функции (переключения масштаба), как описано здесь https://www.gnu.org/software/emacs/manual/html_node/elisp/Backquote.html