我在設置markdown-command時遇到問題。我得到的符號作爲變量是無效的。我原本是在定製裏面設置的,並且一切正常。我想清理我的init.el,並且寧願將所有內容都保存在自定義之外並手動設置。Emacs:在自定義部分之外設置變量的問題
任何人都可以提供這方面的見解嗎?最近的東西,我看到在這裏:https://stackoverflow.com/questions/12058717/confusing-about-the-emacs-custom-system
謝謝。
;;General Settings
(global-auto-revert-mode t) ;;Refresh Buffers on File Change.
(setq-default indent-tabs-mode nil) ;;Use spaces instead of tabs.
(desktop-save-mode 1) ;;Save session
(show-paren-mode 1) ;;Show matching parenthesis
;;Custom Load Paths
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") ;;Look here for additional themes.
(add-to-list 'load-path "~/.emacs.d/modes/") ;;Look here for additional modes.
;;Load Specific Them
(load-theme 'solarized-dark t)
;;Marmalade Package Manager
(require 'package)
(add-to-list 'package-archives
'("marmalade" .
"http://marmalade-repo.org/packages/"))
(package-initialize)
;;OSX Specific Settings
;;Add /usr/local/bin and /opt/local/bin to execution path
(if (eq system-type 'darwin)
(setq exec-path
(append
'("/usr/local/bin"
"/opt/local/bin")
exec-path)))
;;Markdown Specific Settings
(autoload 'markdown-mode "markdown-mode"
"Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist '("\\.text\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))
(if (eq system-type 'darwin)
(setq-default 'markdown-command '("/usr/local/bin/pandoc"))
(setq-default 'markdown-command '("/usr/bin/multimarkdown")))
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
按照建議我嘗試
(eval-after-load "markdown-mode"
(if (eq system-type 'darwin)
(setq markdown-command '("/usr/local/bin/pandoc"))
(setq markdown-command '("/usr/bin/multimarkdown"))))
然後我意識到我的錯誤。我沒有做過什麼建議。
(eval-after-load "markdown-mode"
(if (eq system-type 'darwin)
'(setq markdown-command ("/usr/local/bin/pandoc"))
'(setq markdown-command ("/usr/bin/multimarkdown"))))
也如上所述eval-after-load "markdown-mode"
是不需要的。
使用'(setq-default markdown-command ...)'而不是'(setq-default'markdown-command ..)',它不需要引用'''。 – artscan