2009-10-28 81 views
4

我使用emacs 22.2.1和Ubuntu 9.04的Emacs返回縮進代碼行,當按下「返回」鍵

我在.emacs文件這樣做。每次按'''時縮進並創建一個新行;或「{}」

if(success == 0) 
{ 
    printf("Success\n"); 
    <---- if I press return key here it will go 
<-- to here, and I have to tab to go to the code line. 

但是,如果我按返回鍵會帶我去柱0不是代碼的縮進行我的工作即

(require 'cc-mode) 

;; Auto indent on insertion of a curly brace 
(add-hook 'c-mode-hook '(lambda() 
(c-toggle-auto-state t))) 

;; Set coding style to indent 4 spaces 
(setq c-default-style "bsd" 
    c-basic-offset 4) 
+0

你真的想'''創建一個換行符?這對循環做了什麼?如果你這樣做,那麼我會建議創建一個自插入的新函數;然後執行換行和縮進。 – 2009-10-28 18:48:57

回答

9
(add-hook 'c-mode-hook 
      '(lambda() 
      (define-key c-mode-map "\C-m" 'newline-and-indent))) 

圖回報到換行+縮進。或者,如果你喜歡,你可以養成輸入C-j而不是返回的習慣,因爲C-j已經映射到這個函數。

+1

更好的是,將其添加到'prog-mode-hook'上。 – ocodo 2013-09-11 01:30:36

2

找到出路是

  • 知道CJ,你想要做
  • 使用章ķCJ找出CJ映射到newline-and-indent
  • 查找在EMACS重新映射鍵是什麼信息。
+2

「找出問題的方法是[知道] [某事]。」 – AndyL 2014-09-16 03:03:37

+1

如果adinehinem是老狗反擊的方式,我希望我永遠留下一隻小狗。 – AndyL 2014-09-17 01:55:24