打开文件时打开没有暂存缓冲区的emacs

时间:2010-03-10 15:22:11

标签: emacs

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

5 个答案:

答案 0 :(得分:4)

M-x customize-group
initialization

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

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

最后,点击保存以供将来的会话

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

(你可能想要做的另一件事就是在启动时只打开一个缓冲区。我不记得这是怎么做的。如果我找到它,我会发布更新。)< / p>

答案 1 :(得分:3)

您可以使用 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内。在该文件中快速搜索会导致错误,我可以修复它。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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

这为我解决了这个问题:

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

-R递归地在目录中工作。

答案 4 :(得分:0)

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