我的.emacs中有以下内容:
(set-face-font 'default "-*-Interface User-Medium-R-*-*-13-120-*-*-*-*-*-*")
;; Set default height/width
(add-to-list 'default-frame-alist '(width . 180))
(add-to-list 'default-frame-alist '(height . 70))
(if (file-exists-p "./headers") (find-file "./headers"))
;; Split window
(split-window-horizontally)
(if (file-exists-p "../source") (find-file "../source"))
使用emacs 23并排查看文件夹左对齐。 但是,当在emacs 24上运行时,文件夹是正确的,我需要添加:
(beginning-of-line)
每次(如果....)之后
这是什么原因?
答案 0 :(得分:0)
鉴于你对时间的评论,我立即怀疑,根据你的.emacs中相关代码的位置,它会在初始化代码的其他部分之前运行,这对于使dired缓冲区的行为方式至关重要你期待。对于这样的情况,Emacs提供了after-init-hook,这是在初始化完成后立即执行的函数列表。以下是如何使用它来确保在初始化所有内容之前不创建dired缓冲区:
(add-hook 'after-init-hook
;; since this is the only place we'll use this code, there's no point
;; cluttering the namespace with a defun, hence wrapping it in a lambda
#'(lambda ()
;; Create dired buffer on ./headers
(if (file-exists-p "./headers") (find-file "./headers"))
;; Split window
(split-window-horizontally)
;; Create dired buffer on ../source
(if (file-exists-p "../source") (find-file "../source"))))
如果您在问题中使用此代替.emacs片段的最后四行,则可能会解决问题。