2015-03-05 4 views
1

Je viens d'installer le paquet yasnippet pour emacs et j'essaie de configurer des snippets. Tout fonctionne bien sauf un snipet particulier.Snippet Yasnippet pour C/C++ alors qu'il ne fonctionne pas correctement

fichier: ~/.emacs.d/ELPA/yasnippet-20.150.212,240/snippets/cc mode/tout

# -*- mode: snippet -*- 
# name: while 
# key: while 
# -- 
while (${1:condition}) 
{ 
    $0 
} 

Le problème est que la sortie est comme lorsque j'utilise l'extrait ceci:

while(condition) 
    { 

    } 

j'ai vérifié si je le fichier correct en changeant l'original en fichier à ceci:

# -*- mode: snippet -*- 
# name: while 
# key: while 
# -- 
while (${1:condition}) 
{ 
    $0; 
} 

(ajouté point-virgule) et la sortie était:

while(condition) 
    { 
     ; 
    } 

Pourquoi mes accolades ont une patte derrière eux?

Note: Tout le reste fonctionne bien. Pour les boucles fonctionnent bien, le commutateur fonctionne bien, les classes fonctionnent bien ... Seule la boucle while a un problème. Des idées?

Répondre

1

J'ai trouvé la réponse. C'était difficile pour quelqu'un qui a juste commencé à utiliser emacs comme moi.

Après avoir pris un coup d'oeil here il semble que par défaut c-style est quelque chose comme ça

if(foo) 
     { 
     bar++; 
     } 

quand je pressais onglet pour utiliser l'extrait I également auto formaté le code pour le style par défaut c. C'est le style "gnu". Pour le changer en style "linux" il suffit d'ajouter

(setq c-default-style "linux" 
     c-basic-offset 4) 

à votre fichier .emacs ou init.el.

Sortie après modifications:

if(foo) 
{ 
    bar++; 
} 

Il n'a rien à voir avec yasnippet après tout.