Sea*_*red 1 emacs elisp dot-emacs
我真的不知道该说些什么.
我一直在努力定制我的emacs,我注意到它实际上并没有.emacs在启动时加载我.根据(http://www.gnu.org/software/emacs/manual/html_node/emacs/Find-Init.html#Find-Init),emacs首先在HOME目录(~/)中查找初始化文件...
当我启动emacs时,我的.emacs文件似乎被正确读取 - .notes例如,当我访问文件时,会对钩子进行评估等等.让我感到惊讶的是:默认目录未设置 - 同一个加载文件中的命令.我可以手动评估它或只是执行(load "~/.emacs")它,它将工作正常.
我想这个问题可以概括一下:如果在load手动执行时命令按预期工作,为什么它不能自动启动?
完整(注释掉函数除外).emacs文件:
; http://stackoverflow.com/a/13946304/1443496
(defvar auto-minor-mode-alist ()
"Alist of filename patterns vs correpsonding minor mode functions,
see `auto-mode-alist'. All elements of this alist are checked,
meaning you can enable multiple minor modes for the same regexp.")
(defun enable-minor-mode-based-on-extension ()
"check file name against auto-minor-mode-alist to enable minor modes
the checking happens for all pairs in auto-minor-mode-alist"
(when buffer-file-name
(let ((name buffer-file-name)
(remote-id (file-remote-p buffer-file-name))
(alist auto-minor-mode-alist))
;; Remove backup-suffixes from file name.
(setq name (file-name-sans-versions name))
;; Remove remote file name identification.
(when (and (stringp remote-id)
(string-match-p (regexp-quote remote-id) name))
(setq name (substring name (match-end 0))))
(while (and alist (caar alist) (cdar alist))
(if (string-match (caar alist) name)
(funcall (cdar alist) 1))
(setq alist (cdr alist))))))
(add-hook 'find-file-hook 'enable-minor-mode-based-on-extension)
;; the wrapping up of the two loads make sure
;; auctex is loaded only when editing tex files.
(eval-after-load "tex-mode"
'(progn
(load "auctex.el" nil nil t)
(load "preview-latex.el" nil nil t)
)
)
; Sets my default directory to my dropbox (platform-dependent)
(setq default-directory
(concat
(if (eq system-type 'windows-nt)
"t:" "~")
"/Dropbox/Public/School/TeX/"))
; Set up the .notes extension
(setq auto-mode-alist
(cons '("\\.notes\\'" . text-mode)
auto-mode-alist))
(setq auto-minor-mode-alist
(cons '("\\.notes\\'" . auto-fill-mode)
auto-minor-mode-alist))
;; AUCTeX replaces latex-mode-hook with LaTeX-mode-hook
(add-hook 'LaTeX-mode-hook
(lambda ()
(setq TeX-auto-save t)
(setq TeX-parse-self t)
;; (setq-default TeX-master nil)
(reftex-mode t)
(TeX-fold-mode t)))
Run Code Online (Sandbox Code Playgroud)
默认目录是缓冲本地的.你的.emacs装得很好; 为您打开的每个新缓冲区(重新)设置default-directory的值.当您重新加载.emacs时,它会更改您所在缓冲区的default-directory值.