当按“返回”键时,Emacs返回到缩进的代码行

时间:2009-10-28 09:32:06

标签: emacs

我正在使用emacs 22.2.1和Ubuntu 9.04

我已在我的.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)

2 个答案:

答案 0 :(得分:9)

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

地图返回换行符+缩进。或者,如果你愿意,你可以养成输入C-j而不是返回的习惯,因为C-j已经映射到这个函数。

答案 1 :(得分:2)

找到它的方法是

  • 知道C-j做你想做的事
  • 使用C-h k C-j找出C-j映射到newline-and-indent
  • 在EMACS Info中查找重新映射的密钥。