启动emacs文件夹视图时,右对齐
我的.emacs中有以下内容:启动emacs文件夹视图时,右对齐,emacs,elisp,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
(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)
每次之后(如果……)
原因是什么?鉴于您对计时的评论,我的直接怀疑是,基于相关代码恰好位于.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代码段的最后四行,它可能会解决问题。FIND-FILE和directory参数会调用目录上的Dired,但我不知道为什么Dired缓冲区会正确对齐。我假设“右对齐”是指线条与右侧窗口边框齐平,而不是与左侧对齐;实际上,我不知道如何使Dired缓冲区看起来像那样,所以我不确定我是否理解这个问题。你能给你的问题添加一个你看到的屏幕截图吗?亚伦,谢谢你的回答。奇怪的是,如果我在打开emacs之后执行这些步骤,那么就不会有问题,也就是说,如果我正常打开emacs,查找文件/标题,然后拆分屏幕,查找文件/源,它们就不会正确。当我在.emacs文件中包含这些步骤时,事情就会变得很糟糕。这是一个截图:哇,真奇怪。考虑到您对计时的评论,我的直接怀疑是,基于相关代码恰好在.emacs中的位置,它在初始化代码的其他部分之前运行,这对于使dired缓冲区按您期望的方式运行至关重要。对于这样的情况,Emacs提供了init hook之后的
,初始化完成后立即执行的函数列表;我将发布一个答案,并举例说明如何将其应用于您的案例中。谢谢您的帮助。不幸的是,这没有帮助。我尝试将代码与after init hook一起放在.emacs文件的末尾。但我还是看到了正确的解释。