【问题标题】:Opening emacs without the scratch buffer when opening a file打开文件时打开没有暂存缓冲区的emacs
【发布时间】:2010-03-10 15:22:11
【问题描述】:

我在 Emacs 中更改了一个设置。现在,每当我尝试从命令行打开文件时,它都会在文件顶部打开一个*scratch* 缓冲区。有没有办法摆脱这个?或者重置我的 emacs 启动设置的方法?

【问题讨论】:

  • 很可能您已将initial-buffer-choice 设置为t,可能是通过自定义环境-> 初始化。

标签: emacs


【解决方案1】:
M-x customize-group
initialization

然后,在 Initial Buffer Choice 中,您可以选择:

  • 启动屏幕
  • 目录
  • 文件
  • 暂存缓冲区

最后,点击为以后的会话保存

您也可以打开/关闭它。 看看这是否有帮助。

(您可能想要做的另一件事是在启动时只打开一个缓冲区。我不记得这是如何完成的。如果我发现它会发布更新)。

【讨论】:

    【解决方案2】:

    您可以使用 M-x load-file ~/.emacs 重新加载您的 .emacs 文件。还有其他的方法,查看问题How can I load changes to my .emacs without rebooting Emacs?

    如果您认为您的.emacs 文件有问题,请尝试使用-q 选项打开:

    emacs -q somefile
    

    如果按预期工作,您的 .emacs 中可能有错误,调试 .emacs 的一个好方法是使用选项--debug-init

    emacs --debug-init
    

    这将告诉 Emacs 提供它在加载 .emacs 时遇到的任何错误的堆栈跟踪,例如:

    Debugger entered--Lisp error: (wrong-type-argument symbolp (car n))
     (setq (car n) 3)
     (let ((n ...)) (setq (car n) 3)) 
     eval-buffer(#<buffer  *load*<2>> nil "/home/tjackson/.emacs.tjackson.el" nil t)  ; Reading at buffer position 161460
     load-with-code-conversion("/home/tjackson/.emacs.tjackson.el" "/home/tjackson/.emacs.tjackson.el" nil nil)
     load("/home/tjackson/.emacs.tjackson.el")
     (let ((debug-on-error t)) (load user-init-file))
     (if init-file-debug (let (...) (load user-init-file)) (error (format "Problems while loading the file %s: %s" user-init-file ...)))
     (condition-case err (load user-init-file) (error (if init-file-debug ... ...)))
     (if (file-exists-p user-init-file) (condition-case err (load user-init-file) (error ...)))
     eval-buffer(#<buffer  *load*> nil "/home/tjackson/.emacs" nil t)  ; Reading at buffer position 12150
     load-with-code-conversion("/home/tjackson/.emacs" "/home/tjackson/.emacs" t t)
     load("~/.emacs" t t)
     #[nil "....."]
     command-line()
     normal-top-level()
    

    这通常可以指出您可能出了什么问题。在我上面的例子中,我不正确地使用了setq,它看起来像是在let 语句中,它在文件/home/tjackson/.emacs.tjackson.el 中。在该文件中快速搜索会导致我发现错误,我可以修复它。

    【讨论】:

    • Nick 说它会在文件顶部打开暂存缓冲区(强调我的),这对我来说意味着他用“emacs foo”调用 emacs,在这种情况下,foo 应该出现在从头开始。 scratch 会在那里,但 foo 应该是显示的缓冲区...
    • @Brian 谢谢,我已经更新了答案以反映您的解释(这听起来很合理)。
    【解决方案3】:

    如果您想重置 emacs 设置,可以将当前的 .emacs 文件重命名为其他文件以进行备份 - 然后重新启动 Emacs。

    【讨论】:

      【解决方案4】:

      我的~/.emacs.d 文件夹由具有限制性r/w/x 权限的root 拥有,因此我无法以任何非root 用户身份访问。

      确保您的当前用户具有对 emacs 配置文件/目录的读取权限。

      这为我解决了问题:

      sudo chown -R user:group ~/.emacs.d/
      

      -R 在目录中递归工作。

      【讨论】:

        【解决方案5】:

        我删除了我的 ~/.emacs.d 目录,这为我解决了问题。

        【讨论】:

          猜你喜欢
          • 2014-02-26
          • 1970-01-01
          • 2010-09-19
          • 1970-01-01
          • 2017-07-28
          • 2014-10-17
          • 1970-01-01
          • 2023-03-31
          相关资源
          最近更新 更多