Commentaires en C et C++

Le
Lucas Levrel
Bonjour,

Je voudrais que mon emacs commente /* comme ça */ même quand il est en
mode C++. Comment faire ?

(J'ai cherché un peu mais il y a trop de fonctions imbriquées pour que
j'arrive à suivre.)

Merci.
--
LL
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vincent Belaïche
Le #21770671
Il y aurait pas des variables comment-start et comment-end que tu pourrais
positionner à "/* " et à " */" au lieu de "// " et "" dans un c++-mode-hook

A+
Vincent.

Lucas Levrel a écrit :
Bonjour,

Je voudrais que mon emacs commente /* comme ça */ même quand il est en
mode C++. Comment faire ?

(J'ai cherché un peu mais il y a trop de fonctions imbriquées pour que
j'arrive à suivre.)

Merci.
Lucas Levrel
Le #21770661
Le 18 mai 2009, Vincent Belaïche a écrit :

Il y aurait pas des variables comment-start et comment-end que tu pourrais
positionner à "/* " et à " */" au lieu de "// " et "" dans un c++-mode-hook



OK. Quand je fais M-x set-variable dans le buffer ça marche. Maintenant,
comme je ne connais pas la syntaxe du Lisp je n'arrive pas à mettre ce
qu'il faut dans le .emacs. Déjà pour régler une variable :
(add-hook 'c++-mode-hook (set-variable comment-start "/*"))
J'ai essayé des quotes un peu partout, sans succès.
Ensuite, pour mettre plusieurs set-variable d'un coup avec un seul appel à
add-hook...

Merci.

--
LL
Vivien Moreau
Le #21770651
Lucas Levrel
Le 18 mai 2009, Vincent Belaïche a écrit :

Il y aurait pas des variables comment-start et comment-end que tu pourrais
positionner à "/* " et à " */" au lieu de "// " et "" dans un c++-mode-hook



OK. Quand je fais M-x set-variable dans le buffer ça marche. Maintenant,
comme je ne connais pas la syntaxe du Lisp je n'arrive pas à mettre ce
qu'il faut dans le .emacs. Déjà pour régler une variable :
(add-hook 'c++-mode-hook (set-variable comment-start "/*"))
J'ai essayé des quotes un peu partout, sans succès.
Ensuite, pour mettre plusieurs set-variable d'un coup avec un seul appel à
add-hook...



Salut,

Avec setq, ça devrait mieux marcher. Ca donne :

(add-hook 'c++-mode-hook (setq comment-start "/*"))

--
Vivien Moreau / Tuxicomane
Johann 'Myrkraverk' Oskarsson
Le #21770641
Lucas Levrel
Le 18 mai 2009, Vincent Belaïche a écrit :

Il y aurait pas des variables comment-start et comment-end que tu
pourrais positionner à "/* " et à " */" au lieu de "// " et "" dans
un c++-mode-hook



OK. Quand je fais M-x set-variable dans le buffer ça
marche. Maintenant, comme je ne connais pas la syntaxe du Lisp je
n'arrive pas à mettre ce qu'il faut dans le .emacs. Déjà pour régler
une variable : (add-hook 'c++-mode-hook (set-variable comment-start
"/*")) J'ai essayé des quotes un peu partout, sans succès. Ensuite,
pour mettre plusieurs set-variable d'un coup avec un seul appel à
add-hook...



(add-hook 'c++-mode-hook
(lambda ()
(setq comment-start "/*")
(setq comment-end "*/")))
?


Johann
Lucas Levrel
Le #21770631
Merci pour toutes les réponses. Je pense avoir compris le coup du lambda :
add-hook veut une fonction alors on lui donne un nom lambda :-)

J'ai quelques questions pour ma culture :
- Pourquoi setq marche-t-il et pas set-variable ?
- Y a-t-il une différence entre 'multi-line et (quote multi-line) ?

--
LL
Vincent Belaïche
Le #21770601
Lucas Levrel a écrit :
Merci pour toutes les réponses. Je pense avoir compris le coup du lambda :
add-hook veut une fonction alors on lui donne un nom lambda :-)

J'ai quelques questions pour ma culture :
- Pourquoi setq marche-t-il et pas set-variable ?
- Y a-t-il une différence entre 'multi-line et (quote multi-line) ?




set-variable marche mais il faut écrire avec un quote:

(set-variable 'comment-start "/* ")

La raison est que le premier argument est un symbole. Si tu mets comment-start
au lieu de 'comment-start, alors comment-start est évalué, et du coup le
premier argument de set-variable est une string, et non un symbole comme attendu.

setq n'est pas une fonction, mais une forme spéciale qui n'évalue pas ses
arguments.

(setq ma-variable xxx)

est équivalent à

(set 'ma-variable xxx)

Sinon aucune différence entre 'multi-line et (quote multi-line), sauf qu'avec
quote c'est plus facile d'évaluer ce que tu passes à l'intérieur du quote (par
exemple l'expression suivante

(progn
(setq x 'y0)
`(quote ,x) )

s'évalue comme (quote y0). Tu aurais pu écrire cela comme

(progn
(setq x 'y0)
(list 'quote x) )

mais la notation ` est plus dense lorsqu'on a des expressions compliquées.

Ca n'a d'intérêt que si tu sais que tu feras un eval de ça, et que tu ne veux
pas évaluer y0, mais que y0 soit le résultat de l'évaluation (dans ce cas
simpliste ça à l'air sans intérêt, mais si y0 est qq chose de plus compliqué
qu'un simple symbole, alors...

À+,
Vincent.
Publicité
Poster une réponse
Anonyme