Přeskočit obsah

Zásuvný modul Úryvky

Napište krátkou předponu, stiskněte ++tab++ a rozvine se v celou konstrukci — smyčku for, kostru třídy, tabulku v Markdownu — s kurzorem připraveným na prvním místě, které je třeba vyplnit. Tab/Shift+Tab procházejí pole, Esc končí. Modul také poskytuje Soubor ▸ Nový ze šablony… pro založení celých souborů.

Rozvinutí úryvku

  1. Napište předponu úryvku (řekněme for v souboru C++).
  2. Stiskněte ++tab++. Předpona se nahradí tělem úryvku — jako jediný krok zpět — a vybere se první pole připravené k přepsání.
  3. Stiskem ++tab++ skočíte na další pole, ++shift+tab++ se vrátíte zpět.
  4. Po posledním poli umístí ++tab++ kurzor na závěrečnou pozici úryvku. ++esc++ ukončí sezení kdykoli a ponechá text tak, jak jste jej napsali.

Pokud slovo před kurzorem není předponou úryvku, ++tab++ odsadí jako obvykle — klávesa se půjčuje jen tehdy, je-li co rozvinout. Dokud je otevřená nabídka dokončování, patří ++tab++ této nabídce.

Víceřádkové rozvinutí přebírá odsazení řádku, na kterém jste jej napsali, a jeho konce řádků se řídí konvencí dokumentu (CRLF/LF).

Úryvky v nabídce dokončování

Předpony úryvků se objevují i v nabídce automatického dokončování, označené malým znakem, aby vynikly mezi obyčejnými slovy. Přijetí položky s úryvkem jej ihned rozvine a začne práci s poli — stejně jako napsání předpony a stisk ++tab++.

Co může úryvek obsahovat

Token Význam
$1 … $9 Pole (zastávky Tabu), navštěvovaná v číselném pořadí (bez ohledu na jejich pozici v těle).
${1:výchozí} Pole s počátečním obsahem, které se při návštěvě vybere.
$0 Kde kurzor skončí po posledním poli (ve výchozím stavu na konci úryvku).
$FILENAME Název souboru dokumentu (u neuložených bufferů prázdný).
$DATE Dnešní datum ve formátu ISO (2026-07-06).
$SELECTION Text vybraný ve chvíli, kdy byl úryvek vyvolán.
$CLIPBOARD Aktuální text schránky.
\$ Doslovný znak dolaru.

Cokoli poškozeného se vloží doslovně, místo aby selhalo. U indexu pole opakovaného v těle zůstane živým polem jen jeho první výskyt.

Správa úryvků

Předvolby ▸ Úryvky vypisují každý úryvek — dodávané sady i vaše vlastní. Odtud můžete:

  • Přidat… nový úryvek: předponu, rozsah (id jazyků oddělená čárkami, například cpp, c; prázdné nebo * platí všude), popis a tělo.
  • Upravit… své úryvky. Úpravou dodávaného úryvku vznikne vaše vlastní kopie, která má před dodávaným přednost (při shodné předponě a rozsahu).
  • Odebrat své úryvky (dodávané odebrat nelze — místo toho je zastiňte).

Dodávané sady jsou pro C/C++, Python, JavaScript/TypeScript a Markdown, plus dva univerzální pomocníky (date, clip). Vaše úryvky se ukládají jako JSON v datovém adresáři modulu (snippets/user.json); můžete tam vložit i další soubory *.json — formát odpovídá dodávaným souborům:

{
    "language": ["cpp", "c"],
    "snippets": [
        {
            "prefix": "for",
            "description": "indexed for loop",
            "body": ["for (${1:int i = 0}; ${2:i < count}; ${3:++i})", "{", "\t$0", "}"]
        }
    ]
}

Těla jsou pole řádků. Pole "scopes" u jednotlivého úryvku přebíjí výchozí "language" na úrovni souboru.

Šablony souborů

Soubor ▸ Nový ze šablony… otevře výběr koster souborů — zdrojový soubor C++ s main, hlavičku se strážcem vložení, skript v Pythonu, dokument Markdown, stránku HTML. Zvolená šablona se otevře jako nový neuložený dokument s již dosazenými proměnnými ($DATE, $CLIPBOARD, …); tokeny polí se sbalí na svůj výchozí text.

Šablony jsou rovněž soubory JSON (templates/*.json, jak dodávané, tak v datovém adresáři modulu):

{
    "templates": [
        {
            "name": "Python script",
            "suggestedName": "script.py",
            "body": ["#!/usr/bin/env python3", "", ""]
        }
    ]
}

Omezení

  • Opakovaný index pole se nezrcadlí (psaní v poli 1 neaktualizuje druhé $1); pozdější výskyty jsou prostý text.
  • Vnořené zástupné symboly (${1:${2:x}}) nejsou podporovány; vnitřní text se bere doslovně.
  • $FILENAME je v neuložených bufferech prázdné.