2009-10-28 5 views
4

en utilisant emacs 22.2.1 et Ubuntu 9.04Emacs retour à la ligne de code indenté quand je suis touche de retour 'appuyer sur

Je l'ai fait dans mon dossier .emacs. Ce qui indent et crée une nouvelle ligne chaque fois que j'appuie sur ';' ou « {} »

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. 

Cependant, si j'appuie sur la touche retour, il me faudra à la colonne 0 pas la ligne tiret du code que je travaille sur-à-dire

(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

Voulez-vous vraiment ';' créer une nouvelle ligne? qu'est-ce que cela fait pour les boucles? Si vous le faites, alors je suggérerais de créer une nouvelle fonction qui s'auto-insère; puis fait le newline-and-indent. –

Répondre

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

retour cartes à newline + indent. Ou, si vous le souhaitez, vous pouvez avoir l'habitude de taper C-j au lieu de retourner, puisque C-j est déjà mappé à cette fonction.

+1

Mieux encore, ajoutez ceci sur le 'prog-mode-hook' – ocodo

2

La façon de le savoir est

  • savent que Cj fait ce que vous voulez
  • utilisation Ch k Cj pour savoir que Cj est mis en correspondance avec newline-and-indent
  • chercher les clés remappant emacs Info.
+2

" Le moyen de savoir est [...] savoir [quelque chose]. " – AndyL

+1

si ad hominem est la façon dont les vieux chiens rétorquent, j'espère rester pour toujours un chiot. – AndyL

Questions connexes