2012-09-24 145 views
15

打開特定文件,我希望能夠使用鍵盤快捷鍵來編輯我的.emacs文件,而不是鍵入按Ctrl-X按Ctrl-F的.emacs 輸入每次(這裏的an analogous question關於Vim)。這可能是一個明顯的方法,但我找不到Emacs Lisp命令來打開文件。我認爲這應該是以「打開」或「文件」開始,但是鍵入M-x並且這些術語似乎沒有提出任何相關的。我試過快捷方式在Emacs

(global-set-key (kbd "<f6>") (find-file "~/.emacs")) 

但這並不奏效。

+2

奧列格提供了一個解決方案。請注意,您嘗試*的方法是在使用參數'「〜/ .emacs」'調用''find'file'函數(它將返回一個緩衝區對象)時,返回值*返回*,然後指定緩衝區對象作爲函數在輸入''時調用。 – phils

回答

33

根據文檔

(全球設置鍵鍵盤命令)

給予重點爲COMMAND一個全球性的結合。 COMMAND命令是定義要使用的命令 ;通常它是一個命名爲交互式可調用函數的符號。

所以,你必須使用一個交互式可調用的函數:

(global-set-key (kbd "<f6>") (lambda() (interactive)(find-file "~/.emacs"))) 

我個人更喜歡使用emacs registers來存儲我經常使用的文件。 我將存儲「〜/的.emacs」在寄存器:

(set-register ?e (cons 'file "~/.emacs")) 

並用C-x r j e

+5

對於〜/ .emacs(或者在我的情況下,〜/ .emacs.d/init.el),您可以使用變量user-init-file,該變量始終是加載用戶配置文件的。 (find-file(或user-init-file「」)) – jpkotta

+3

非常感謝Oleg。寄存器非常棒!你甚至可以使用大寫和小寫字母,如下所示:'(set-register?x(cons'file「〜/ .xinitrc」))'和'(set-register?X(cons'file)〜/ .Xresources 「))'。 –

1

書籤打開它是爲了這個目的,包裝用的emacs是最佳選擇。 這樣,如果您可以看到要打開的文件列表,那麼您可以輕鬆瀏覽它們。還有BookmarkPlus,它提供了各種選項。

M-x list-bookmarks