Automaattiset parit ja älykäs sisennys¶
Kirjoittaessasi editori sulkee sulkeet ja lainausmerkit puolestasi, säilyttää sisennyksesi uusilla riveillä, avaa lohkot aaltosulkeiden väliin ja käyttää yhtä johdonmukaista sisennysyksikköä sekä Tab-näppäimeen, Backspacen sisennyksen purkuun että automaattiseen sisennykseen. Kaikki tämä on editorin sisäänrakennettu ominaisuus; vastaavat valikkokomennot ja sisennystyylin asetus tulevat mukana tulevasta Sisennys-liitännäisestä.
Sen on tarkoitus olla näkymätön — se toimii vain juuri kirjoittamasi merkin kohdalla ja vetäytyy sivuun kaikkialla, missä se olisi tiellä (kommenttien ja merkkijonojen sisällä, olemassa olevien sanojen edessä, väärän parimerkin kanssa).
Sulkeiden ja lainausmerkkien automaattinen pariuttaminen¶
Avaavan sulkeen tai lainausmerkin kirjoittaminen lisää sen parin ja jättää kohdistimen näiden kahden väliin:
| Kirjoitat | Saat | Kohdistin |
|---|---|---|
( |
() |
välissä |
[ |
[] |
välissä |
{ |
{} |
välissä |
" |
"" |
välissä |
' |
'' |
välissä |
Muutamat säännöt estävät tätä olemasta ärsyttävä:
- Ylikirjoitus. Sulkevan merkin kirjoittaminen, kun sama merkki on jo
kohdistimen oikealla puolella, astuu sen yli sen sijaan että lisäisi toisen — joten
suoraan
()- tai""-parin läpi kirjoittaminen jättää yhden, tasapainoisen parin. - Ei pariuttamista sanan edessä. Avaaja täydennetään vain, kun seuraava merkki on
tyhjemerkki, sulkeva merkki tai rivin loppu — joten
(-merkin lisääminen juuri olemassa olevan tekstin eteen ei ammu irrallista)-merkkiä sen keskelle. - Heittomerkin tunnistavat lainausmerkit. Heti kirjaimen jälkeen kirjoitettua
'-merkkiä (kuten sanassadon't) käsitellään heittomerkkinä eikä sitä pariuteta. Lainausmerkit pariutuvat itsestään vain neutraalissa yhteydessä (elementin alussa, tyhjemerkin tai operaattorin jälkeen). - Kulmasulkeet vain merkkauskielissä.
<…>pariutuvat vain HTML- ja XML-asiakirjoissa, joissa<avaa tagin. Kaikkialla muualla<on vertailu- tai siirto-operaattori ja jätetään rauhaan.
Valinnan ympäröiminen (kirjoita ympäröidäksesi)¶
Kun tekstiä on valittuna, avaajan kirjoittaminen ei korvaa valintaa — se ympäröi sen:
- Toimii merkeillä
([{"'(ei<— merkkauskielten ulkopuolella se on operaattori). - Sisäteksti pysyy valittuna jälkeenpäin, joten ympäröinnit ketjuuntuvat: kirjoita
(ja sitten", niin saat("value"). - Useilla kohdistimilla jokainen valinta ympäröidään erikseen — ja koko toimenpide on yksi kumoamisaskel.
Parin poistaminen¶
Backspacen painaminen kohdistimen ollessa tyhjän, automaattisesti lisätyn parin
välissä ((|), [|], {|}, "|", '|' tai <|> merkkauskielissä) poistaa
molemmat merkit yhdessä askeleessa, joten voit kumota automaattisen parin yhdellä
näppäinpainalluksella. Kun parin välissä on sisältöä, Backspace toimii tavalliseen tapaan.
Älykäs sisennys Enterillä¶
Enterin painaminen vie nykyisen rivin alun tyhjemerkit uudelle riville, joten pysyt samalla syvyydellä kirjoittamatta sarkaimia tai välilyöntejä uudelleen:
- Säilytä sisennys. Uusi rivi alkaa samalla sisennyksellä kuin rivi, jonka jätit.
- Avaa yksi taso. Jos rivi, jonka jätit, päättyy avaajaan (
{,[,(), uusi rivi sisennetään yhden lisätason verran. - Avaa lohko. Jos kohdistin on avaajan ja sitä vastaavan sulkijan välissä, lohko avautuu: uusi rivi sisennetään yhden tason syvemmälle ja sulkija putoaa omalle rivilleen avaajan syvyydelle.
Sisennystyyli — sarkaimet, välilyönnit tai automaattinen¶
Yksi sisennysyksikkö ohjaa Tab-näppäintä, Backspacen sisennyksen purkua ja yllä kuvattua automaattista sisennystä, joten ne ovat aina yhtä mieltä. Valitse se kohdassa Asetukset ▸ Liitännäiset ▸ Sisennys:
| Tyyli | Käyttäytyminen |
|---|---|
| Sarkaimet (oletus uusille tiedostoille) | Yksi taso on todellinen sarkainmerkki; Välilyöntejä sisennystä kohden asettaa sen näkyvän leveyden. |
| Välilyönnit | Yksi taso on Välilyöntejä sisennystä kohti välilyöntimerkkiä. |
| Automaattinen (tunnista asiakirjasta) | Editori tutkii asiakirjan olemassa olevaa sisennystä ja noudattaa sitä — sarkaimilla sisennetty tiedosto käyttää edelleen sarkaimia, kahden välilyönnin tiedosto käyttää edelleen kahta välilyöntiä. Tiedosto, jossa ei vielä ole sisennystä, turvautuu oletukseen (sarkaimiin). |
Uudet, nimettömät tiedostot käyttävät oletuksena sarkaimia, leveys 4.
Sisennyksen säätäminen käsin¶
Sisennys-liitännäinen lisää kaksi komentoa (myös kohdassa Muokkaa ▸ Sisennys), jotka sisentävät tai purkavat sisennystä jokaiselta riviltä, johon valinta koskee — tai kohdistimen riviltä, kun mitään ei ole valittuna:
| Komento | Pikanäppäin |
|---|---|
| Lisää sisennystä | Ctrl+] |
| Vähennä sisennystä | Ctrl+[ |
Koodilohkon liittäminen¶
Kopioi muutama rivi, joilla on oma sisennyksensä — vaikkapa kolme riviä, joista kukin alkaa kahdellatoista välilyönnillä — ja liitä ne sisennetyn kohdistimen kohdalle. Sellaisenaan liitettynä ensimmäinen rivi päätyisi sinun sisennykseesi plus lohkon kaksitoista välilyöntiä (kauas oikealle) ja jokainen seuraava rivi sarakkeeseen 0 plus kaksitoista, ja saisit sisentää koko jutun uudelleen käsin.
OctoEdit sisentää lohkon puolestasi uudelleen: lohkon riveille yhteinen sisennys poistetaan, ensimmäinen rivi päätyy sinne, missä kohdistin jo on, ja jokainen seuraava rivi saa kohdistinrivin sisennyksen plus sen sisennyksen, joka sillä oli lohkon sisällä. Lohkon sisäinen rakenne säilyy täsmälleen; sarkaimet pysyvät sarkaimina ja välilyönnit välilyönteinä.
Vain alun sisennys korvataan: lohko säilyttää omat sisennysmerkkinsä, joten välilyönneillä sisennetty lohko, joka liitetään sarkaimilla sisennettyyn asiakirjaan, pysyy sisältä välilyönneillä sisennettynä. Lohkon sisäisen sisennyksen muuntaminen asiakirjan tyyliin on mahdollinen tuleva valinta — editori ei tee sitä tänään.
Tämä koskee vain liittämistä, joka on yksiselitteisesti lohko:
- leikepöydällä on useampi kuin yksi rivi;
- kohdistimia on yksi eikä suorakulmaista (sarake)valintaa ole;
- rivin alun ja kohdistimen välissä on pelkkiä tyhjemerkkejä — keskelle riviä liittäminen on jatkos, ja se jätetään sellaisenaan.
Kaikki muu liitetään täsmälleen kuten ennenkin. Koko liittäminen on yksi Kumoa-askel, ja valinta korvataan tavalliseen tapaan.
Kytke se pois valinnalla Sisennä liitetyt rivit kohdistimen sisennyksen mukaan kohdassa Asetukset ▸ Liitännäiset ▸ Sisennys (oletuksena päällä).
Liitä Markdownina (Ctrl+Shift+V) kulkee saman säännön läpi. Muunnettu
teksti on lohko, joka alkaa sarakkeesta 0 ja jonka sisäkkäiset luettelon
kohdat on sisennetty suhteessa siihen, joten sisennetyn kohdistimen kohdalla
jokainen rivi saa kohdistimen sisennyksen ja sisäkkäisyys säilyy täsmälleen.
Mitä komento tekee, kerrotaan kohdassa
Muokkaaminen.
Kielikohtaiset oletukset¶
Joillakin kielillä on yksi lähes yleismaailmallinen sisennyskäytäntö, ja editori toimittaa sen kyseisen kielen oletuksena — juuri avattu tuon tyypin tiedosto sisentyy oikein ilman mitään asetuksia:
| Kieli | Oletus |
|---|---|
| Python | 4 välilyöntiä (PEP 8) |
| Rust | 4 välilyöntiä (rustfmt) |
| Markdown | 4 välilyöntiä (sisäkkäiset luettelot) |
| YAML | 2 välilyöntiä (sarkaimet eivät ole sallittuja) |
| JSON | 2 välilyöntiä |
| Go | sarkaimet (gofmt) |
| C / C++ | sarkaimet |
Jokainen muu kieli on tarkoituksella ilman oletusta ja noudattaa yleistä sisennysasetustasi. Asiakirjan kielen vaihtaminen käsin (Kieli-valikko) ottaa vastaavan oletuksen käyttöön heti.
Oletus sijaitsee kielen määritystiedostossa (colorizers/<id>.json, avain
"indent": { "style": "tabs|spaces", "width": N }). Kokenut käyttäjä voi muuttaa mukana
tulevaa oletusta sijoittamalla muokatun kopion tuosta tiedostosta käyttäjän
ohituskansioon — luettelo korvaa määritykset tunnisteen perusteella.
Suunnitteilla: kielikohtaiset ohitukset asetuksissa
Asetustaulukko näiden oletusten ohittamiseen kielikohtaisesti (koskematta mihinkään JSONiin) on suunniteltu ja aiottu tämän ominaisuuden seuraavaksi askeleeksi; kunnes se saapuu, yllä oleva JSON-ohitus ja alla olevat kerrokset ovat tavat ohjata sisennystä.
Mistä sisennysyksikkö tulee (etusijajärjestys)¶
Kun useilla lähteillä on mielipide sisennyksestä, editori ratkaisee ne yhdessä paikassa ja ottaa voittajan käyttöön, korkein etusija ensin:
- Projektin
.editorconfig— kun sellainen on ja »Ota .editorconfig-asetukset käyttöön« on päällä, projektinindent_style,indent_sizejatab_widthvoittavat sopivien tiedostojen kohdalla. - Kielen mukana tuleva oletus — yllä oleva taulukko, kun asiakirjan kieli ilmoittaa sellaisen.
- Yleinen sisennysasetuksesi — yllä oleva valinta sarkainten, välilyöntien ja automaattisen välillä.
Niinpä projekti, joka toimittaa .editorconfig-tiedoston, ohittaa kaiken kyseisen
projektin tiedostojen osalta; tällaisen projektin ulkopuolinen Python-tiedosto sisentyy
PEP 8:n välilyönneillä, vaikka yleinen asetuksesi olisi sarkaimet; ja kaikki muu noudattaa
yleistä asetustasi. Voit aina muuttaa asiakirjan sisennystä käsin jälkeenpäin.
Etusijajärjestys pätee siitä hetkestä, kun jokin muuttuu: toisen sarkain-, välilyönti- tai
automaattivalinnan käyttöönotto asetuksissa ratkaisee avoimen asiakirjan heti uudelleen,
joten .editorconfig-tiedoston tai kielioletuksen ohjaama tiedosto säilyttää
sisennyksensä ilman että sinun täytyy vaihtaa välilehteä.
Useat kohdistimet¶
Kaikki yllä oleva pätee jokaisen kohdistimen kohdalla, kun muokkaat
useilla kohdistimilla: (-merkin kirjoittaminen lisää () jokaiseen,
Enter säilyttää kunkin rivin sisennyksen, ja Backspace tyhjien parien välissä poistaa
kummankin merkin jokaisessa. Yksi Kumoa peruu koko monikohdistinmuokkauksen yhdessä
askeleessa.
Backspace, kun kohdistimet ovat eri tiloissa
Backspace poistaa pareja vain, kun jokainen kohdistin on tyhjän parin välissä. Jos osa kohdistimista on muualla, Backspace turvautuu tavalliseen käyttäytymiseensä niissä kaikissa, joten se ei koskaan poista irrallista sulkijaa yhden kohdistimen kohdalta samalla kun toisen kohdalla muokataan sanaa.
Kommenteissa ja merkkijonoissa¶
Kun syntaksivärjääjä on aktiivinen, automaattinen pariuttaminen ja aaltosulkeen ohjaama
lohkon avaus vetäytyvät sivuun kommenttien sekä merkkijono- ja merkkiliteraalien
sisällä — siellä { tai " on tavallista tekstiä eikä koodia, joten editori jättää sen
täsmälleen niin kuin se kirjoitettiin. Tavallinen sisennys (edellisen rivin tyhjemerkkien
mukanaan vieminen) toimii silti. Tavallisessa tekstiasiakirjassa, jossa ei ole värjääjää,
ei ole mitään vaimennettavaa, joten pariuttaminen toimii kaikkialla samalla tavalla.
Aiheeseen liittyvää¶
- Sisennys-liitännäinen — sisennystyylin asetus sekä Lisää- ja Vähennä-komennot.
- EditorConfig — projektikohtainen sisennys, joka ohittaa yleisen asetuksesi.
- Monikohdistinmuokkaus — useiden kohdistimien asettaminen ja niillä muokkaaminen.