2014-11-16 27 views
0

我受此url的啓發。Emacs:設置java模式本地的密鑰。

建議設置全局密鑰(global-set-key (kbd "RET") 'newline-and-indent)

但是,我想僅在Java模式下將RET設置爲'newline-and-indent。爲了實現這一目標,我應該將哪些代碼添加到​​?

回答

2

您需要將其應用於特定於模式的鍵盤映射。像下面的東西應該工作。

(defun on-java-loaded() 
    (define-key java-mode-map (kbd "RET") 'newline-and-indent)) 

(add-hook 'java-mode-hook 'on-java-loaded) 
+0

這有效,但命名是誤導。 'java-mode-hook'每次運行*任何緩衝區運行'java-mode',而庫本身只加載一次。加載後的eval-after-load是在庫加載後運行一次的方式。鉤子的方法是絕對好的,但我建議調用函數更合適的東西(FWIW我使用'my-MODE-hook'來定製'MODE-hook'函數)。 – phils