2010-03-10 146 views
6

我更改了Emacs中的設置。現在,無論何時我嘗試從命令行打開文件,它都會在文件頂部打開一個*scratch*緩衝區。有沒有辦法擺脫這個?或者重置我的emacs啓動設置的方法?打開文件時打開沒有暫存緩衝區的emacs

+1

很可能您已將'initial-buffer-choice'設置爲't',可能是通過定製環境 - >初始化。 – starblue 2012-07-05 07:16:08

回答

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內。在該文件中快速搜索導致我出現錯誤,我可以修復它。

+1

Nick說,它打開了文件頂部的抓取緩衝區(強調我的),這對我來說意味着他使用「emacs foo」調用emacs,並且在這種情況下,foo應該出現在* scratch *之上。從頭開始將存在,但富應該是顯示的緩衝區... – 2010-03-10 16:17:54

+0

@布萊恩謝謝,我已經更新了答案,以反映你的解釋(這聽起來是合理的)。 – 2010-03-10 18:10:18

1

如果您想重置emacs設置,您可以將當前的.emacs文件重命名爲其他內容以備份 - 然後重新啓動Emacs。

4
M-x customize-group 
initialization 

然後,在初始緩衝的選擇,你可以選擇其中:

  • 啓動屏幕
  • 目錄
  • 文件
  • 臨時緩衝區

最後點擊保存爲將來的會話

您也可以將其打開/關閉。 看看這是否有幫助。 (你可能想要做的另一件事是在啓動時只打開一個緩衝區,我不記得如何做到這一點,如果我發現它會發布更新)。

1

我的~/.emacs.d文件夾由root擁有並且具有限制性的r/w/x權限,所以我無法以任何非root用戶身份進行訪問。

確保您的當前用戶具有讀取emacs配置文件/目錄的權限。在目錄

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

-R作品遞歸:

這個固定爲我。

0

我刪除了我的~/.emacs.d目錄,併爲我解決了這個問題。

相關問題