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 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
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...
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
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...
Lucas Levrel <lucas.levrel@ens-lyon.org> 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...
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...
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...
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...
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 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
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) ?
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
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.
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...
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...