Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/emacs/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.emacs中设置默认目录_Emacs_Elisp_Dot Emacs - Fatal编程技术网

在.emacs中设置默认目录

在.emacs中设置默认目录,emacs,elisp,dot-emacs,Emacs,Elisp,Dot Emacs,我真的不知道该说什么 我一直在定制我的emacs,我注意到它并没有在启动时加载我的.emacs。根据(http://www.gnu.org/software/emacs/manual/html_node/emacs/Find-Init.html#Find-初始化),emacs首先在主目录(~/)中查找初始化文件 当我启动emacs时,我的.emacs文件似乎被正确读取-例如,当我访问.notes文件时,钩子会被评估等等。让我吃惊的是:默认目录没有设置-同一加载文件中的命令。我可以手动评估它,也可

我真的不知道该说什么

我一直在定制我的emacs,我注意到它并没有在启动时加载我的
.emacs
。根据(http://www.gnu.org/software/emacs/manual/html_node/emacs/Find-Init.html#Find-初始化),emacs首先在主目录(
~/
)中查找初始化文件

当我启动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)))

默认目录是缓冲区本地目录。你的.emacs加载得很好;默认目录的值是(重新)为您打开的每个新缓冲区设置的。当您重新加载.emacs时,它只会更改您所在缓冲区的默认目录值。

默认目录为buffer local。你的.emacs加载得很好;默认目录的值是(重新)为您打开的每个新缓冲区设置的。当您重新加载.emacs时,它只会更改您所在缓冲区的默认目录值。

。因此(例如,因为我刚刚测试过它),
*scratch*
缓冲区的预期值为
默认目录
,例如,当我
C-x C-f
时会显示出来,但由于emacs的起始页在它自己的小世界中,启动时我的当前目录就是该文档所在的位置…我不知道起始页发生了什么,但您为默认目录设置的值将被覆盖在访问文件的任何缓冲区中。scratch并没有访问q文件,所以这是少数几个默认设置实际会保持不变的情况之一。
(setq inhibit startup message t)
禁用启动页面,瞧,您的
默认目录
设置将运行有趣。因此(例如,因为我刚刚测试过它),
*scratch*
缓冲区的预期值为
默认目录
,例如,当我
C-x C-f
时会显示出来,但由于emacs的起始页在它自己的小世界中,启动时我的当前目录就是该文档所在的位置…我不知道起始页发生了什么,但您为默认目录设置的值将被覆盖在访问文件的任何缓冲区中。scratch并没有访问q文件,所以这是少数几个默认设置实际会保持不变的情况之一。
(setq inhibit startup message t)
禁用启动页面,瞧,您的
默认目录设置会起作用