Opdracht voor het invoegen van for-statement-skeleton

Hoe zou iemand een functie schrijven die men zou kunnen binden, bijvoorbeeld SUPER-f, die de code invoegt:

for() {
}

in de buffer met mijn cursor wordt verplaatst naar de() parens voor het invullen van de lus bewaker?

2
Wat heb je geprobeerd?
toegevoegd de auteur EndangeredMassa, de bron
@eof: als yasnippet je probleem heeft opgelost, plaats dan een antwoord op je eigen vraag met de details van de oplossing en accepteer deze.
toegevoegd de auteur Scott Cowan, de bron
Heeft u al gehoord over yasnippet ?
toegevoegd de auteur Peter Burns, de bron
Ik heb nergens veel van geprobeerd, omdat mijn kennis van emacs beperkt is tot wat is ingebouwd. Ik had echter nog nooit van Yasnippet gehoord en het lijkt de truc te doen.
toegevoegd de auteur Josh Belmont, de bron

1 antwoord

Ik denk dat ik het zo zou doen:

(define-skeleton my-for-statement
  "Insert a for() {...} skeleton."
  nil
  \n "for() {" \n > _ "}" \n)

The \n are for "newlines" (and the ones at beg/end are only added if needed). The _ basically says that if you have selected a region before running the command, then this region will end up right where _ is (IOW, the region will be wrapped by the "for" statement). And the > in front causes this region (if any) to be re-indented.

U kunt dan M-x my-for-statement doen en de instructie invoegen.

2
toegevoegd