Automatiske par og smart innrykk¶
Mens du skriver, lukker redigereren parenteser og anførselstegn for deg, beholder innrykket ditt på nye linjer, folder ut blokker mellom klammer og bruker én ensartet innrykksenhet (tabulatorer eller mellomrom) på Tab-tasten, på det å oppheve innrykk med Backspace og på det automatiske innrykket. Alt her er en innebygd funksjon i redigereren; de tilsvarende menykommandoene og innstillingen for innrykksstil kommer fra det medfølgende Innrykk-programtillegget.
Det er ment å være usynlig — det virker bare på det tegnet du nettopp skrev, og trer til side der det ville være i veien (inne i kommentarer og tekststrenger, foran eksisterende ord, med feil partnertegn).
Automatiske par av parenteser og anførselstegn¶
Skriver du en åpnende parentes eller et åpnende anførselstegn, settes partneren inn, og markøren blir stående mellom de to:
| Du skriver | Du får | Markøren |
|---|---|---|
( |
() |
mellom |
[ |
[] |
mellom |
{ |
{} |
mellom |
" |
"" |
mellom |
' |
'' |
mellom |
Noen få regler gjør at dette ikke blir irriterende:
- Overskriving. Skriver du et lukkende tegn når det samme tegnet allerede
står til høyre for markøren, går den over det i stedet for å sette inn ett til —
så det å skrive rett gjennom
()eller""etterlater ett enkelt, balansert par. - Ingen paring foran et ord. En åpner fullføres bare når det neste tegnet er et
blanktegn, en lukker eller slutten på linjen — så det å legge til en
(rett foran eksisterende tekst skyter ikke inn en løs)midt inni den. - Anførselstegn som kjenner apostrofen. En
'som skrives rett etter en bokstav (som idon't), behandles som en apostrof og pares ikke. Anførselstegn pares bare av seg selv i en nøytral sammenheng (i begynnelsen av et element, etter et blanktegn eller en operator). - Vinkelparenteser bare i oppmerking.
<…>pares bare i HTML- og XML-dokumenter, der<åpner en tagg. Alle andre steder er<en sammenlignings- eller skiftoperator og lar den være i fred.
Å omslutte en merking (skriv for å omslutte)¶
Med tekst merket erstatter det ikke merkingen å skrive en åpner — det omslutter den:
- Virker med
([{"'(ikke<— utenfor oppmerking er det en operator). - Teksten inni forblir merket etterpå, så omslutninger kan kjedes: skriv
(og så", og du får("value"). - Med flere markører omsluttes hver merking for seg — og hele handlingen er ett angretrinn.
Å slette et par¶
Trykker du Backspace med markøren mellom et tomt par som er satt inn av seg
selv ((|), [|], {|}, "|", '|' eller <|> i oppmerking), slettes begge
tegnene i ett steg, så du kan angre et automatisk par med ett tastetrykk. Når det
først er innhold mellom paret, oppfører Backspace seg som vanlig.
Smart innrykk ved Enter¶
Et trykk på Enter tar med seg den gjeldende linjens innledende blanktegn over på den nye linjen, så du blir stående på samme dybde uten å skrive tabulatorer eller mellomrom på nytt:
- Behold innrykket. Den nye linjen begynner med det samme innrykket som den linjen du forlot.
- Åpne ett nivå. Slutter linjen du forlot, med en åpner (
{,[,(), rykkes den nye linjen ett nivå ekstra inn. - Åpne en blokk. Står markøren mellom en åpner og den lukkeren som hører til, foldes blokken ut: den nye linjen rykkes ett nivå lenger inn, og lukkeren faller ned på sin egen linje på åpnerens dybde.
Innrykksstil — tabulatorer, mellomrom eller automatisk¶
Én innrykksenhet styrer Tab-tasten, det å oppheve innrykk med Backspace og det automatiske innrykket ovenfor, så de alltid er enige. Velg den under Innstillinger ▸ Programtillegg ▸ Innrykk:
| Stil | Oppførsel |
|---|---|
| Tabulatorer (standard for nye filer) | Ett nivå er et virkelig tabulatortegn; Mellomrom per innrykksnivå angir den visuelle bredden. |
| Mellomrom | Ett nivå er Mellomrom per innrykksnivå mellomromstegn. |
| Automatisk (finn ut fra dokumentet) | Redigereren ser på dokumentets eksisterende innrykk og følger det — en fil som er rykket inn med tabulatorer, fortsetter å bruke tabulatorer, og en fil med 2 mellomrom fortsetter å bruke to mellomrom. En fil helt uten innrykk faller tilbake på standarden (tabulatorer). |
Nye filer uten navn bruker som standard tabulatorer med bredde 4.
Å justere innrykket for hånd¶
Innrykk-programtillegget legger til to kommandoer (også under Rediger ▸ Innrykk) som rykker hver linje merkingen berører, inn eller ut — eller markørens linje når ingenting er merket:
| Kommando | Hurtigtast |
|---|---|
| Øk innrykket | Ctrl+] |
| Reduser innrykket | Ctrl+[ |
Å lime inn en blokk kode¶
Kopier noen linjer som bærer sitt eget innrykk — for eksempel tre linjer som hver begynner med tolv mellomrom — og lim dem inn ved en innrykket markør. Limt inn ordrett ville den første linjen havne på ditt innrykk pluss blokkens tolv mellomrom (langt ute til høyre) og hver følgende linje på kolonne 0 pluss tolv, og du måtte rykke det hele inn på nytt for hånd.
OctoEdit rykker blokken inn på nytt for deg i stedet: det innrykket blokkens linjer har til felles, fjernes, den første linjen havner der markøren allerede er, og hver følgende linje får markørlinjens innrykk pluss det innrykket den hadde inne i blokken. Blokkens indre struktur beholdes nøyaktig; tabulatorer forblir tabulatorer, og mellomrom forblir mellomrom.
Bare det innledende innrykket erstattes: blokken beholder sine egne innrykkstegn, så en blokk med mellomromsinnrykk som limes inn i et dokument med tabulatorinnrykk, beholder mellomromsinnrykket inni. Å gjøre blokkens indre innrykk om til dokumentets stil er et mulig framtidig valg — redigereren gjør det ikke i dag.
Dette gjelder bare en innliming som utvetydig er en blokk:
- utklippstavlen inneholder mer enn én linje;
- det er én markør og ingen rektangulær merking (kolonnemerking);
- det er ingenting annet enn blanktegn mellom begynnelsen av linjen og markøren — å lime inn midt i en linje er en skjøt, og lates ordrett.
Alt annet limes inn nøyaktig som før. Hele innlimingen er ett enkelt Angre-trinn, og en merking erstattes som vanlig.
Slå det av med Gi innlimte linjer innrykk etter markørens innrykk under Innstillinger ▸ Programtillegg ▸ Innrykk (på som standard).
Lim inn som Markdown (Ctrl+Shift+V) går gjennom den samme regelen. Den
konverterte teksten er en blokk som starter i kolonne 0, med de nestede
listeelementene rykket inn i forhold til den, så ved en innrykket markør får
hver linje markørens innrykk, og nestingen beholdes nøyaktig. Se
Redigering for hva kommandoen gjør.
Standarder per språk¶
Noen språk har én nesten allmenn innrykkskonvensjon, og redigereren leverer den som det språkets standard — en nyåpnet fil av typen rykkes riktig inn helt uten oppsett:
| Språk | Standard |
|---|---|
| Python | 4 mellomrom (PEP 8) |
| Rust | 4 mellomrom (rustfmt) |
| Markdown | 4 mellomrom (nøstede lister) |
| YAML | 2 mellomrom (tabulatorer er ikke tillatt) |
| JSON | 2 mellomrom |
| Go | tabulatorer (gofmt) |
| C / C++ | tabulatorer |
Hvert annet språk bærer med vilje ingen standard og følger den globale innrykksinnstillingen din. Bytter du et dokuments språk for hånd (menyen Språk), tas den tilhørende standarden i bruk med det samme.
Standarden ligger i språkets definisjonsfil (colorizers/<id>.json, nøkkelen
"indent": { "style": "tabs|spaces", "width": N }). En erfaren bruker kan endre en
medfølgende standard ved å legge en endret kopi av den filen i mappen for
brukeroverstyringer — katalogen erstatter definisjoner etter id.
Planlagt: overstyringer per språk under Innstillinger
En innstillingstabell for å overstyre disse standardene per språk (uten å røre noen JSON) er utformet og planlagt som neste steg av denne funksjonen; inntil den kommer, er JSON-overstyringen ovenfor og lagene nedenfor måtene å styre innrykket på.
Hvor innrykksenheten kommer fra (rekkefølgen)¶
Når flere kilder har en mening om innrykket, avgjør redigereren dem på ett sted og bruker vinneren, med den høyeste forrangen først:
- Prosjektets
.editorconfig— når den finnes og «Bruk .editorconfig-innstillinger» er på, vinner et prosjektsindent_style,indent_sizeogtab_widthfor filer som passer. - Språkets medfølgende standard — tabellen ovenfor, når dokumentets språk erklærer en.
- Din globale innrykksinnstilling — valget mellom tabulatorer, mellomrom og automatisk ovenfor.
Så et prosjekt som leverer en .editorconfig, overstyrer alt for det prosjektets
filer; en Python-fil utenfor et slikt prosjekt rykkes inn med PEP 8-mellomrom selv om
den globale innstillingen din er tabulatorer; og alt annet følger den globale
innstillingen din. Du kan alltid endre et dokuments innrykk for hånd etterpå.
Rekkefølgen holder i det øyeblikket noe endrer seg: tar du i bruk et annet valg
mellom tabulatorer, mellomrom og automatisk under Innstillinger, avgjøres det åpne
dokumentet på nytt med det samme, så en fil som styres av en .editorconfig eller en
språkstandard, beholder innrykket sitt uten at du må bytte fane.
Flere markører¶
Alt det ovenstående gjelder ved hver markør når du redigerer med
flere markører: skriver du (, settes () inn ved hver av dem,
Enter beholder hver linjes innrykk, og Backspace mellom tomme par sletter begge
tegnene ved hver. Én Angre tar hele endringen med flere markører tilbake i ett
steg.
Backspace når markørene står ulikt
Backspace sletter bare par når hver markør står mellom et tomt par. Står noen markører andre steder, faller Backspace tilbake på sin vanlige oppførsel ved dem alle, så den sletter aldri en løs lukker ved én markør mens den redigerer et ord ved en annen.
I kommentarer og tekststrenger¶
Når en syntaksfargelegger er aktiv, trer de automatiske parene og den
klammedrevne blokkåpningen til side inne i kommentarer og tekst- og
tegnstrenger — der er en { eller en " alminnelig tekst og ikke kode, så
redigereren lar den stå nøyaktig slik den ble skrevet. Det alminnelige innrykket (å
ta med den forrige linjens blanktegn) virker fortsatt. I et rent tekstdokument uten
en fargelegger er det ingenting å undertrykke, så paringen oppfører seg likt overalt.
Beslektet¶
- Innrykk-programtillegget — innstillingen for innrykksstil og kommandoene for å øke og redusere innrykket.
- EditorConfig — innrykk per prosjekt som overstyrer den globale innstillingen din.
- Redigering med flere markører — å sette flere markører og redigere med dem samtidig.