启动emacs文件夹视图时右对齐

时间:2013-12-19 02:13:14

标签: emacs elisp

我的.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)

每次(如果....)之后

这是什么原因?

1 个答案:

答案 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片段的最后四行,则可能会解决问题。