【发布时间】:2010-03-10 15:22:11
【问题描述】:
我在 Emacs 中更改了一个设置。现在,每当我尝试从命令行打开文件时,它都会在文件顶部打开一个*scratch* 缓冲区。有没有办法摆脱这个?或者重置我的 emacs 启动设置的方法?
【问题讨论】:
-
很可能您已将
initial-buffer-choice设置为t,可能是通过自定义环境-> 初始化。
标签: emacs
我在 Emacs 中更改了一个设置。现在,每当我尝试从命令行打开文件时,它都会在文件顶部打开一个*scratch* 缓冲区。有没有办法摆脱这个?或者重置我的 emacs 启动设置的方法?
【问题讨论】:
initial-buffer-choice 设置为t,可能是通过自定义环境-> 初始化。
标签: emacs
M-x customize-group
initialization
然后,在 Initial Buffer Choice 中,您可以选择:
最后,点击为以后的会话保存。
您也可以打开/关闭它。 看看这是否有帮助。
(您可能想要做的另一件事是在启动时只打开一个缓冲区。我不记得这是如何完成的。如果我发现它会发布更新)。
【讨论】:
您可以使用 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 中。在该文件中快速搜索会导致我发现错误,我可以修复它。
【讨论】:
如果您想重置 emacs 设置,可以将当前的 .emacs 文件重命名为其他文件以进行备份 - 然后重新启动 Emacs。
【讨论】:
我的~/.emacs.d 文件夹由具有限制性r/w/x 权限的root 拥有,因此我无法以任何非root 用户身份访问。
确保您的当前用户具有对 emacs 配置文件/目录的读取权限。
这为我解决了问题:
sudo chown -R user:group ~/.emacs.d/
-R 在目录中递归工作。
【讨论】:
我删除了我的 ~/.emacs.d 目录,这为我解决了问题。
【讨论】: