如何编写.emacs文件以在特定缓冲区中结束?

时间:2016-12-25 12:39:42

标签: emacs startup

我的.emacs文件中包含此代码:

(load "ielm" nil t)
(switch-to-buffer "*ielm*")
(inferior-emacs-lisp-mode)
(set-buffer-modified-p nil)

在emacs 21及更早版本中,我最终以*ielm*作为当前缓冲区,但从emacs 22开始,我最终以*GNU Emacs*作为当前缓冲区。 emacs 22中的更改导致了新行为,我该怎么做才能自动结束*ielm*缓冲区?

2 个答案:

答案 0 :(得分:1)

Emacs手册,节点Entering Emacs告诉您:

  

您还可以强制Emacs在启动时显示文件或目录   将变量 initial-buffer-choice 设置为命名该字符串的字符串   文件或目录。 initial-buffer-choice的值也可以是a   应该返回缓冲区的函数(没有参数)   显示。如果nil为非C-h r,则指定   在命令行上的任何文件,Emacs仍然访问它们,但没有   最初显示它们。

您可以使用i startup TAB(打开手册),然后"startup"(搜索startup screen的索引)在手册中找到此节点,然后选择partition()。 (其他指数选择也会带你去那里。)

答案 1 :(得分:-1)

谢谢,@ Drew。 将以下内容添加到我的.emacs文件中可以获得我想要的行为。

(if (= (length command-line-args) 1)
    (setq initial-buffer-choice
      (lambda () (get-buffer "*ielm*"))))