Automatické páry a inteligentné odsadenie¶
Počas písania editor za vás uzatvára zátvorky a úvodzovky, zachováva odsadenie na nových riadkoch, otvára bloky medzi zloženými zátvorkami a uplatňuje jednu jednotnú jednotku odsadenia (tabulátory alebo medzery) rovnako na kláves Tab, na zmenšenie odsadenia backspaceom aj na automatické odsadenie. Všetko, čo je tu opísané, je vstavaná funkcia editora; príslušné príkazy v ponuke a nastavenie štýlu odsadenia pochádzajú z dodávaného zásuvného modulu Odsadenie.
Má byť neviditeľné — koná iba na znaku, ktorý ste práve napísali, a stiahne sa všade tam, kde by prekážalo (vnútri komentárov a reťazcov, pred existujúcimi slovami, pri nesprávnom partnerskom znaku).
Automatické párovanie zátvoriek a úvodzoviek¶
Napísaním otváracej zátvorky alebo úvodzovky sa vloží aj jej partner a kurzor ostane medzi nimi:
| Napíšete | Dostanete | Kurzor |
|---|---|---|
( |
() |
medzi |
[ |
[] |
medzi |
{ |
{} |
medzi |
" |
"" |
medzi |
' |
'' |
medzi |
Niekoľko pravidiel dbá na to, aby vás to neobťažovalo:
- Prepísanie. Napísaním zatváracieho znaku vtedy, keď je ten istý znak už napravo od
kurzora, cez neho prejdete namiesto vloženia druhého — takže keď píšete priamo cez
()alebo"", ostane jediný, vyvážený pár. - Bez párovania pred slovom. Otvárací znak sa doplní iba vtedy, keď je nasledujúcim znakom
biely znak, zatvárací znak alebo koniec riadka — takže pridanie
(tesne pred existujúci text doň nevsunie osamelú). - Úvodzovky rozpoznávajúce apostrof.
'napísaný hneď za písmenom (ako vdon't) sa považuje za apostrof a nepáruje sa. Úvodzovky sa automaticky párujú iba v neutrálnom kontexte (na začiatku tokenu, po bielom znaku alebo operátore). - Lomené zátvorky iba v značkovacích jazykoch.
<…>sa automaticky párujú iba v dokumentoch HTML/XML, kde<otvára tag. Všade inde je<operátor porovnania alebo posunu a ostáva nedotknutý.
Obalenie výberu (obalenie napísaním)¶
Keď je text vybraný, napísanie otváracieho znaku výber nenahradí — obalí ho:
- Funguje so znakmi
([{"'(nie s<— mimo značkovacích jazykov je to operátor). - Vnútorný text ostane vybraný, takže obaľovanie sa dá reťaziť: napíšte
(a potom"a dostanete("value"). - Pri viacerých kurzoroch sa každý výber obalí samostatne — a celá operácia je jeden krok späť.
Odstránenie páru¶
Stlačenie klávesu Backspace vtedy, keď je kurzor vnútri prázdneho automaticky vloženého
páru ((|), [|], {|}, "|", '|' alebo <|> v značkovacom jazyku), odstráni obidva
znaky naraz, takže automatický pár vrátite jediným stlačením klávesu. Len čo je medzi párom
nejaký obsah, Backspace sa správa bežne.
Inteligentné odsadenie pri stlačení Enter¶
Stlačenie klávesu Enter prenesie úvodné biele znaky aktuálneho riadka na nový riadok, takže ostanete v rovnakej hĺbke bez opätovného písania tabulátorov či medzier:
- Zachovať odsadenie. Nový riadok sa začne rovnakým odsadením ako riadok, ktorý opúšťate.
- Otvoriť o úroveň. Ak sa opúšťaný riadok končí otváracím znakom (
{,[,(), nový riadok sa odsadí o jednu úroveň navyše. - Otvoriť blok. Ak kurzor stojí medzi otváracím znakom a jeho partnerom, blok sa roztvorí: nový riadok sa odsadí o úroveň hlbšie a zatvárací znak klesne na vlastný riadok do hĺbky otváracieho znaku.
Štýl odsadenia — tabulátory, medzery alebo automaticky¶
Jedna jednotka odsadenia riadi kláves Tab, zmenšenie odsadenia backspaceom aj automatické odsadenie opísané vyššie, takže sa vždy zhodujú. Zvolíte ju v Predvoľby ▸ Zásuvné moduly ▸ Odsadenie:
| Štýl | Správanie |
|---|---|
| Tabulátory (predvolené pre nové súbory) | Jedna úroveň je skutočný znak tabulátora; jeho vizuálnu šírku určuje Medzier na jedno odsadenie. |
| Medzery | Jedna úroveň je toľko medzier, koľko udáva Medzier na jedno odsadenie. |
| Automaticky (zistiť z dokumentu) | Editor prezrie existujúce odsadenie dokumentu a riadi sa ním — súbor odsadený tabulátormi ich používa ďalej, súbor s dvoma medzerami ostáva pri dvoch medzerách. Súbor, ktorý zatiaľ nemá žiadne odsadenie, sa vráti k predvoľbe (tabulátory). |
Nové súbory bez názvu majú predvolene tabulátory so šírkou 4.
Ručná úprava odsadenia¶
Zásuvný modul Odsadenie pridáva dva príkazy (nájdete ich aj v Úpravy ▸ Odsadenie), ktoré odsadia alebo zmenšia odsadenie každého riadka dotknutého výberom — prípadne riadka s kurzorom, keď nie je nič vybrané:
| Príkaz | Skratka |
|---|---|
| Zväčšiť odsadenie | Ctrl+] |
| Zmenšiť odsadenie | Ctrl+[ |
Vkladanie bloku kódu¶
Skopírujte niekoľko riadkov s vlastným odsadením — povedzme tri riadky, z ktorých každý sa začína dvanástimi medzerami — a vložte ich pri odsadenom kurzore. Pri doslovnom vložení by prvý riadok pristál na vašom odsadení plus dvanástich medzerách bloku (ďaleko vpravo) a každý nasledujúci riadok na stĺpci 0 plus dvanásť, takže by ste to celé museli odsadzovať ručne.
OctoEdit blok namiesto toho odsadí za vás: odsadenie, ktoré majú riadky bloku spoločné, sa odstráni, prvý riadok pristane tam, kde už kurzor je, a každý nasledujúci riadok dostane odsadenie riadka s kurzorom plus to odsadenie, ktoré mal vnútri bloku. Vnútorná štruktúra bloku sa zachová presne; tabulátory ostávajú tabulátormi a medzery medzerami.
Nahradí sa iba úvodné odsadenie: blok si ponechá vlastné znaky odsadenia, takže blok odsadený medzerami vložený do dokumentu odsadeného tabulátormi ostane vnútri odsadený medzerami. Prevod vnútorného odsadenia bloku na štýl dokumentu je možnou budúcou voľbou — dnes to editor nerobí.
Platí to iba pre vkladanie, ktoré je jednoznačne blokové:
- schránka obsahuje viac než jeden riadok;
- je tu jeden kurzor a žiadny obdĺžnikový (stĺpcový) výber;
- medzi začiatkom riadka a kurzorom nie je nič okrem bielych znakov — vloženie doprostred riadka je vsuvka a ostáva doslovné.
Všetko ostatné sa vloží presne ako doteraz. Celé vloženie je jediným krokom príkazu Späť a výber sa nahradí ako zvyčajne.
Vypnete to voľbou Znova odsadiť vložené riadky podľa odsadenia kurzora v Predvoľby ▸ Zásuvné moduly ▸ Odsadenie (predvolene zapnuté).
Prilepiť ako Markdown (Ctrl+Shift+V) prechádza rovnakým pravidlom.
Prevedený text je blok, ktorý začína v stĺpci 0 a ktorého vnorené položky
zoznamu sú odsadené voči nemu, takže pri odsadenom kurzore dostane každý
riadok odsadenie kurzora a vnorenie zostane presne zachované. Čo príkaz
robí, opisuje časť Úpravy.
Predvoľby podľa jazyka¶
Niektoré jazyky majú takmer univerzálnu zvyklosť odsadzovania a editor ju dodáva ako predvoľbu daného jazyka — čerstvo otvorený súbor tohto typu sa odsadzuje správne bez akéhokoľvek nastavovania:
| Jazyk | Predvolené |
|---|---|
| Python | 4 medzery (PEP 8) |
| Rust | 4 medzery (rustfmt) |
| Markdown | 4 medzery (vnorené zoznamy) |
| YAML | 2 medzery (tabulátory nie sú povolené) |
| JSON | 2 medzery |
| Go | tabulátory (gofmt) |
| C / C++ | tabulátory |
Každý ďalší jazyk zámerne nemá žiadnu predvoľbu a riadi sa vaším globálnym nastavením odsadenia. Ručnou zmenou jazyka dokumentu (ponuka Jazyk) sa príslušná predvoľba okamžite uplatní znova.
Predvoľba sa nachádza v definičnom súbore jazyka (colorizers/<id>.json, kľúč
"indent": { "style": "tabs|spaces", "width": N }). Skúsený používateľ môže dodávanú predvoľbu
zmeniť tak, že upravenú kópiu tohto súboru umiestni do používateľského priečinka s prekrytiami —
katalóg nahrádza definície podľa id.
Plánované: prekrytia podľa jazyka v Predvoľbách
Tabuľka nastavení na prepísanie týchto predvolieb pre jednotlivé jazyky (bez zásahu do akéhokoľvek súboru JSON) je navrhnutá a naplánovaná ako ďalší krok tejto funkcie; kým pribudne, sú cestami na riadenie odsadenia vyššie opísané prekrytie v JSON a nižšie uvedené vrstvy.
Odkiaľ pochádza jednotka odsadenia (poradie)¶
Keď má na odsadenie názor viacero zdrojov, editor ich vyhodnotí na jednom mieste a uplatní víťaza, od najvyššej priority:
- Súbor
.editorconfigprojektu — ak existuje a je zapnutá voľba „Uplatňovať nastavenia .editorconfig“, pre zodpovedajúce súbory vyhrávajúindent_style/indent_size/tab_widthz projektu. - Dodávaná predvoľba jazyka — tabuľka vyššie, ak jazyk dokumentu nejakú deklaruje.
- Vaše globálne nastavenie odsadenia — vyššie uvedená voľba Tabulátory / Medzery / Automaticky.
Projekt, ktorý so sebou nesie .editorconfig, teda prekryje pre svoje súbory všetko; súbor
v Pythone mimo takéhoto projektu sa odsadzuje medzerami podľa PEP 8, aj keď máte globálne
nastavené tabulátory; a všetko ostatné sa riadi vaším globálnym nastavením. Odsadenie dokumentu
môžete kedykoľvek potom zmeniť ručne.
Poradie platí v okamihu, keď sa čokoľvek zmení: uplatnením inej voľby Tabulátory / Medzery /
Automaticky v Predvoľbách sa otvorený dokument okamžite vyhodnotí znova, takže si súbor riadený
súborom .editorconfig alebo predvoľbou jazyka ponechá svoje odsadenie bez toho, aby ste museli
prepínať karty.
Viacero kurzorov¶
Všetko uvedené platí pri každom kurzore, keď upravujete text s
viacerými kurzormi: napísaním ( sa pri každom vloží (), Enter zachová
odsadenie každého riadka a Backspace medzi prázdnymi pármi odstráni pri každom obidva znaky.
Jediné Späť vráti celú úpravu s viacerými kurzormi jedným krokom.
Backspace pri rôznorodých kurzoroch
Backspace odstraňuje páry iba vtedy, keď každý kurzor stojí vnútri prázdneho páru. Ak sú niektoré kurzory inde, Backspace sa pri všetkých vráti k svojmu bežnému správaniu, takže nikdy neodstráni osamelý zatvárací znak pri jednom kurzore, kým pri druhom upravujete slovo.
V komentároch a reťazcoch¶
Keď je aktívny zvýrazňovač syntaxe, automatické párovanie aj otváranie bloku zloženou zátvorkou
sa stiahnu vnútri komentárov a reťazcových či znakových literálov — tam je { alebo "
obyčajný text, nie kód, takže ho editor nechá presne tak, ako ste ho napísali. Obyčajné odsadenie
(prenesenie bielych znakov predchádzajúceho riadka) funguje ďalej. V obyčajnom textovom dokumente
bez zvýrazňovača nie je čo potláčať, takže sa párovanie správa všade rovnako.
Súvisiace¶
- Zásuvný modul Odsadenie — nastavenie štýlu odsadenia a príkazy na zväčšenie/zmenšenie odsadenia.
- EditorConfig — odsadenie pre jednotlivé projekty, ktoré prekrýva vaše globálne nastavenie.
- Úpravy s viacerými kurzormi — umiestňovanie viacerých kurzorov naraz a úpravy s nimi.