2012-04-16 83 views
3

我想用emacs中的兩個按鍵打開我的五個(或多個)最喜歡的文件。我正在考慮F9-a用於文件A,F9-B用於文件B等。Emacs與多個鍵擊鍵綁定

我在F5(而不是「默認」Ca)上有組織模式議程,因此我打F5-a今天的議程。我很樂意爲我的組織文件,我的聯繫人文件等。

有沒有一種方法(或更確切地說:是什麼方式)讓F9打開一個子菜單,其中列出了我最喜歡的文件,並用另一個按鍵進行選擇?

回答

6

這個設置完全符合你的要求,至少就鍵盤映射而言。它實際上並沒有彈出菜單。

(setq my-file-menu-keymap 
     (let ((keymap (make-sparse-keymap))) 
     (dolist (pair '(("a" . "~/.emacs") 
         ("b" . "~/.phones") 
         ("c" . "~/org/daily.org"))) 
      (define-key keymap (car pair) 
      `(lambda() (interactive) (find-file ,(cdr pair))))) 
     keymap)) 

(global-set-key (kbd "<f9>") my-file-menu-keymap) 

我用一個鍵循環通過我最喜歡的文件(非常適用於少量文件的,我不關心隨機訪問)。您可以在this answer中找到針對不同SO問題的代碼(請參閱cycle-special-files)。

+1

這樣做確實有效,但只有在將第一行放在第二個更大的命令之後。否則,找不到變量my-file-menu-keymap。感謝代碼! – 2012-04-16 19:39:47

1

你可能會得到更好的結果,一個包可以讓你complete file names from recent files。這比明確地將文件名綁定到鍵上要靜態,並且您可以通過此方法輕鬆訪問更多最近使用的文件,而不僅僅是5.