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

yasnippet

7 réponses
Avatar
Stéphane Dutailly
Bonjour à tous,

J'essaie yasnippet qui me semble offrir des possibilités intéressantes
pour définir des raccourcis mais je rencontre deux problèmes (un petit
et un gros...):
- (le gros) j'ai deux snippets (je ne sais pas trop quel terme convient
en français...) pour les fractions et les racines:
fichier frac.yasnippet:
# -*- mode: snippet -*-
# contributor: Song Qiang <tsiangsung@gmail.com>
# key: f
# group: math
# name: \frac{numerator}{denominator}
# --
\frac{${1:num}}{${2:den}}

fichier racine.yasnippet:
# -*- mode: snippet -*-
# key: r
# group: math
# name: \sqrt{op}
# --
\sqrt{${1:op}}

Mettons que je veuille taper la fraction: "racine(3)/2", je fais alors
"f TAB" ce qui me donne
\frac{num}{den} (avec le curseur dans la première accolade)
puis je tape "r TAB" mais le problème c'est qu'au lieu d'avoir:
\frac{\sqrt{op}}{den} (avec le curseur à la place de "op")
je me retrouve simplement avec
\frac{r}{den} (avec le curseur à la place de "den", ce qui m'oblige à
revenir en arrière, me placer sur le "r" et refaire TAB)

Comment faire pour pouvoir "enchaîner" les snippets? (est-ce possible?)

- (le petit) lorsque j'utilise un snippet (par exemple "racine"), après
le dernier TAB j'ai un retour à la ligne que je ne désire pas.
Y a-t-il un moyen d'éviter cela?

Merci d'avance pour toute piste...

Stéphane

7 réponses

Avatar
Stéphane Dutailly
Bonjour à tous,

Je me réponds à moi-même au cas où d'autres auraient rencontré ces
problèmes... J'ai trouvé une solution pour chaque problème:
- pour pouvoir "enchaîner" les snippets il faut changer le fichier
yasnippet.el:
ligne 296:
(defcustom yas/triggers-in-field nil
"If non-nil, `yas/next-field-key' can trigger stacked expansions.
à remplacer par
(defcustom yas/triggers-in-field t
"If non-nil, `yas/next-field-key' can trigger stacked expansions.

- pour éviter d'avoir une nouvelle ligne après chaque snippet, j'ai
simplement rajouté $0 à la fin (par exemple: sqrt{${1:op}}$0 ) et ça
marche bien (il y a peut-être mieux...)

Bonne soirée,
Stéphane


Le 22/12/2010 15:03, Stéphane Dutailly a écrit :
Bonjour à tous,

J'essaie yasnippet qui me semble offrir des possibilités intéressantes
pour définir des raccourcis mais je rencontre deux problèmes (un petit
et un gros...):
- (le gros) j'ai deux snippets (je ne sais pas trop quel terme convient
en français...) pour les fractions et les racines:
fichier frac.yasnippet:
# -*- mode: snippet -*-
# contributor: Song Qiang
# key: f
# group: math
# name: frac{numerator}{denominator}
# --
frac{${1:num}}{${2:den}}

fichier racine.yasnippet:
# -*- mode: snippet -*-
# key: r
# group: math
# name: sqrt{op}
# --
sqrt{${1:op}}

Mettons que je veuille taper la fraction: "racine(3)/2", je fais alors
"f TAB" ce qui me donne
frac{num}{den} (avec le curseur dans la première accolade)
puis je tape "r TAB" mais le problème c'est qu'au lieu d'avoir:
frac{sqrt{op}}{den} (avec le curseur à la place de "op")
je me retrouve simplement avec
frac{r}{den} (avec le curseur à la place de "den", ce qui m'oblige à
revenir en arrière, me placer sur le "r" et refaire TAB)

Comment faire pour pouvoir "enchaîner" les snippets? (est-ce possible?)

- (le petit) lorsque j'utilise un snippet (par exemple "racine"), après
le dernier TAB j'ai un retour à la ligne que je ne désire pas.
Y a-t-il un moyen d'éviter cela?

Merci d'avance pour toute piste...

Stéphane
Avatar
Lucas Levrel
Le 27 décembre 2010, Stéphane Dutailly a écrit :

- pour pouvoir "enchaîner" les snippets il faut changer le fichier
yasnippet.el:



Je serais toi, je mettrais la modif dans .emacs, sinon elle sera perdue
dès que tu installeras une nouvelle version de ce fichier !

--
LL
Avatar
Stéphane Dutailly
Le 28/12/2010 18:40, Lucas Levrel a écrit :
Le 27 décembre 2010, Stéphane Dutailly a écrit :

- pour pouvoir "enchaîner" les snippets il faut changer le fichier
yasnippet.el:



Je serais toi, je mettrais la modif dans .emacs, sinon elle sera perdue
dès que tu installeras une nouvelle version de ce fichier !




Merci Lucas pour le conseil (je n'ai pas encore les réflexes pour les
"bonnes" pratiques...). J'ai essayé mais j'ai un problème: lorsque je
laisse le fichier yasnippet.el comme il était (c'est-à-dire avec:
(defcustom yas/triggers-in-field nil
"If non-nil, `yas/next-field-key' can trigger stacked expansions.

Otherwise, `yas/next-field-key' just tries to move on to the next
field"
:type 'boolean
:group 'yasnippet)


et que je rajoute:
(defcustom yas/triggers-in-field t
"If non-nil, `yas/next-field-key' can trigger stacked expansions.

Otherwise, `yas/next-field-key' just tries to move on to the next
field"
:type 'boolean
:group 'yasnippet)

dans mon .emacs alors ma modification n'a pas d'effet...
Quelqu'un voit-il où est le problème?
Merci d'avance,
Stéphane
Avatar
Lucas Levrel
Le 29 décembre 2010, Stéphane Dutailly a écrit :

J'ai essayé mais j'ai un problème: lorsque je laisse le fichier
yasnippet.el comme il était et que je rajoute dans mon .emacs alors ma
modification n'a pas d'effet...



Est-ce que :
- tu as un message d'erreur ?
- yasnippet est chargé par ton .emacs avant ta redéfinition ?

--
LL
Avatar
Stéphane Dutailly
Le 31/12/2010 15:21, Lucas Levrel a écrit :
Le 29 décembre 2010, Stéphane Dutailly a écrit :

J'ai essayé mais j'ai un problème: lorsque je laisse le fichier
yasnippet.el comme il était et que je rajoute dans mon .emacs alors ma
modification n'a pas d'effet...



Est-ce que :
- tu as un message d'erreur ?
- yasnippet est chargé par ton .emacs avant ta redéfinition ?




Bonjour Lucas,

Je n'ai pas de message d'erreur et yasnippet est bien chargé avant ma
redéfinition. Je me demande si le problème ne vient pas du fait que mon
installation de yasnippet a été faite de façon "automatique" via la
logithèque ubuntu qui l'a installée dans /usr/share/emacs/yasnippet.
En effet j'ai réalisé que dans mon .emacs, si je n'écris rien à propos
de yasnippet, celui-ci est chargé quand même (le menu apparaît...).
Je vais essayer de le désinstaller via la logithèque ubuntu et le
ré-installer "à la main". On va voir... (j'appréhende un peu ma première
installation de package emacs "à la main" mais bon, je suis un grand
garçon maintenant, cela fait un mois que je l'utilise...).
Je te tiens au courant, merci en tous cas.
Stéphane
Avatar
Stéphane Dutailly
Le 31/12/2010 15:21, Lucas Levrel a écrit :
Le 29 décembre 2010, Stéphane Dutailly a écrit :

J'ai essayé mais j'ai un problème: lorsque je laisse le fichier
yasnippet.el comme il était et que je rajoute dans mon .emacs alors
ma modification n'a pas d'effet...



Est-ce que : - tu as un message d'erreur ? - yasnippet est chargé par
ton .emacs avant ta redéfinition ?



Re-bonjour

Alors j'ai refait mon installation de yasnippet, il est toujours chargé
avant et je n'ai toujours pas de message d'erreur mais ma modification
n'a toujours pas d'effet...
Je me suis fait un petit fichier texte pour indiquer ma modification si
je dois ré-installer... pour l'instant ça ira bien.
Bien cordialement,
Stéphane
Avatar
Ph. Ivaldi
Le 27 décembre 2010, Stéphane Dutailly écrivit :
Bonjour à tous,



Bonsoir

Je me réponds à moi-même au cas où d'autres auraient rencontré ces
problèmes... J'ai trouvé une solution pour chaque problème:
- pour pouvoir "enchaîner" les snippets il faut changer le fichier
yasnippet.el:
ligne 296:
(defcustom yas/triggers-in-field nil
"If non-nil, `yas/next-field-key' can trigger stacked expansions.
à remplacer par
(defcustom yas/triggers-in-field t
"If non-nil, `yas/next-field-key' can trigger stacked expansions.



Mieux vaut mettre (setq yas/triggers-in-field t) dans ton .emacs.

- pour éviter d'avoir une nouvelle ligne après chaque snippet, j'ai
simplement rajouté $0 à la fin (par exemple: sqrt{${1:op}}$0 ) et ça
marche bien (il y a peut-être mieux...)



Comprends pas bien… Pour ne pas avoir de saut de ligne, il suffit de ne
pas en mettre à la fin de la définition du snippet.
--
Philippe Ivaldi.
http://www.piprime.fr/