Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Commentaires en C et C++

6 réponses
Avatar
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

6 réponses

Avatar
Vincent Belaïche
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.
Avatar
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...

Merci.

--
LL
Avatar
Vivien Moreau
Lucas Levrel a écrit :

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
Avatar
Johann 'Myrkraverk' Oskarsson
Lucas Levrel writes:

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
Avatar
Lucas Levrel
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
Avatar
Vincent Belaïche
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.