Plug-in Fragmenten¶
Typ een kort voorvoegsel, druk op ++tab++, en het vouwt uit tot een hele
constructie — een for-lus, een klassegeraamte, een Markdown-tabel — met de
cursor klaar op de eerste lege plek die u moet invullen. Tab/Shift+Tab
lopen de velden af, Esc sluit af. De plug-in levert ook Bestand ▸ Nieuw
op basis van sjabloon… om hele bestanden op te zetten.
Een fragment uitvouwen¶
- Typ het voorvoegsel van een fragment (bijvoorbeeld
forin een C++-bestand). - Druk op ++tab++. Het voorvoegsel wordt door het lichaam van het fragment vervangen — als één stap ongedaan maken — en het eerste veld is geselecteerd, klaar om overheen te typen.
- Druk op ++tab++ om naar het volgende veld te springen, ++shift+tab++ om terug te gaan.
- Na het laatste veld zet ++tab++ de cursor op de eindpositie van het fragment. ++esc++ beëindigt de sessie op elk moment en laat de tekst zoals getypt staan.
Is het woord voor de cursor geen voorvoegsel van een fragment, dan springt ++tab++ zoals gebruikelijk in — de toets wordt alleen geleend wanneer er iets uit te vouwen valt. Terwijl de aanvulpop-up open staat, hoort ++tab++ bij de pop-up.
Een uitvouwing over meerdere regels erft de inspringing van de regel waarop u hem typte, en de regeleinden ervan volgen de afspraak van het document (CRLF/LF).
Fragmenten in de aanvulpop-up¶
Voorvoegsels van fragmenten verschijnen ook in de pop-up voor automatisch aanvullen, gemerkt met een klein teken zodat ze opvallen tussen gewone woorden. Een fragmentitem aanvaarden vouwt het meteen uit en start de veldsessie — hetzelfde als het voorvoegsel typen en op ++tab++ drukken.
Wat een fragment kan bevatten¶
| Teken | Betekenis |
|---|---|
$1 … $9 |
Tabstopvelden, in numerieke volgorde bezocht (ongeacht hun plek in het lichaam). |
${1:default} |
Een veld met beginhoud, geselecteerd wanneer het bezocht wordt. |
$0 |
Waar de cursor na het laatste veld belandt (standaard het einde van het fragment). |
$FILENAME |
De bestandsnaam van het document (leeg voor niet-opgeslagen buffers). |
$DATE |
De datum van vandaag, in ISO-notatie (2026-07-06). |
$SELECTION |
De tekst die geselecteerd was toen het fragment werd aangeroepen. |
$CLIPBOARD |
De huidige tekst op het klembord. |
\$ |
Een letterlijk dollarteken. |
Alles wat verkeerd gevormd is wordt letterlijk ingevoegd in plaats van te mislukken. Een veldindex die in het lichaam herhaald wordt houdt alleen zijn eerste voorkomen als levend veld.
Fragmenten beheren¶
Voorkeuren ▸ Fragmenten toont elk fragment — de meegeleverde sets en die van uzelf. Van daaruit kunt u:
- een nieuw fragment Toevoegen…: voorvoegsel, bereik (door komma's
gescheiden taal-id's zoals
cpp, c; leeg of*geldt overal), beschrijving en het lichaam. - uw fragmenten Bewerken…. Een meegeleverd fragment bewerken maakt uw eigen kopie, die voorrang heeft op het meegeleverde (zelfde voorvoegsel en bereik).
- uw fragmenten Verwijderen (meegeleverde kunnen niet verwijderd worden — overschaduw ze in plaats daarvan).
Er worden meegeleverde sets geleverd voor C/C++, Python, JavaScript/TypeScript en
Markdown, plus twee universele hulpjes (date, clip). Uw fragmenten worden als
JSON in de gegevensmap van de plug-in bewaard (snippets/user.json); u kunt daar
ook extra *.json-bestanden neerzetten — de opmaak komt overeen met die van de
meegeleverde bestanden:
{
"language": ["cpp", "c"],
"snippets": [
{
"prefix": "for",
"description": "indexed for loop",
"body": ["for (${1:int i = 0}; ${2:i < count}; ${3:++i})", "{", "\t$0", "}"]
}
]
}
Lichamen zijn arrays van regels. Een array "scopes" per fragment overschrijft de
standaard "language" op bestandsniveau.
Bestandssjablonen¶
Bestand ▸ Nieuw op basis van sjabloon… opent een keuzelijst met bestandsgeraamtes —
een C++-bronbestand met main, een header met een include-waarborg, een
Python-script, een Markdown-document, een HTML-pagina. Het gekozen sjabloon opent
als een nieuw, niet-opgeslagen document met zijn variabelen ($DATE,
$CLIPBOARD, …) al ingevuld; veldtekens vallen terug op hun standaardtekst.
Sjablonen zijn eveneens JSON-bestanden (templates/*.json, zowel meegeleverd als
in de gegevensmap van de plug-in):
{
"templates": [
{
"name": "Python script",
"suggestedName": "script.py",
"body": ["#!/usr/bin/env python3", "", ""]
}
]
}
Beperkingen¶
- Een herhaalde veldindex wordt niet gespiegeld (typen in veld 1 werkt een
tweede
$1niet bij); latere voorkomens zijn gewone tekst. - Geneste tijdelijke aanduidingen (
${1:${2:x}}) worden niet ondersteund; de binnentekst wordt letterlijk genomen. $FILENAMEis leeg in niet-opgeslagen buffers.