tags:

views:

221

answers:

2

Hello,

I am using emacs 22.2.1 and Ubuntu 9.04

I have done this in my .emacs file. Which indents and creates a new line each time I press ';' or '{ }'

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.

However, if I press the return key it will take me to column 0 not the indent line of code I am working on i.e.

(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)
+6  A: 
(add-hook 'c-mode-hook
          '(lambda ()
             (define-key c-mode-map "\C-m" 'newline-and-indent)))

maps return to newline + indent. Or, if you like, you can form the habit of typing C-j instead of return, since C-j is already mapped to this function.

Steven Huwig
+1  A: 

The way to find that out is

  • know that C-j does what you want
  • use C-h k C-j to find out that C-j is mapped to newline-and-indent
  • look up remapping keys in the EMACS Info.
Charlie Martin