Handbok KatePart

Handbok KatePart

Thad McGinnis

Anne-Marie Mahfouf

Anders Lund

T.C. Hollingsworth

developer: Christoph Cullmann
reviewer: Lauri Watts
Översättare: Stefan Asserhäll
Revision Ramverk 5.44 (2018-03-23)

KatePart är en editorkomponent med fullständig funktionalitet av KDE.


Innehållsförteckning

1. Inledning
2. En del grundläggande information
Drag och släpp
Genvägar
3. Arbeta med KatePart-editorn
Översikt
Flytta sig i texten
Arbeta med markeringar
Använda blockmarkering
Använda skriv över-markering
Att använda långlivade markeringar
Kopiera och klistra in text
Söka och ersätta text
Sök- och ersättningsrader
Söka efter text
Ersätta text
Att använda bokmärken
Automatisk radbrytning av text
Att använda automatisk indentering
Indikering av radändringar
Rullningslistens miniavbildning
4. Menyalternativen
Menyn Arkiv
Menyn Redigera
Menyn Visa
Menyn Bokmärken
Menyn Verktyg
Menyerna Inställningar och Hjälp
5. Avancerade redigeringsverktyg
Kommentera/avkommentera
Editorkomponentens kommandorad
Vanliga kommandon på kommandoraden
Använda kodvikning
6. Utöka KatePart
Inledning
Arbeta med syntaxfärgläggning
Översikt
KateParts syntaxfärgläggningssystem
XML formatet för syntaxfärgläggningsdefinitioner
Regler för syntaxdetektering
Skapa skript med Javascript
Indenteringsskript
Kommandoradskript
Programmeringsgränssnittet för skripthantering
7. Att anpassa KatePart
Inställning av editorkomponenten
Utseende
Teckensnitt och färger
Redigering
Öppna/spara
Anpassa med dokumentvariabler
Hur KatePart använder variabler
Tillgängliga variabler
Utökade alternativ i .kateconfig-filer
8. Tack till och licens
9. Vi-inmatningsläget
Vi-inmatningsläge
Funktioner inkompatibla med Vim
Byta lägen
Integrering med funktioner i Kate
Kommandon som stöds i normalt och visningsläge
Förflyttningar som stöds
Textobjekt som stöds
Kommandon i infogningsläge som stöds
Komma-textobjektet
Saknade funktioner
A. Reguljära uttryck
Inledning
Mönster
Undanta tecken
Teckenklasser och förkortningar
Alternativ: matchar en av
Delmönster
Tecken med särskild betydelse inne i mönster
Kvalificering
Glupskt beteende
Exempel i sammanhang
Påståenden
Kapitel 1. Inledning

Kapitel 1. Inledning

KatePart är en texteditorkomponent med fullständig funktionalitet som används av många Qt™- och KDE-program. KatePart är mer än en texteditor. Den är avsedd som en editor för programmerare, och kan delvis anses som ett alternativ till mer kraftfulla editorer. En av KateParts huvudfunktioner är syntaxfärgläggningen, som är anpassad för många olika programspråk som C/C++, Java™, Python, Perl, Bash, Modula 2, HTML och Ada.

KWrite är ett enkelt texteditorprogram baserat på KatePart. Det har ett enkelt dokumentgränssnitt (SDI) som gör det möjligt att redigera en fil åt gången per fönster. Eftersom KWrite är en mycket enkel implementation av KatePart behöver det inte någon egen dokumentation. Om du vet hur KWrite används, kan du använda KatePart var som helst.

Kapitel 2. En del grundläggande information

Kapitel 2. En del grundläggande information

KWrite och många andra tillämpningar av KatePart är mycket lätta att använda. Alla som har använt en texteditor bör inte ha några problem.

Drag och släpp

KatePart använder KDE:s drag och släpp protokoll. Filer kan dras och släppas på KatePart från skrivbordet, filhanteraren Dolphin, eller någon FTP-plats som öppnats i ett av Dolphins fönster.

Genvägar

Genvägar

Många av snabbtangenterna kan anpassas via menyn Inställningar. Normalt hanterar KatePart följande snabbtangenter:

Insert

Växla mellan lägena infoga och ersätt. I läget infoga lägger editorn till alla tecken som skrivs in till texten medan all data knuffas framåt till höger om textmarkören. Läget ersätt gör att varje tecken som skrivs in ersätter tecknet omedelbart till höger om textmarkören.

Vänsterpil

Flytta markören ett tecken åt vänster.

Högerpil

Flytta markören ett tecken åt höger.

Uppåtpil

Flytta markören en rad uppåt.

Neråtpil

Flytta markören en rad neråt.

Page Up

Flytta markören en sida uppåt.

Alt+Page Up

Föregående bokmärke

Page Down

Flytta markören en sida neråt.

Alt+Page Down

Nästa bokmärke

Backsteg

Ta bort tecknet till vänster om markören.

Home

Flytta markören till början av raden.

End

Flytta markören till slutet av raden.

Ta bort

Ta bort tecknet till höger om markören (eller all markerad text).

Skift+retur

Infoga nyrad inklusive inledande tecken på nuvarande rad som inte är bokstäver eller siffror. Det är t.ex. användbart för att skriva kommentarer i koden: I slutet av raden // någon text tryck på snabbtangenten så börjar den nästa raden redan med // . Du behöver alltså inte skriva in kommentartecknen i början av varje ny rad med kommentarer.

Skift+vänsterpil

Markera text ett tecken åt vänster.

Skift+högerpil

Markera text ett tecken åt höger.

F1

Hjälp

Skift+F1

Vad är det här?

F3

Sök igen

Skift+F3

Sök föregående

Ctrl+H

Sök markering

Ctrl+Skift+H

Sök markering bakåt

Ctrl+A

Markera alla

Ctrl+Skift+A

Avmarkera

Ctrl+Skift+B

Blockmarkeringsläge

Ctrl+B

Lägg till ett bokmärke

Ctrl+C

Kopiera den markerade texten till klippbordet.

Ctrl+D

Kommentera

Ctrl+Skift+D

Avkommentera

Ctrl+F1

Sök

Ctrl+G

Gå till rad...

Ctrl+I

Indentera markering

Ctrl+Skift+I

Avindentera markering

Ctrl+J

Kombinera rader

Ctrl+N

Nytt dokument

Ctrl+O

Öppna ett dokument

Ctrl+P

Skriv ut

Ctrl+Q

Avsluta. Stäng aktiv kopia av editorn

Ctrl+R

Ersätt

Ctrl+S

Utför kommandot Spara.

Ctrl+U

Stora bokstäver

Ctrl+Skift+U

Små bokstäver

Ctrl+Alt+U

Inledande stor bokstav

Ctrl+V

Klistrar in klippbordets text på raden som redigeras.

Ctrl+W

Stäng

Ctrl+X

Klipp ut den markerade texten, och kopiera den till klippbordet.

Ctrl+Z

Ångra

Ctrl+Skift+Z

Gör om

Ctrl+-

Fäll ihop en lokal nivå

Ctrl+Skift+-

Fäll ihop toppnivå

Ctrl++

Expandera en lokal nivå

Ctrl+Skift++

Expandera toppnivå

Meta+Ctrl+V

VI-inmatningsläge

Ctrl+Mellanslag

Utför kodkomplettering

F5

Återställ

F6

Visa/Dölj ikonkant

F7

Byt till kommandorad

F9

Visa/Dölj vikmarkörer

F10

Dynamisk radbrytning

F11

Visa/Dölj radnummer

Kapitel 3. Arbeta med KatePart-editorn

Kapitel 3. Arbeta med KatePart-editorn

Anders Lund

Dominik Haumann

Översättare: Johan Thelmén

Översikt

KatePart-editorn är redigeringsområdet i KateParts fönster. Editorn delas mellan Kate och KWrite, och kan också användas i Konqueror för att visa textfiler från den lokala datorn, eller från nätverket.

Editorn består av följande komponenter:

Redigeringsområdet

Det här är platsen där texten i ditt dokument finns.

Rullningslisterna

Rullningslisterna anger positionen av den synliga delen av dokumentets text, och kan användas för att flytta omkring i dokumentet. Att dra i rullningslisterna gör inte att infogningsmarkören flyttar sig.

Rullningslisterna visas eller göms efter behov.

Ikonkanten

Ikonkanten är en smal ruta till vänster om editorn, som visar en liten ikon intill markerade rader.

Du kan lägga till eller ta bort ett bokmärke för en synlig rad genom att klicka med vänster musknapp i ikonkanten intill raden.

Visning av ikonkanten kan ändras med menyalternativet VisaVisa ikonkant.

Radnummerrutan

Rutan med radnummer visar radnummer för alla synliga rader i dokumentet.

Visning av radnummer kan ändras med menyalternativet VisaVisa radnummer.

Kodvikningsrutan

Kodvikningsrutan låter dig fälla ihop eller expandera block av rader som kan fällas ihop. Beräkningen av områden som kan fällas ihop görs enligt reglerna i definitionen av syntaxfärgläggning för dokumentet.

Flytta sig i texten

Flytta sig i texten

Att flytta omkring i texten i KatePart sker på liknande sätt som i de flesta grafiska texteditorer. Du flyttar markören med piltangenterna och tangenterna Page Up, Page Down, Home och End tillsammans med väljartangenterna Ctrl och Skift. Tangenten Skift används alltid för att skapa en markering, medan tangenten Ctrl har olika effekt för olika tangenter:

  • För tangenterna Upp och Ner betyder den rulla istället för att flytta markören.

  • För tangenterna Vänster och Höger betyder den hoppa över ord istället för tecken.

  • För tangenterna Page Up och Page Down betyder den att gå till vyns synliga kant istället för att bläddra.

  • För tangenterna Home och End betyder den att gå till dokumentets början eller slut istället för radens början eller slut.

KatePart tillhandahåller också ett sätt att snabbt gå till motsvarande klammer eller parentes: Placera markören innanför ett parentes- eller klammertecken och tryck på Ctrl+6 för att gå till motsvarande parentes eller klammer.

Dessutom kan du använda bokmärken för att snabbt gå till platser som du själv definierar.

Arbeta med markeringar

Arbeta med markeringar

Det finns två grundläggande sätt att markera text i KatePart: med musen, och med tangentbordet.

För att markera med musen, håll nere vänsterknappen medan du drar markören från stället där markeringen ska börja, till den önskade slutpunkten. Texten markeras medan du drar.

Dubbelklicka på ett ord för att markera ordet.

Trippelklicka på en rad markerar hela raden.

Om Skift hålls nere vid ett klick, så markeras texten.

  • Om ingenting redan är markerat, från textmarkörens position till musens position.

  • Om det finns en markering, från och inklusive den markeringen till musens position.

Notera

När text markeras genom att dra med musen, kopieras den markerade texten till klippbordet, och kan klistras in genom att klicka med musens mittenknapp i editorn, eller i vilket annat program som helst där du vill klistra in texten.

För att markera med tangentbordet, håll nere Skift-tangenten medan du använder förflyttningstangenterna (piltangenterna, Page Up, Page Down, Home och End, möjligen tillsammans med Ctrl för att utöka förflyttningen av textmarkören).

Se också avsnittet Flytta sig i texten i det här kapitlet.

För att Kopiera den nuvarande markeringen, använd menyalternativet RedigeraKopiera eller snabbtangenten (normalt Ctrl+C).

För att avmarkera den nuvarande markeringen använd menyalternativet RedigeraAvmarkera, eller snabbtangenten (normalt Ctrl+Skift+A), eller klicka med vänster musknapp i editorn.

Använda blockmarkering

När blockmarkering är aktiverat, kan du göra vertikala markeringar i texten, vilket betyder att markera vissa kolumner i flera rader. Det här är praktiskt för att till exempel arbeta med tabulatoråtskilda rader.

Blockmarkering kan väljas genom att använda menyalternativet RedigeraBlockmarkeringsläge. Den normala snabbtangenten är Ctrl+Skift+B.

Använda skriv över-markering

Om skriv över-markering är aktiverad, så ersätts markeringen genom att skriva in eller klistra in text. Om det inte är aktiverat, så läggs ny text till på markörens plats.

Skriv över-markering är normalt aktiverad.

För att ändra inställning av alternativet, använd sidan Markör och markering i inställningsdialogrutan.

Att använda långlivade markeringar

När långlivade markeringar är aktiverade, så blir inte markerad text avmarkerad när tecken skrivs in eller markören flyttas. Det här betyder att du kan flytta markören från den markerade texten, och skriva in ny text.

Långlivade markeringar är normalt inte aktiverade.

Långlivade markeringar kan aktiveras på sidan Markör och markering i inställningsdialogrutan.

Varning

Om både långlivade markeringar och skriv över-markering är aktiverade, så ersätts markeringen och avmarkeras om ny text skrivs in eller klistras in, då textmarkören är inne i markeringen.

Kopiera och klistra in text

Kopiera och klistra in text

För att kopiera text, markera den och använd menyalternativet RedigeraKopiera. Dessutom, vid markering av text med musen kopieras den markerade texten till X-markeringen.

För att klistra in text som för närvarande finns på klippbordet, använd menyalternativet RedigeraKlistra in.

Dessutom, så kan text som markeras med musen klistras in genom att klicka med musens mittknapp på önskad plats.

Tips

Om du använder KDE-skrivbordet, kan du hämta text som tidigare kopierats från vilket program som helst med Klipper-ikonen i systembrickan.

Söka och ersätta text

Söka och ersätta text

Sök- och ersättningsrader

KatePart har en inkrementell sökrad och en avancerad sök- och ersättningsrad, som erbjuder möjlighet att skriva in en ersättningssträng tillsammans med några extra alternativ.

Raderna erbjuder följande gemensamma alternativ:

Sök

Här skriver du in söksträngen. Tolkningen av strängen beror på några av alternativen som beskrivs nedan.

Matcha skiftläge

Om aktiverad, begränsas sökningen till värden som motsvarar skiftläget (stora eller små bokstäver) för varje tecken i sökbegreppet.

Den avancerade sök- och ersättningsraden erbjuder några ytterligare alternativ:

Vanlig text

Matcha bokstavligen en förekomst av söksträngen.

Hela ord

Om markerad, så fås bara en träff om det finns en ordgräns på båda sidor om söksträngen, i betydelsen inte en bokstav eller siffra: antingen ett annat synligt tecken, eller ett radslut.

Escape-sekvenser

Om markerad, aktiveras menyalternativet Lägg till längst ner i den sammanhangsberoende menyn i textrutorna, och låter dig lägga till escape-sekvenser till sökbegreppet från en fördefinierad lista.

Reguljärt uttryck

Om markerad, tolkas söksträngen som ett reguljärt uttryck. Menyalternativet Lägg till längst ner i den sammanhangsberoende menyn i textrutorna aktiveras och låter dig lägga till reguljära uttryck till sökbegreppet från en fördefinierad lista.

Se Reguljära uttryck för mer om detta.

Sök bara i markeringen

Om markerad, utförs sökning och ersättning bara inom den markerade texten.

Sök alla

Genom att klicka på den här knappen markeras alla träffar i dokumentet, och antal träffar visas i en liten meddelanderuta.

Söka efter text

Starta den inkrementella sökraden med Ctrl+F eller med menyalternativet RedigeraSök..., för att söka efter text.

Det här öppnar den inkrementella sökraden längst ner i editorfönstret. Till vänster på raden finns en knapp med en ikon för att stänga raden, följt av en liten textruta för att skriva in sökbegrepp."

När du börjar skriva in tecknen i ditt sökbegrepp, börjar sökningen omedelbart. Om det finns en träff i texten markeras den och bakgrundsfärgen i inmatningsfältet ändras till ljusgrönt. Om sökbegreppet inte motsvarar någon sträng i texten, indikeras det av en ljusröd bakgrundsfärg i inmatningsfältet.

Använd knappen eller för att gå till nästa eller föregående träff i dokumentet.

Träffar markeras även när sökraden har stängts. För att ta bort markeringarna, tryck på tangenten Esc.

Du kan välja om sökningen ska vara skiftlägeskänslig. Genom att välja begränsas träffar till värden som motsvarar skiftläget (stora eller små bokstäver) för varje tecken i sökbegreppet.

Klicka på knappen till höger på den inkrementella sökraden för att byta till den avancerade sök- och ersättningsraden.

För att upprepa den senaste sökningen, om någon, utan att visa den inkrementella sökraden, använd RedigeraSök igen (F3) eller RedigeraSök föregående (Skift+F3).

Ersätta text

Starta den avancerade sök- och ersättningsraden med kommandot RedigeraErsätt, eller genvägen Ctrl+R, för att ersätta text.

På radens övre vänstra sida finns en knapp med en ikon för att stänga raden, följt av en liten textruta för att skriva in sökbegrepp.

Du kan styra sökläget genom att välja Enkel text, Hela ord, Escape-sekvenser eller Reguljärt uttryck i kombinationsrutan.

Om Escape-sekvenser eller Reguljärt uttryck är markerat, aktiveras menyalternativet Lägg till... längst ner i den sammanhangsberoende menyn i textrutorna och låter dig lägga till reguljära uttryckstecken i sökbegreppet eller ersätta mönster från fördefinierade listor.

Använd knappen eller för att gå till nästa eller föregående träff i dokumentet.

Skriv in texten att ersätta med i textrutan med beteckningen Ersätt och klicka på knappen Ersätt för att bara ersätta markerad text eller Ersätt alla för att ersätta söktexten i hela dokumentet.

Du kan ändra sök- och ersättningsbeteendet genom att välja de olika alternativen längst ner på raden. Genom att välja begränsas träffar till poster som matchar skiftläget (stora eller små bokstäver) för varje tecken i sökbegreppet. söker och ersätter bara inom nuvarande markering. Knappen Sök alla markerar alla träffar i dokumentet och visar antal hittade träffar i ett litet meddelandefönster.

Klicka på knappen till höger på den avancerade sök- och ersättningsraden för att byta till den inkrementella sökraden.

Tips

Om du använder ett reguljärt uttryck för att hitta texten som ska ersättas, kan du använda bakåtreferenser för att återanvända text som sparats i parentetiserade delmönster i uttrycket.

Se Reguljära uttryck för mer information om dem.

Tips

Du kan utföra find (sök), replace (ersätt) och ifind (inkrementell sökning) från kommandoraden.

Att använda bokmärken

Att använda bokmärken

Bokmärkesfunktionen låter dig markera vissa rader, för att lätt kunna hitta dem igen.

Du kan lägga till och ta bort ett bokmärke för en rad på två olika sätt:

  • Flytta infogningsmarkören till raden, och välj kommandot BokmärkenNytt bokmärke (Ctrl+B).

  • Klicka på ikonkanten intill raden.

Bokmärken är tillgängliga i menyn Bokmärken. Varje individuellt bokmärke är tillgängligt som ett menyalternativ, namngivet med radnumret för raden med bokmärket, och de första tecknen i texten på raden. För att flytta infogningsmarkören till början av en rad med ett bokmärke, öppna menyn och välj bokmärket.

För att snabbt gå mellan bokmärken eller till nästa/föregående bokmärke, använd kommandona BokmärkenNästa (Alt+Page Down) eller BokmärkenFöregående (Alt+Page Up).

Automatisk radbrytning av text

Automatisk radbrytning av text

Den här funktionen låter dig formatera texten på ett mycket enkelt sätt: texten radbryts, så att inga rader överskrider ett maximalt antal tecken per rad, om det inte finns en längre sträng av andra tecken än blanktecken.

För att aktivera/inaktivera det, markera/avmarkera kryssrutan Statisk radbrytningredigeringssidan i inställningsdialogrutan.

För att ställa in maximal radlängd (maximalt antal tecken per rad), använd alternativet Bryt rader vidredigeringssidan i inställningsdialogrutan.

Om aktiverad, så har det fäljande effekter:

  • Medan du skriver, lägger editorn automatiskt till en hård nyrad efter det sista blanktecknet på en position innan den maximala radlängden nås.

  • När dokumentet laddas, radbryter editorn texten på ett liknande sätt, så att inga rader är längre än den maximala radlängden, om de innehåller några blanktecken som tillåter detta.

Notera

Det finns för närvarande inget sätt att ställa in radbrytning för typer av dokument, eller aktivera och inaktivera funktionen på dokumentnivå. Det här kommer att rättas i en framtida version av KatePart.

Att använda automatisk indentering

Att använda automatisk indentering

KateParts editorkomponent stöder en mängd olika automatiska indenteringslägen, skapade för olika textformat. Du kan välja bland tillgängliga lägen med menyn VerktygIndentering. Modulerna för automatisk indentering tillhandahåller också funktionen VerktygJustera som beräknar indenteringen för markeringen eller nuvarande rad igen. Alltså kan du indentera om hela dokumentet genom att markera all text och utföra åtgärden.

Alla indenteringslägen använder inställningar som hör ihop med indentering i det aktiva dokumentet.

Tips

Du kan ställa in alla möjliga inställningsvariabler, inklusive de som hör ihop med indentering, genom att använda dokumentvariabler och filtyper.

Tillgängliga lägen för automatisk indentering

Inget

Väljes det här läget stängs automatisk indentering av helt och hållet.

Normal

Den här indenteringen behåller helt enkelt en indentering som liknar den föregående raden med något innehåll som inte är blanktecken. Du kan kombinera den med alternativen indentera och avindentera för att indentera efter din egen smak.

C-stil

Indentering för C och liknande språk, såsom C++, C#, Java, Javaskript och så vidare. Indenteringen fungerar inte med skriptspråk som Perl eller PHP.

Haskell

Indentering för det funktionella programspråket Haskell.

Lilypond

Indentering för notskriftsspråket Lilypond för musik.

Lisp

Indentering särskilt för skriptspråket Lisp och dialekter av Lisp.

Python

Indentering särskilt för skriptspråket Python.

XML-stil

Indentering särskilt för XML-liknande språk.

Indikering av radändringar

Indikering av radändringar

KatePart indikering av radändringar låter dig enkelt se vad du nyligen har ändrat i en fil. Sparade ändringar anges av en grön rad till vänster om ett dokument, medan osparade ändringar anges av en orange rad.

Indikering av radändringar under användning.

Färgerna som används kan ändras i inställningsrutan Teckensnitt och färger, eller inaktivera funktionen helt under fliken Kanter i inställningsrutan Utseende.

Rullningslistens miniavbildning

Rullningslistens miniavbildning

Rullningslistens miniavbildning i KatePart visar en förhandsgranskning av dokument på rullningslistens plats. Den del av dokumentet som för närvarande är synlig markeras.

Rullningslistens miniavbildning visar en förhandsgranskning av Kates källkod.

Miniavbildningen kan tillfälligt aktiveras eller inaktiveras genom att använda VisaVisa rullningslistens miniavbildning eller permanent i avdelningen Utseende i KateParts inställningar.

Kapitel 4. Menyalternativen

Kapitel 4. Menyalternativen

Menyn Arkiv

ArkivNy (Ctrl+N)

Det här startar ett nytt dokument i ett nytt och oberoende editorfönster.

ArkivÖppna... (Ctrl+O)

Visar den vanliga dialogrutan Öppna fil i KDE. Använd filvyn för att välja filen du vill öppna, och klicka på Öppna för att öppna den.

ArkivÖppna senaste

Det här är en genväg för att öppna nyligen sparade dokument. Genom att klicka på det här alternativet öppnas en lista vid sidan om menyn med flera av de senast sparade filerna. Genom att klicka på en specifik fil öppnas den i KatePart, om filen fortfarande finns på samma plats.

ArkivSpara (Ctrl+S)

Det här sparar det nuvarande dokumentet. Om dokumentet redan har sparats skriver det här över den tidigare sparade filen utan att fråga efter användarens samtycke. Om det här är första gången ett nytt dokument sparas, visas dialogrutan Spara som (beskrivs nedan).

ArkivSpara som... (Ctrl+Skift+S)

Det här låter ett dokument sparas med ett nytt filnamn. Det här görs med fildialogrutan som beskrivs ovan under avsnittet Öppna i den här hjälpfilen.

ArkivSpara som med kodning

Spara ett dokumentet med ett nytt filnamn i en annan kodning.

ArkivSpara kopia som

Spara en kopia av dokumentet med ett nytt filnamn och fortsätt redigera originaldokumentet.

ArkivÅterställ (F5)

Laddar den aktiva filen igen. Kommandot är användbart om ett annat program eller en annan process har ändrat filen medan den varit öppen i KatePart.

ArkivSkriv ut... (Ctrl+P)

Öppnar en enkel utskriftsdialog, som låter användaren ange vad, vart och hur utskrift ska ske.

ArkivExportera som HTML

Spara dokumentet som för närvarande är öppet som en HTML-fil, som kommer att formateras med användning av de nuvarande inställningarna av syntaxfärgläggning och färgschema.

ArkivStäng (Ctrl+W)

Stäng aktuell fil med det här kommandot. Om du har gjort osparade ändringar, kommer du att få en fråga om du vill spara ändringarna innan KatePart stänger filen.

ArkivAvsluta (Ctrl+Q)

Det här stänger editorfönstret. Om du har mer än en instans av KatePart startad, genom menyalternativen Ny eller Nytt fönster, så stängs inte de instanserna.

Menyn Redigera

Menyn Redigera

RedigeraÅngra (Ctrl+Z)

Ångra det senaste redigeringskommandot (inmatning, kopiering, utklippning etc.)

Notera

Detta kan ångra flera redigeringskommandon av samma sort, som att skriva in tecken.

RedigeraGör om (Ctrl+Skift+Z)

Det här återställer den senaste ändringen (om det finns någon) som gjorts med Ångra.

RedigeraKlipp ut (Ctrl+X)

Det här kommandot tar bort den nuvarande markerade texten och placerar den på klippbordet. Klippbordet fungerar osynligt och erbjuder ett sätt att överföra data mellan program.

RedigeraKopiera (Ctrl+C)

Det här kopierar den nuvarande markerade texten till klippbordet så att den kan klistras in någon annanstans. Klippbordet fungerar osynligt och erbjuder ett sätt att överföra data mellan program.

RedigeraKlistra in (Ctrl+V)

Det här infogar innehållet på klippbordet vid markörens position. Klippbordet fungerar osynligt och erbjuder ett sätt att överföra data mellan program.

Notera

Om skriv över markering är aktiverad, så skriver den inklistrade texten över markerad text, om det finns någon.

ArkivKlippbordshistorik

Undermenyn visar början av de textdelar som senast kopierats till klippbordet. Markera ett objekt i menyn för att klistra in det i filen som för närvarande är öppen.

RedigeraKopiera som HTML

Kopiera markeringen som HTML, formaterad med användning av de nuvarande inställningarna av syntaxfärgläggning och färgschema.

RedigeraMarkera allt (Ctrl+A)

Det här väljer hela dokumentet. Det här kan vara mycket användbart för att kopiera hela filen till ett annat program.

RedigeraAvmarkera (Ctrl+Skift+A)

Avmarkerar den markerade texten i editorn, om det finns någon.

RedigeraBlockmarkeringsläge (Ctrl+Skift+B)

Växlar markeringsläge. När markeringsläget är BLOCK, innehåller statusraden strängen [BLOCK] och du kan göra vertikala markeringar, t.ex. markera kolumn 5 till 10 på rad 9 till 15.

RedigeraInmatningslägen

Byt mellan normalt och Vi-liknande redigeringsläge. Läget stöder de oftast använda kommandona och förflyttningarna från vim:s normala och visuella läge, och har en valfri Vi-statusrad. Statusraden visar kommandon medan de matas in, utmatning från kommandon och nuvarande läge. Lägets beteende kan anpassas under fliken Vi-inmatningsläge på sidan Redigering i KateParts inställningsdialogruta.

RedigeraErsättningsläge (Ins)

Växlar mellan infoga och skriv över. När läget är INFOGA, infogar du tecken där markören befinner sig. När läget är ERSÄTT ersätter inskrivna tecken de nuvarande tecknen om markören är placerad före några tecken. Statusraden visar aktuell status av skriv över, antingen INFOGA eller ERSÄTT.

RedigeraSök... (Ctrl+F)

Det här öppnar den inkrementella sökraden längst ner i editorfönstret. Till vänster på raden finns en knapp med en ikon för att stänga den, följt av en liten textruta för att skriva in sökbegrepp.

När du börjar skriva in tecknen i ditt sökbegrepp, börjar sökningen omedelbart. Om det finns en träff i texten markeras den och bakgrundsfärgen i inmatningsfältet ändras till ljusgrönt. Om sökbegreppet inte motsvarar någon sträng i texten, indikeras det av en ljusröd bakgrundsfärg i inmatningsfältet.

Använd knapparna eller för att gå till nästa eller föregående träff i dokumentet.

Träffar markeras även när sökraden har stängts. För att ta bort markeringarna, tryck på tangenten Esc.

Du kan välja om sökningen ska vara skiftlägeskänslig. Genom att välja begränsas träffar till värden som motsvarar skiftläget (stora eller små bokstäver) för varje tecken i sökbegreppet.

Klicka på knappen med den gröna pilikonen till höger på den inkrementella sökraden för att byta till den avancerade sök- och ersättningsraden.

RedigeraSök varianterSök nästa (F3)

Det här upprepar den senaste sökningen, om det finns någon, utan att anropa den inkrementella sökraden, och söker framåt igenom dokumentet med början på markörens position.

RedigeraSök varianterSök föregående (Skift+F3)

Det här upprepar den senaste sökningen, om det finns någon, utan att anropa den inkrementella sökraden, och söker bakåt istället för framåt igenom dokumentet.

RedigeraSök varianterSök markering (Ctrl+H)

Slår upp nästa förekomst av markerad text.

RedigeraSök varianterSök markering bakåt (Ctrl+Skift+H)

Slår upp föregående förekomst av markerad text.

RedigeraErsätt... (Ctrl+R)

Det här kommandot öppnar den avancerade sök- och ersättningsraden. Längst upp till vänster på raden finns en knapp med en ikon för att stänga raden, följt av en liten textruta för att skriva in sökbegreppet.

Sökläget kan styras genom att välja Enkel text, Hela ord, Escape-sekvenser eller Reguljärt uttryck i kombinationsrutan.

Om Escape-sekvenser eller Reguljärt uttryck väljes, aktiveras knappen Lägg till... längst ner i textrutornas sammanhangsberoende meny, som låter dig lägga till escape-sekvenser eller reguljära uttryck i sök- eller ersättningsbegrepp från fördefinierade listor.

Använd knapparna eller för att gå till nästa eller föregående träff i dokumentet.

Skriv in texten att ersätta med i textrutan med beteckningen Ersätt och klicka på knappen Ersätt för att bara ersätta markerad text eller Ersätt alla för att ersätta söktexten i hela dokumentet.

Du kan ändra sök- och ersättningsbeteendet genom att välja olika alternativ längst ner på raden. Genom att välja begränsas träffar till poster som matchar skiftläget (stora eller små bokstäver) för varje tecken i sökbegreppet. söker och ersätter bara inom nuvarande markering. Knappen Sök alla markerar alla träffar i dokumentet och visar antal hittade träffar i ett litet meddelandefönster.

Klicka på knappen med den gröna pilikonen till höger på den avancerade sök- och ersättningsraden för att byta till den inkrementella sökraden.

RedigeraGå tillGå till motsvarande parentes (Ctrl+6)

Flytta markören till samhörande inledande eller avslutande parentes.

RedigeraGå tillMarkera till matchande parentes (Ctrl+Skift+6)

Markerar texten mellan samhörande inledande och avslutande parenteser.

RedigeraGå tillGå till föregående ändrade rad

Rader som ändrades efter filen öppnades kallas ändrade rader. Det här alternativet går till föregående ändrade rad.

RedigeraGå tillGå till nästa ändrade rad

Rader som ändrades efter filen öppnades kallas ändrade rader. Det här alternativet går till nästa ändrade rad.

RedigeraGå tillGå till rad... (Ctrl+G)

Det här öppnar gå till raden längst ner i fönstret, som används för att få markören att gå till en viss rad (som anges med dess nummer) i dokumentet. Radnumret kan skrivas in direkt i textrutan eller anges grafiskt genom att klicka på uppåt- eller nedåtpilarna vid sidan av textrutan. Den lilla uppåtpilen ökar radnumret och nedåtpilen minskar det. Stäng raden med ett klick på knappen med ikonen till vänster på raden.

Menyn Visa

Menyn Visa

VisaNytt fönster

Skapa ett annat fönster som innehåller det aktuella dokumentet. Alla ändringar av dokumentet i ett fönster reflekteras i det andra fönstret och tvärtom.

VisaByt till kommandorad (F7)

Visar KatePart-kommandorad längst ner i fönstret. Skriv help på kommandoraden för att få hjälp och help list för att få en lista med kommandon. Se Editorkomponentens kommandorad för mer information om kommandoraden.

VisaÖka teckenstorlek (Ctrl++)

Det här ökar teckenstorleken som används vid visning.

VisaMinska teckenstorlek (Ctrl+-)

Det här minskar teckenstorleken som används vid visning.

VisaSchema

Den här menyn visar tillgängliga färgscheman. Du kan ändra schema för den nuvarande vyn här. För att ändra förvalt schema måste du använda sidan Teckensnitt och färger i inställningsdialogrutan.

VisaRadbrytDynamisk radbrytning (F10)

Ändrar dynamisk radbrytning i den nuvarande vyn. Dynamisk ordbrytning gör att all text i en vy blir synlig utan att behöva rulla horisontellt genom att återge en verklig rad på fler synliga rader när det behövs.

VisaRadbrytDynamiska radbrytningsmarkörer

Välj när och hur dynamiska radbrytningsmarkörer ska visas. Det är bara tillgängligt om alternativet Dynamisk radbrytning är markerat.

VisaRadbrytVisa statisk radbrytningsmarkör

Om det här alternativet är markerat, ritas en vertikal linje i radbrytningskolumnen som definieras i InställningarAnpassa editor... under fliken Redigering. Observera att radbrytningsmarkören bara ritas om du använder ett teckensnitt med fast breddsteg.

VisaKanterVisa ikonkant (F6)

Det här är ett alternativ som växlar. Om det aktiveras, visas ikonkanten vid vänsterkanten i den aktiva editorn, och vice versa. Ikonkanten anger position för markerade rader i editorn.

VisaKanterVisa radnummer (F11)

Det här är ett alternativ som växlar. Om det aktiveras, visas en ruta med radnummer längs vänsterkanten på den aktiva editorn, och vice versa.

VisaKanterVisa rullningslistens miniavbildning

Om alternativet är markerat visar den aktuella vyn markeringar på den vertikala rullningslistan. Markeringarna är ekvivalenta med markeringarna på ikonkanten.

VisaKanterVisa rullningslistens miniavbildning

Ersätter rullningslisten med en visualisering av det aktuella dokumentet. För mer information om rullningslistens miniavbildning, se ”Rullningslistens miniavbildning”.

VisaKodvikning

Dessa alternativ rör kodvikning:

Visa vikmarkörer (F9)

Ändrar visning av vikmarkörer till vänster om vyn.

Fäll ihop aktuell nod

Fäll ihop området som innehåller markören.

Expandera aktuell nod

Expandera området som innehåller markören.

Fäll ihop toppnivånoder (Ctrl+Skift+-)

Fäll ihop alla toppnivåområden i dokumentet. Klicka på triangeln som pekar åt höger för att expandera alla toppnivåområden.

Expandera toppnivånoder (Ctrl+Skift++)

Expandera alla toppnivåområden i dokumentet.

Visa ej utskrivningsbara mellanslag

Visa eller dölj omgivande ruta omkring ej utskrivningsbara mellanslag.

Visa antal ord

Visar antal ord och tecken i dokumentet och i aktuell markering.

Menyn Bokmärken

Menyn Bokmärken

Under alternativen som beskrivs här, kommer det att finnas ett alternativ för varje bokmärke i det aktiva dokumentet. Texten är några få ord i början på den markerade raden. Välj ett alternativ för att flytta markören till början på den raden. Editorn panorerar om det behövs, för att göra raden synlig.

BokmärkenNytt bokmärke (Ctrl+B)

Lägger till eller tar bort ett bokmärke på den nuvarande raden i det aktiva dokumentet (om det redan finns, tas det bort, annars läggs det till).

BokmärkenRensa alla bokmärken

Det här kommandot tar bort alla bokmärken från dokumentet samt listan på bokmärken som läggs till längst ner i det här menyalternativet.

BokmärkenFöregående (Alt+Page Up)

Det här flyttar markören till början av den första raden ovan med ett bokmärke. Menyalternativets text innehåller radnummer och den inledande texten på raden. Alternativet är bara tillgängligt när det finns ett bokmärke på en rad ovanför markören.

BokmärkenNästa (Alt+Page Down)

Det här flyttar markören till början av nästa rad med ett bokmärke. Menyalternativets text innehåller radnummer och den inledande texten på raden. Alternativet är bara tillgängligt när det finns ett bokmärke på en rad nedanför markören.

Menyn Verktyg

Menyn Verktyg

VerktygSkrivskyddat läge

Ställer in aktuellt dokument till skrivskyddat läge. Det förhindrar tillägg av all text och alla ändringar av dokumentets formatering.

VerktygLäge

Välj filtypschema som du föredrar för det aktiva dokumentet. Det skriver över det globala filtypsläget som ställts in i InställningarAnpassa editor... under fliken Filtyper, men bara för det aktuella dokumentet.

VerktygFärgläggning

Välj färgläggningsschema som du föredrar för det aktiva dokumentet. Det skriver över det globala färgläggningsläget som ställts in med InställningarAnpassa editor..., men bara för det aktuella dokumentet.

VerktygIndentering

Välj indenteringsstil som du vill ha för det aktiva dokumentet. Det skriver över det globala indenteringsläget som ställts in i InställningarAnpassa editor..., men bara för det aktuella dokumentet.

VerktygKodning

Du kan skriva över den förvalda kodningen inställd i InställningarAnpassa editor... på sidan Öppna/spara för att ange en annan kodning för det aktuella dokumentet. Kodningen du ställer in här är bara giltig för det aktuella dokumentet.

VerktygRadslut

Välj radslutsläget som du föredrar för det aktiva dokumentet. Det skriver över det globala radslutsläget som ställts in med InställningarAnpassa editor..., men bara för det aktuella dokumentet.

VerktygLägg till byte-ordningsmarkering (BOM)

Genom att markera åtgärden kan du explicit lägga till en byte-ordningsmarkering för dokument kodade med Unicode. Byte-ordningsmarkeringen (BOM) är ett Unicode-tecken som används för att ange byte-ordningen i en textfil eller ström. För mer information se Byte Order Mark.

VerktygSkript

Den här undermenyn innehåller en lista med alla skriptstyrda åtgärder. Listan kan enkelt ändras genom att skriva egna skript. På så sätt kan KatePart utökas med användardefinierade verktyg.

VerktygSkriptNavigering
VerktygSkriptNavigeringFlytta markören till föregående motsvarande indentering (Alt+Skift+Uppåtpil)

Flyttar markören till den första raden ovanför den nuvarande som är indenterad till samma nivå som den nuvarande raden.

VerktygSkriptNavigeringFlytta markören till nästa motsvarande indentering (Alt+Skift+Neråtpil)

Flyttar markören till den första raden nedanför den nuvarande som är indenterad till samma nivå som den nuvarande raden.

VerktygSkriptRedigering
VerktygSkriptRedigeringSortera markerad text

Sorterar den markerade texten eller hela dokumentet i stigande ordning.

VerktygSkriptRedigeringFlytta ner rader (Ctrl+Skift+Neråtpil)

Flytta markerade rader neråt.

VerktygSkriptRedigeringFlytta upp rader (Ctrl+Skift+Uppåtpil)

Flytta markerade rader uppåt.

VerktygSkriptRedigeringDuplicera markerade rader neråt (Ctrl+Skift+Neråtpil)

Duplicerar markerade rader neråt.

VerktygSkriptRedigeringDuplicera markerade rader uppåt (Ctrl+Skift+Uppåtpil)

Duplicera markerade rader uppåt.

VerktygSkriptRedigeringKoda markerad text till webbadress

Kodar den markerade texten så att den kan användas som en del av en frågesträng i en webbadress, och ersätter markeringen med den kodade texten.

VerktygSkriptRedigeringAvkoda markerad text från webbadress

Om en del av en frågesträng i en webbadress är markerad, avkodar detta den och ersätter markeringen med den ursprungliga obehandlade texten.

VerktygSkriptEmmet
VerktygSkriptEmmetUtöka förkortning

Konverterar den markerade texten till ett par inledande och avslutande HTML- eller XML-taggar. Om exempelvis div är markerad, ersätter alternativet det med <div></div>.

VerktygSkriptEmmetRadbryt enligt tagg

Omger den markerade texten med taggen som anges på kommandoraden.

VerktygSkriptEmmetFlytta markören till motsvarande tagg

Om markören är inne i en inledande HTML- eller XML-tagg, flyttar alternativet den till den avslutande taggen. Om markören är inne i den avslutande taggen, flyttas den istället till den inledande taggen.

VerktygSkriptEmmetMarkera HTML/XML-tagginnehåll inåt

När markören är inne i ett par av HTML- eller XML-taggar, ändrar alternativet markeringen till innehållet i dessa HTML- eller XML-taggar, utan att markera själva taggarna.

VerktygSkriptEmmetMarkera HTML/XML-tagginnehåll utåt

När markören är inne i ett par av HTML- eller XML-taggar, ändrar alternativet markeringen till innehållet i dessa HTML- eller XML-taggar, inklusive själva taggarna.

VerktygSkriptEmmetVäxla kommentar

Om den markerade delen inte är en kommentar, omger alternativet delen med HTML- eller XML-kommentarer (t.ex. <!-- markerad text -->). Om den markerade delen är en kommentar, tas kommentartaggarna istället bort.

VerktygSkriptEmmetTa bort tagg vid markören

Om markören för närvarande är inne i HTML- eller XML-tagg, tar alternativet bort hela taggen.

VerktygSkriptEmmetMinska tal med 1

Alternativet subtraherar ett från texten som för närvarande är markerad om den är ett tal. Om exempelvis 5 är markerat, blir det 4.

VerktygSkriptEmmetMinska tal med 10

Alternativet subtraherar 10 från texten som för närvarande är markerad om den är ett tal. Om exempelvis 15 är markerat, blir det 5.

VerktygSkriptEmmetMinska tal med 0,1

Alternativet subtraherar 0,1 från texten som för närvarande är markerad om den är ett tal. Om exempelvis 4,5 är markerat, blir det 4,4.

VerktygSkriptEmmetÖka tal med 1

Alternativet adderar ett till texten som för närvarande är markerad om den är ett tal. Om exempelvis 5 är markerat, blir det 6.

VerktygSkriptEmmetÖka tal med 10

Alternativet adderar 10 till texten som för närvarande är markerad om den är ett tal. Om exempelvis 5 är markerat, blir det 15.

VerktygSkriptEmmetÖka tal med 0,1

Alternativet adderar 0,1 till texten som för närvarande är markerad om den är ett tal. Om exempelvis 4,5 är markerat, blir det 4,6.

VerktygUtför kodkomplettering (Ctrl+Mellanslag)

Aktivera kodkomplettering för hand, oftast genom att använda snabbtangenten som är kopplad till åtgärden.

VerktygOrdkomplettering

Återanvänd ord nedanför (Ctrl+9) och Återanvänd ord ovanför (Ctrl+8) kompletterar texten som för närvarande är inskriven genom att söka bakåt eller framåt efter liknande ord från den nuvarande markörpositionen. Skalkomplettering visar en kompletteringsruta med poster som matchar.

VerktygStavningAutomatisk stavningskontroll (Ctrl+Skift+O)

När Automatisk stavningskontroll är aktiverad, stryks felstavad text under i dokumentet medan du skriver.

VerktygStavningStavning...

Det här aktiverar stavningskontrollprogrammet, ett program som är konstruerat för att hjälpa användaren hitta och korrigera eventuella stavfel. Genom att klicka på det här alternativet startas kontrollen och visar rättstavningsdialogrutan som kan användas för att styra förloppet. Det finns fyra inställningar i en kolumn mitt i dialogrutan med tillhörande namn till vänster. Med början längst upp är de:

Okänt ord:

Här visar stavningskontrollen ordet som för närvarande hanteras. Det här sker när kontrollen stöter på ett ord som inte finns i dess ordbok, en fil som innehåller en lista på ord med riktig stavning, som den jämför varje ord i editorn med.

Ersätt med:

Om kontrollen har några liknande ord i sin ordbok, kommer det första att visas här. Användaren kan acceptera förslaget, skriva in sin egen rättning, eller välja ett annat förslag från nästa ruta.

Språk:

Om du har installerat flera ordlistor, kan du välja vilken ordlista/språk som ska användas.

På höger sida i dialogrutan finns sex knappar som låter användaren styra stavningskontrollprocessen. De är:

Lägg till i ordlista

Genom att klicka på den här knappen läggs Okänt ord till i stavningskontrollens ordlista. Det betyder att stavningskontrollen alltid kommer att anse att ordet är rättstavat i framtiden.

Föreslå

Här kan stavningskontrollen lista ett antal möjliga ersättningar av ordet som behandlas. Genom att klicka på något av förslagen gör att ordet läggs till i rutan ovanför, Ersätt med.

Ersätt

Den här knappen låter stavningskontrollen ersätta ordet som behandlas i dokumentet med ordet i rutan Ersätt med.

Ersätt alla

Den här knappen gör att stavningskontrollen inte bara ersätter nuvarande Okänt ord: men automatiskt gör samma ersättning för alla andra förekomster av Okänt ord i dokumentet.

Ignorera

Genom att aktivera den här knappen kommer kontrollen fortsätta utan att göra några ändringar.

Ignorera alla

Den här knappen talat om för kontrollen att inte göra något med det nuvarande okända ordet och att hoppa över alla andra förekomster av samma ord.

Notera

Det här gäller bara för den nuvarande körningen av stavningskontrollen. Om kontrollen körs igen kommer den att stanna på samma ord.

Ytterligare tre knappar är placerade horisontellt längs dialogrutan för stavningskontroll. De är:

Hjälp

Det här startar KDE:s hjälpsystem med hjälpsidan för den här dialogrutan.

Slutförd

Den här knappen avslutar stavningskontrollförloppet, och återgår till dokumentet.

Avbryt

Den här knappen avbryter stavningskontrollen, alla ändringar återställs och du återgår till dokumentet.

VerktygStavningStavning (från markör)...

Det här aktiverar programmet för stavningskontroll, men det startar där markören finns istället för från början i dokumentet.

VerktygStavningStavningskontroll av markering...

Stavningskontrollerar den aktuella markeringen.

VerktygStavningByt ordlista

Visar en kombinationsruta med alla tillgängliga ordlistor för stavningskontroll längst ner i editorns fönster. Det gör det möjligt att enkelt byta ordlista för stavningskontroll, t.ex. för automatisk stavningskontroll av text på andra språk.

VerktygRensa indentering

Det här rensar indenteringen för nuvarande markering eller för raden där markören för närvarande befinner sig. Att rensa indenteringen försäkrar dig om att den markerade texten följer indenteringsläget du valt.

VerktygJustera

Gör att nuvarande rad eller markerade rader justeras om med indenteringsläget och indenteringsinställningarna i dokumentet.

VerktygKommentera (Ctrl+D)

Det här lägger till ett blanktecken i början på raden där textmarkören befinner sig eller till början av alla markerade rader.

VerktygAvkommentera (Ctrl+Skift+D)

Det här tar bort ett blanktecken (om det finns något) från början på raden där textmarkören befinner sig eller från början av alla markerade rader.

VerktygStora bokstäver (Ctrl+U)

Ändra den markerade texten eller bokstaven efter markören till stora bokstäver.

VerktygSmå bokstäver (Ctrl+Skift+U)

Ändra den markerade texten eller bokstaven efter markören till små bokstäver.

VerktygInledande stor bokstav (Ctrl+Alt+U)

Ändra den inledande bokstaven för orden i den markerade texten eller i aktuellt ord till stor bokstav.

VerktygKombinera rader (Ctrl+J)

Kombinerar markerade rader, eller den nuvarande raden och raden under den med ett blanktecken som avskiljare. Inledande eller efterföljande blanktecken tas bort för kombinerade rader i ändarna som påverkas.

VerktygBryt rader mellan ord i dokument

Tillämpa statisk radbrytning i hela dokumentet. Det betyder att en ny textrad automatiskt börjar när den aktuella raden överskrider längden som anges av alternativet Bryt rader vid under fliken Redigering i InställningarAnpassa editor...

Menyerna Inställningar och Hjälp

Menyerna Inställningar och Hjälp

KatePart har de vanliga menyalternativen i KDE, Inställningar och Hjälp. För mer information läs avsnitten om Menyn Inställningar och Menyn Hjälp i KDE:s grunder.

Kapitel 5. Avancerade redigeringsverktyg

Kapitel 5. Avancerade redigeringsverktyg

Anders Lund

Dominik Haumann

Översättare: Johan Thelmén

Kommentera/avkommentera

Kommandona Kommentera och Avkommentera, som är tillgängliga i menyn Verktyg, låter dig lägga till eller ta bort kommentarmarkeringar i den markerade texten, eller den nuvarande raden, om ingen text är markerad, om kommentarer stöds av textformatet som du redigerar.

Reglerna för hur kommentarer ser ut definieras av syntaxdefinitionerna, så om syntaxfärgläggning inte används, så är det inte möjligt att kommentera eller avkommentera.

Vissa format definierar kommentarmarkeringar för enstaka rader, vissa för flera rader och vissa både ock. Om kommentarmarkeringar för flera rader inte är tillgängliga, så är det inte möjligt att kommentera en markering där den sista raden inte ingår helt och hållet.

Om det finns en kommentarmarkering för enstaka rader, så föredras kommentarer för enstaka rader när det är möjligt, eftersom detta hjälper till att undvika problem med nästlade kommentarer.

När kommentarmarkeringar tas bort, så ska inte någon okommenterad text markeras. När kommentarmarkeringar för flera rader tas bort från en markering, så ignoreras eventuella blanktecken utanför kommentarmarkeringen.

För att lägga till kommentarmarkeringar, använd menyalternativet VerktygKommentera eller motsvarande snabbtangent, som normalt är Ctrl+D.

För att ta bort kommentarmarkeringar, använd menyalternativet VerktygAvkommentera eller motsvarande snabbtangent, som normalt är Ctrl+Skift+D.

Editorkomponentens kommandorad

Editorkomponentens kommandorad

KateParts editorkomponent har en intern kommandorad, som låter dig utföra vissa åtgärder från ett minimalt grafiskt gränssnitt. Kommandoraden är ett textinmatningsfält längst ner i redigeringsområdet. För att visa den, välj VisaByt till kommandorad eller använd snabbtangenten (normalt F7). Editorn tillhandahåller en uppsättning kommandon som är dokumenterade nedan, och ytterligare kommandon kan tillhandahållas av insticksprogram.

Skriv in kommandot och tryck på returtangenten för att utföra det. Kommandoraden anger om kommandot lyckades och visar kanske ett meddelande. Om du kom till kommandoraden genom att trycka på F7 döljs den automatiskt efter några sekunder. För att rensa meddelandet och skriva in ett nytt kommando, tryck på F7 igen.

Kommandoraden har ett inbyggt hjälpsystem, skriv in kommandot help för att komma igång. För att se en lista med alla tillgängliga kommandon, skriv in help list. För att visa hjälp om ett visst kommando, skriv help kommando.

Kommandoraden har en inbyggd historik, så att du kan återanvända kommandon som redan skrivits in. För att navigera i historiken, använd tangenterna Uppåtpil och Neråtpil. När historikkommandon visas är kommandots argument markerade, vilket låter dig enkelt skriva över argumenten.

Vanliga kommandon på kommandoraden

Argumenttyper

BOOLESK

Denna används med kommandon som sätter på eller stänger av någonting. Möjliga värden är on (på), off (av), true (sant), false (falskt), 1 eller 0.

HELTAL

Ett heltal.

STRÄNG

En sträng, omgiven av enkla citationstecken (') eller dubbla citationstecken (") när den innehåller mellanslag.

Kommandon för att anpassa editorn

Dessa kommandon tillhandahålls av editorkomponenten och låter dig bara anpassa det aktiva dokumentet och vyn. Det är praktiskt om du vill använda en inställning som skiljer sig från den förvalda inställningen, till exempel för indentering.

set-tab-width {HELTAL bredd}

Ställer in tabulatorbredden till talet bredd.

set-indent-width {HELTAL bredd}

Ställer in indenteringsbredden till talet bredd. Används bara om du indenterar med mellanslag.

set-word-wrap-column {HELTAL bredd}

Ställer in radbredden för hård radbrytning till bredd. Detta används om du använder automatisk radbrytning för din text.

set-icon-border {BOOLESK aktivera}

Ställer in synligheten hos ikonkanten.

set-folding-markers {BOOLESK aktivera}

Ställer in synligheten hos vikmarkörrutan.

set-line-numbers {BOOLESK aktivera}

Ställer in synligheten hos radnummerrutan.

set-replace-tabs {BOOLESK aktivera}

Om aktiverad, ersätts tabulatortecken med mellanslag medan du skriver.

set-remove-trailing-space {BOOLESK aktivera}

Om aktiverad, tas avslutande blanktecken bort så fort markören lämnar en rad.

set-show-tabs {BOOLESK aktivera}

Om aktiverad, synliggörs tabulatortecken och avslutande blanktecken med en liten punkt.

set-show-indent {BOOLESK aktivera}

Om aktiverad, synliggörs indentering av en vertikal punktlinje.

set-indent-spaces {BOOLESK aktivera}

Om aktiverad, indenterar editorn med indenteringsbredd mellanslag för varje indenteringsnivå, istället för ett tabulatortecken.

set-mixed-indent {BOOLESK aktivera}

Om aktiverad, använder KatePart en blandning av tabulatortecken och mellanslag för indentering. Varje indenteringsnivå har bredden indenteringsbredd, och fler indenteringsnivåer optimeras så att så många tabulatortecken som möjligt används.

När det utförs aktiverar kommandot dessutom indentering med mellanslag, och om indenteringsbredden inte anges ställs den in till halva tabulatorbredden för dokumentet.

set-word-wrap {BOOLESK aktivera}

Aktiverar dynamisk radbrytning enligt aktivera.

set-replace-tabs-save {BOOLESK aktivera }

Om aktiverad, ersätts tabulatortecken med blanktecken så fort dokumentet sparas.

set-remove-trailing-space-save {BOOLESK aktivera}

Om aktiverad, tas avslutande mellanslag bort från alla rader så fort dokumentet sparas.

set-indent-mode {STRÄNG namn}

Ställer in automatiskt indenteringsläge till namn. Om namn inte känns igen, ställs läget in till 'none'. Giltiga lägen är 'none', 'normal', 'cstyle', 'haskell', 'lilypond', 'lisp', 'python', 'ruby' och 'xml'.

set-auto-ident {BOOLESK skript}

Aktivera eller inaktivera automatisk indentering.

set-highlight {STRÄNG färgläggning}

Ställer in dokumentets syntaxfärgläggningssystem. Argumentet måste vara ett giltigt färgläggningsnamn, som visas i menyn VerktygFärgläggning. Kommandot tillhandahåller en lista för automatisk komplettering av dess argument.

reload-scripts

Läs in alla Javascript-skript som används av Kate, inklusive indenterare och kommandoradskript.

set-mode {STRÄNG läge}

Välj filtypschema för aktuellt dokument.

nn[oremap] {STRÄNG original} {STRÄNG avbildad}

Avbilda tangentsekvensen original till avbildad.

Kommandon för redigering

Dessa kommandon ändrar aktuellt dokument.

indent

Indenterar de markerade raderna eller den nuvarande raden.

unindent

Avindenterar markerade rader eller nuvarande rad.

cleanindent

Rensar indenteringen för markerade rader eller nuvarande rad enligt dokumentets indenteringsinställningar.

comment

Infogar kommentarmarkeringar för att göra markeringen, markerade rader eller nuvarande rad en kommentar enligt textformatet som definieras av dokumentets syntaxfärgläggningsdefinition.

uncomment

Tar bort kommentarmarkeringar från markeringen, markerade rader eller nuvarande rad enligt textformatet som definieras av dokumentets syntaxfärgläggningsdefinition.

kill-line

Tar bort den nuvarande raden.

replace { STRÄNG mönster} {STRÄNG ersättning}

Ersätter text som matchar mönster med ersättning. Om du vill att mönster ska innehålla blanktecken, måste både mönster och ersättning placeras inom enkla eller dubbla citationstecken. Om argumenten inte är citerade, används det första ordet som mönster och resten som ersättning. Om ersättning är tom, tas varje förekomst av mönster bort.

Du kan anpassa kommandot genom att lägga till ett kolon följt av en eller flera bokstäver som var och en representerar en inställning, genom att ange replace:alternativ mönster ersättning. Tillgängliga alternativ är:

b

Sök bakåt.

c

Sök från markörens position.

e

Sök bara i markeringen.

r

Utför en sökning med ett reguljärt uttryck. Om det anges, kan du använda \N, där N är ett tal, för att representera hittad text i ersättningssträngen.

s

Utför skiftlägeskänslig sökning.

p

Fråga efter tillåtelse att ersätta nästa förekomst.

w

Matcha bara hela ord.

date {STRÄNG format}

Infogar en datum- och tidssträng som definieras av angivet format, eller formatet yyyy-MM-dd hh:mm:ss om inget anges. Följande översättningar görs när format tolkas:

dDagen som ett tal utan inledande nolla (1-31).
ddDagen som ett tal med inledande nolla (01-31).
dddDagens förkortade lokala namn (t.ex. 'mån', 'sön').
ddddDagens långa lokala namn (t.ex. 'måndag', 'söndag').
MMånaden som ett tal utan inledande nolla (1-12).
MMMånaden som ett tal med inledande nolla (01-12).
MMMMMånadens långa lokala namn (t.ex. 'januari', 'december').
MMMMånadens förkortade lokala namn (t.ex. 'jan', 'dec').
yyÅret som ett tal med två siffror (00-99).
yyyyÅret som ett tal med fyra siffror (1752-8000)
hTimman utan inledande nolla (0-23 eller 1-12 om FM/EM visas).
hhTimman med inledande nolla (00-23 eller 01-12 om FM/EM visas).
mMinuten utan inledande nolla (0-59).
mmMinuten med inledande nolla (00-59).
sSekunden utan inledande nolla (0-59).
ssSekunden med inledande nolla (00-59).
zMillisekunden utan inledande nolla (0-999).
zzzMillisekunden med inledande nolla (000-999).
APAnvänd FM/EM visning. AP ersätts antingen av "FM" eller "EM".
apAnvänd fm/em visning. ap ersätts antingen av "fm" eller "em".

char {STRÄNG identifierare}

Det här kommandot låter dig infoga enskilda tecken med deras numeriska kod, på decimal, oktal eller hexadecimal form. För att använda det, starta dialogrutan för redigeringskommandot och skriv char: [nummer] i inmatningsrutan, och tryck sedan på Ok.

Exempel 5.1. Exempel på användning av char

Inmatning: char:234

Utmatning: ê

Inmatning: char:0x1234

Utmatning:


s///[ig] %s///[ig]

Det här kommandot söker och ersätter på ett sätt som liknar sed, för den nuvarande raden, eller för hela filen (%s///).

I kortet, så söks texten igenom efter en text som matchar sökmönstret, det reguljära uttrycket mellan det första och andra snedstrecket, och vid en träff så ersätts texten med uttrycket mellan det andra och sista snedstrecket. Parenteser i sökmönstret skapar bakåtreferenser, det vill säga kommandot kommer ihåg vilken del av strängen som matchade inom parenteserna. Strängarna kan återanvändas i ersättningsmönstret, med referenserna \1, för första paret parenteser, \2 för det andra, och så vidare.

För att söka efter tecknen ( eller ), måste du undanta dem med ett bakstreckstecken \(\).

Om du lägger till i sist i uttrycket, blir matchningen skiftlägesokänslig. Om du lägger till g sist, ersätts alla förekomster av mönstret, annars ersätts bara den första förekomsten.

Exempel 5.2. Ersätta text på den nuvarande raden

Din vänliga kompilator stannade just, och talade om för dig att klassen minKlass som nämns på rad 3902 i din källkodsfil inte är definierad.

"Tusan också!" tänker du. Det ska förstås vara MinKlass. Du går till rad 3902, och istället för att försöka hitta ordet i texten, så startar du dialogrutan för redigeringskommandot, och skriver in s/minklass/MinKlass/i, trycker på knappen Ok, sparar filen och kompilerar – utan problem med felet borta.


Exempel 5.3. Ersätta text i hela filen

Antag att du har en fil där du nämner namnet Anna Johansson flera gånger, och någon kommer in och talar om för dig att hon precis har gift sig och bytt namn till Anna Svensson. Du vill, förstås, byta ut alla förekomster av Anna Johansson mot Anna Svensson.

Starta kommandoraden, och skriv in kommandot: %s/Anna Johansson/Anna Svensson/, tryck på returtangenten och du är klar.


Exempel 5.4. Ett mer avancerat exempel

Det här exemplet använder bakåtreferenser samt en ordklass (om du inte vet vad det är, se tillhörande dokumentation som nämns nedan).

Antag att du har följande rad:

void MyClass::DoStringOps( String      &foo, String &bar, String *p, int  &a, int &b )

Nu inser du att det inte är bra kod, och bestämmer dig för att du vill använda nyckelordet const för alla adress- parametrar, de som markeras med operatorn & framför argumentets namn. Du skulle också vilja förenkla blanktecknen, så att det bara finns ett blanktecken mellan varje ord.

Starta dialogrutan för redigeringskommandot, skriv in: s/\s+(\w+)\s+(&)/ const \1 \2/g och tryck sedan på knappen Ok. Tecknet g i slutet på raden gör att det reguljära uttrycket görs om för varje träff, så att bakåtreferenserna sparas.

Utmatning: void MinKlass::DoStringOps( const String &x, const String &y String *p, const int &a, const int &b )

Åtgärden utförd! Vad hände nu egentligen? Ja, vi letade efter blanktecken (\s+), följt av en eller flera bokstäver (\w+), följt av ytterligare blanktecken (\s+), följt av ett och-tecken, och sparade bokstäverna samt och-tecknet för att återanvända i ersättningsoperationen. Därefter ersatta vi den matchande delen av vår rad, med ett blanktecken följt av const, följt av ett blanktecken, följt av våra sparade bokstäver (\1), följt av vårt sparade och-tecken (\2)

I vissa fall var bokstäverna String, i andra int, så att använda teckenklassen \w och tecknet + visade sig vara en värdefull tillgång.


sort

Sorterar den markerade texten eller hela dokumentet.

natsort

Sorterar de markerade raderna eller hela dokumentet i naturlig ordning.

Exempel 5.5. sort mot natsort

sort(a10, a1, a2) ger resultatet a1, a10, a2

natsort(a10, a1, a2) ger resultatet a1, a2, a10


moveLinesDown

Flytta markerade rader neråt.

moveLinesUp

Flytta markerade rader uppåt.

uniq

Ta bort duplicerade rader från den markerade texten eller hela dokumentet.

rtrim

Ta bort avslutande blanktecken från den markerade texten eller hela dokumentet.

ltrim

Ta bort inledande blanktecken från den markerade texten eller hela dokumentet.

join [STRÄNG separator]

Sammanfoga markerade linjer eller hela dokumentet. Har en valfri parameter som definierar ett separatortecken, till exempel: join ','.

rmblank

Ta bort alla blanktecken från den markerade texten eller hela dokumentet.

unwrap

Ta bort radbrytning för markerad text eller hela dokumentet.

each {STRÄNG skript}

Givet en Javascript-funktion som argument, anropa den för listan med markerade rader och ersätt dem med returvärdet från anropet.

Exempel 5.6. Sammanfoga markerade linjer

each 'function(lines){return lines.join(", ")}'

Eller, kortare:

each 'lines.join(", ")'


filter {STRÄNG skript}

Givet en Javascript-funktion som argument, anropa den för listan med markerade rader och ta bort de där anropet returnerar falskt.

Exempel 5.7. Ta bort tomma linjer

filter 'function(1){return 1.length > 0;}'

Eller, kortare:

filter 'line.length > 0'


map {STRÄNG skript}

Givet en Javascript-funktion som argument, anropa den för listan med markerade rader och ersätt raden med värdet från anropet.

Exempel 5.8. Ta bort tomma linjer

map 'function(line){return line.replace(/^s+/,"");}'

Eller, kortare:

map 'line.replace(/^s+/,"")'


duplicateLinesUp

Duplicera markerade rader ovanför den nuvarande markeringen.

duplicateLinesDown

Duplicera markerade rader nedanför den nuvarande markeringen.

Kommandon för navigering

goto {HELTAL rad}

Det här kommandot går till den angivna raden.

grep {STRÄNG mönster}

Sök i dokumentet efter det reguljära uttrycket mönster. För mer information, se Appendix A, Reguljära uttryck

find {STRÄNG mönster}

Kommandot går till första förekomsten av mönster enligt inställningen. Följande förekomster kan hittas genom att använda RedigeraSök igen (normal snabbtangent är F3).

Kommandot kan anpassas genom att lägga till ett kolon följt av ett eller flera alternativ. Formatet är find:alternativ mönster. Följande alternativ stöds:

b

Sök bakåt.

c

Sök från markörens position.

e

Sök bara i markeringen.

r

Utför en sökning med ett reguljärt uttryck. Om det anges, kan du använda \N, där N är ett tal, för att representera hittad text i ersättningssträngen.

s

Utför skiftlägeskänslig sökning.

w

Matcha bara hela ord.

ifind {STRÄNG mönster}

Kommandot tillhandahåller sökning medan du skriver. Du kan ställa in beteendet eller sökningen genom att lägga till ett kolon följt av ett eller flera alternativ, på detta sätt: ifind:alternativ mönster. Tillåtna alternativ är:

b

Sök bakåt.

r

Gör en sökning med ett reguljärt uttryck.

s

Utför skiftlägeskänslig sökning.

c

Sök från markörens position.

Kommandon för grundläggande redigeringsfunktioner (dessa beror på programmet som editorkomponenten används i)

w

Spara aktuellt dokument.

wa

Spara alla dokument som för närvarande är öppna.

q

Stäng aktuellt dokument.

qa

Stäng alla öppna dokument.

wq

Spara och stäng aktuellt dokument.

wqa

Spara och stäng alla dokument som för närvarande är öppna.

x

Spara och stäng aktuellt dokument, men bara om det har ändrats.

x

Spara och stäng alla dokument som för närvarande är öppna, men bara om de har ändrats.

bp

Gå till föregående dokument i dokumentlistan.

bn

Gå till nästa dokument i dokumentlistan.

new

Öppna ett nytt dokument i en horisontellt delad vy.

vnew

Öppna ett nytt dokument i en vertikalt delad vy.

e

Läs in aktuellt dokument om det har ändrats på disk.

enew

Redigera ett nytt dokument.

print

Öppna utskriftsdialogrutan för att skriva ut det aktuella dokumentet.

Använda kodvikning

Använda kodvikning

Kodvikning låter dig dölja delar av ett dokument i editorn, vilket gör det lättare att få en överblick av stora dokument. I KatePart görs beräkningen av områden som kan fällas ihop genom att använda reglerna som anges i definitionerna av syntaxfärgläggning, och därför är det bara tillgängligt i vissa format, typiskt i programkällkod, XML-markering och liknande. De flesta definitioner av syntaxfärgläggning som stöder kodvikning låter dig också manuellt definiera områden som kan fällas ihop, typiskt genom att använda nyckelorden BEGIN och END.

För att använda kodvikningsfunktionen, aktivera vikmarkörer genom att använda menyalternativet VisaVisa vikmarkörer om de inte redan är synliga. Vikmarkörrutan till vänster på skärmen visar en grafisk vy av områden som kan fällas ihop, med triangelsymboler för att ange möjliga åtgärder för ett givet område: en triangel med spetsen neråt betyder att området är expanderat, och att klicka på den fäller ihop området så att en triangel som pekar åt höger visas istället.

Tre kommandon tillhandahålls för att hantera tillståndet hos områden som kan fällas ihop, se menydokumentationen.

De ihopfällda raderna blir ihågkomna när en fil stängs, så när filen öppnas igen är de ihopfällda delarna fortfarande ihopfällda. Det gäller också vid uppdatering.

Om du inte vill använda kodvikningsfunktionen kan du inaktivera alternativet Visa vikmarkörer (om tillgängliga) på sidan Utseende i editorns inställningar.

Kapitel 6. Utöka KatePart

Kapitel 6. Utöka KatePart

T.C. Hollingsworth

Översättare: Johan Thelmén

Inledning

Som alla avancerade editorer erbjuder KatePart en mängd sätt att utöka dess funktionalitet. Du kan skriva enkla skript för att lägga till funktionalitet med Javascript. Till sist, när du väl har utökat KatePart, är du välkommen att gå med och dela med dig av dina förbättringar med hela världen.

Arbeta med syntaxfärgläggning

Arbeta med syntaxfärgläggning

Översikt

Syntaxfärgläggning är det som gör att editorn automatiskt visar text med olika stilar/färger, beroende på strängens funktion i relation till filens syfte. Till exempel i programkällkod, så kan kontrollsatser visas i fetstil, medan datatyper och kommentarer får annorlunda färg än resten av texten. Det här ökar textens läsbarhet väsentligt, och hjälper på så sätt författaren att vara effektivare och mer produktiv.

En funktion i Perl, som visas med syntaxfärgläggning.

En funktion i Perl, som visas med syntaxfärgläggning.

Samma funktion i Perl utan syntaxfärgläggning.

Samma funktion i Perl utan syntaxfärgläggning.

Av de två exemplen, vilket är lättast att läsa?

KatePart levereras med ett flexibelt, anpassningsbart och avancerat system för att göra syntaxfärgläggning, och standarddistributionen tillhandahåller definitioner för ett brett område av programspråk, formaterings- och skriptspråk samt andra textfilformat. Dessutom kan du tillhandahålla dina egna definitioner med enkla XML-filer.

KatePart detekterar automatiskt de riktiga syntaxreglerna när du öppnar en fil, baserat på filens MIME-typ, som avgörs av dess filändelse, eller om den inte har någon, dess innehåll. Skulle du råka ut för ett dåligt val, kan du ställa in syntaxen som används för hand med menyn VerktygFärgläggning.

Stilarna och färgerna som används av varje syntaxfärgläggningsläge kan anpassas under fliken Färgläggnińgstextstilar i inställningsdialogrutan, medan MIME-typerna och filändelserna det ska användas för hanteras under fliken Lägen och filtyper.

Notera

Syntaxfärgläggning finns för att förbättra läsbarheten för riktig text, men du kan inte lita på att den validerar din text. Att markera text för syntax kan vara svårt, beroende på formatet som du använder, och i vissa fall är upphovsmännen till syntaxreglerna stolta om 98 procent av texten visas korrekt, även om du behöver en ovanlig stil för att se de felaktiga 2 procenten.

Tips

Du kan ladda ner uppdaterade eller nya definitioner av syntaxfärgläggning från KateParts webbplats genom att klicka på knappen Ladda ner färgläggningsfiler... på fliken Lägen och filtyper i inställningsdialogrutan.

KateParts syntaxfärgläggningssystem

Det här avsnittet beskriver KateParts syntaxfärgläggningsmekanism i mer detalj. Det är avsett för dig, om du vill veta mer om den, eller om du vill skapa och ändra syntaxdefinitioner.

Hur det fungerar

Så fort du öppnar en fil, är en av de första sakerna som KatePart-editorn gör att avgöra vilken syntaxdefinition som ska användas för filen. När filens text läses in, och medan du skriver i den, så analyserar syntaxfärgläggningssystemet texten enligt reglerna som definieras i syntaxdefinitionen och markerar var i den som olika sammanhang och stilar börjar och slutar.

När du skriver in text i dokumentet, så analyseras och markeras den nya texten i farten, så att om du tar bort ett tecken som markeras som början eller slutet på ett sammanhang, så ändras stilen på den omgivande texten i enlighet med detta.

Syntaxdefinitioner som används av KateParts syntaxfärgläggningssystem är XML-filer, som innehåller

  • Regler för att detektera funktionen hos text, organiserade i sammanhangsblock

  • Listor med nyckelord

  • Definitioner av stilobjekt

När texten analyseras utvärderas detekteringsreglerna i den ordning som de definierades, och om början på den nuvarande strängen matchar en regel, så används motsvarande sammanhang. Startpunkten i texten flyttas till den sista punkten där regeln matchade, och en ny genomgång av reglerna sker, med början i sammanhanget som anges av den matchande regeln.

Regler

Detekteringsreglerna är centrala för färgläggningsdetekteringssystemet. En regel är en sträng, ett tecken eller ett reguljärt uttryck som texten som ska analyseras matchas mot. Den innehåller information om vilken stil som ska användas för den delen av texten som matchar. Den kan byta arbetssammanhanget för systemet, antingen till ett sammanhang som anges explicit, eller till det föregående sammanhanget som användes av texten.

Reglerna organiseras i sammanhangsgrupper. En sammanhangsgrupp används för de huvudsakliga koncepten i formatets text, till exempel textsträngar inom citationstecken eller kommentarblock i programkällkod. Det här försäkrar att färgläggningssystemet inte behöver gå igenom alla regler när det inte är nödvändigt, och att vissa teckensekvenser i texten kan hanteras annorlunda beroende på det nuvarande sammanhanget.

Sammanhang kan skapas dynamiskt för att till exempel tillåta användning av instansspecifik data i regler.

Sammanhangsstilar och nyckelord

I vissa programspråk, hanteras heltal annorlunda än flyttal av kompilatorn (programmet som översätter källkoden till körbart binärformat), och det kan finnas tecken som har en särskild mening i en sträng med citationstecken. I sådana fall är det vettigt att visa dem på ett annat sätt än omgivningen så att de är lätta att identifiera när texten läses. Så även om de inte representerar speciella sammanhang, så kan de betraktas som sådana av syntaxfärgläggningssystemet, så att de kan markeras för att visas på ett annorlunda sätt.

En syntaxdefinition kan innehålla så många stilar som krävs för att täcka koncepten i det format den används för.

I många format finns det en lista på ord som representerar ett speciellt koncept. Till exempel i programspråk, så är kontrollsatser ett koncept, namn på datatyper ett annat, och inbyggda funktioner i språket ett tredje. KateParts syntaxfärgläggningssystem kan använda sådana listor för att detektera och markera ord i texten för att visa koncepten för textformaten.

Standardstilar

Om du öppnar en C++ källkodsfil, en Java™ källkodsfil och ett HTML-dokument i KatePart, så ser du att även om formaten är olika, och olika ord därför väljes för särskild behandling, så är färgerna som används samma. Det här beror på att KatePart har en fördefinierad lista med standardstilar, som används av varje individuell syntaxdefinition.

Det här gör det lätt att känna igen liknande koncept i olika textformat. Kommentarer finns till exempel i nästa alla program-, skript- eller formateringsspråk, och när de visas med samma stil i alla språk, behöver du inte stanna och tänka efter för att identifiera dem i texten.

Tips

Alla stilar i en syntaxdefinition använder en av standardstilarna. Några få syntaxdefinitioner använder fler stilar än det finns som standard, så om du ofta använder ett format, kan det vara värt att titta i inställningsdialogrutan för att se om några koncept använder samma stil. Det finns till exempel bara en standardstil för strängar, men eftersom programspråket Perl hanterar två sorters strängar, kan du utöka färgläggningen genom att ställa in dessa så att de skiljer sig något. Alla tillgängliga standardstilar förklaras senare.

XML formatet för syntaxfärgläggningsdefinitioner

Översikt

KatePart använder ramverket för syntaxfärgläggning från KDE Ramverk. XML-standardfilen för färgläggning som levereras med KatePart kompileras normalt i syntaxfärgläggningsbiblioteket.

Det här avsnittet är en översikt av färgläggningsdefinitionernas XML-format. Det beskriver huvudkomponenterna och deras betydelse och användning, och går djupare in i detaljerna för detekteringsreglerna.

Den formella definitionen, som också kallas XSD finns i arkivet för syntaxfärgläggning i filen language.xsd.

Egna .xml-färgläggningsdefinitionsfiler finns i org.kde.syntax-highlighting/syntax/ i användarkatalogen som hittas med qtpaths--paths GenericDataLocation, och som oftast är $HOME/.local/share.

Windows® är filerna placerade i %USERPROFILE%/AppData/Local/org.kde.syntax-highlighting/syntax. %USERPROFILE% expanderas oftast till C:\\Users\\användare.

Huvudkomponenter i KateParts färgläggningsdefinitioner

En syntaxfärgläggningsfil innehåller ett huvud som anger XML-versionen:
<?xml version="1.0" encoding="UTF-8"?>
Definitionsfilens rot är elementet language. Följande egenskaper är tillgängliga:

Egenskaper som krävs:

name anger språkets namn. Det visas senare i menyer och dialogrutor.

section anger kategorin.

extensions definierar filändelser, såsom "*.cpp;*.h".

version anger aktuell version av definitionsfilen i form av ett heltal. När en definitionsfil för färgläggning ändras, försäkra dig om att talet ökas.

kateversion anger senaste version av KatePart som stöds.

Valfria egenskaper:

mimetype associerar filers MIME-typ.

casesensitive definierar om nyckelord är skiftlägeskänsliga eller inte.

priority krävs om en annan syntaxfärgläggningsfil använder samma filändelse. Den högsta prioriteten vinner.

author innehåller författarens namn och e-postadress.

license innehåller licensen, oftast MIT-licensen för nya syntaxfärgläggningsfiler.

stil innehåller språket som tillhandahålls och används av indenterare för egenskapen required-syntax-style.

hidden definierar om namnet ska visas i KateParts menyer.

Nästa rad kan alltså se ut så här:

<language name="C++" version="1" kateversion="2.4" section="Sources" extensions="*.cpp;*.h" />
Därefter kommer elementet highlighting som innehåller det valfria elementet list och det nödvändiga elementen contexts och itemDatas.

list element innehåller en lista med nyckelord. I det här fallet är nyckelorden class och const. Du kan lägga till så många listor som du behöver.

Elementet contexts innehåller alla sammanhang. Det första sammanhanget är förvalt som start för färgläggningen. Det finns två regler i sammanhanget Normal Text som matchar listan av nyckelord med namnet något-namn och en regel som detekterar ett citationstecken och byter sammanhang till string. För att lära dig mer om regler, läs nästa kapitel.

Den tredje delen är elementet itemDatas. Det innehåller alla färger och teckenstilar som behövs av sammanhangen och reglerna. I det här exemplet används itemData Normal Text, String och Keyword.

<highlighting>
    <list name="något-namn">
      <item> class </item>
      <item> const </item>
    </list>
    <contexts>
      <context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
        <keyword attribute="Keyword" context="#stay" String="något-namn" />
        <DetectChar attribute="String" context="string" char="&quot;" />
      </context>
      <context attribute="String" lineEndContext="#stay" name="string" >
        <DetectChar attribute="String" context="#pop" char="&quot;" />
      </context>
    </contexts>
    <itemDatas>
      <itemData name="Normal Text" defStyleNum="dsNormal" />
      <itemData name="Keyword" defStyleNum="dsKeyword" />
      <itemData name="String" defStyleNum="dsString" />
    </itemDatas>
  </highlighting>
Den sista delen av färgläggningsdefinitionen är den valfria sektionen general. Den kan innehålla information om nyckelord, kodvikning, kommentarer och indentering.

Sektionen comment definierar den sträng som enradskommentarer inleds med. Du kan också definiera en flerradskommentar med multiLine och den ytterligare egenskapen end. Det är användbart när användaren trycker på snabbtangenten som motsvarar kommentera/avkommentera.

Sektionen keywords definierar om listor med nyckelord är skiftlägeskänsliga eller inte. Andra egenskaper förklaras senare.

<general>
    <comments>
      <comment name="singleLine" start="#"/>
    </comments>
    <keywords casesensitive="1"/>
  </general>
</language>

Sektionerna i detalj

Den här delen beskriver alla tillgängliga egenskaper för sammanhang, itemData, nyckelord, kommentarer, kodvikning och indentering.

Elementet context hör till gruppen contexts. Själva sammanhanget definierar sammanhangsspecifika regler, som vad som ska ske om färgläggningssystemet når slutet på en rad. Tillgängliga egenskaper är:

name anger sammanhangets namn. Regler använder namnet för att ange sammanhanget att byta till om regeln matchar.

lineEndContext definierar sammanhanget som färgläggningssystemet byter till om det når ett radslut. Det kan antingen vara namnet på ett annat sammanhang, #stay för att inte byta sammanhang (dvs. göra ingenting) eller #pop som gör att det lämnar sammanhanget. Det är till exempel möjligt att använda #pop#pop#pop för att återgå tre steg, eller till och med #pop#pop!Annat_Sammanhang för att återgå två steg och byta till sammanhanget som heter Annat_Sammanhang.

lineEmptyContex definierar sammanhanget om en tom rad påträffas. Förval: #stay.

fallthroughdefinierar om färgläggningssystemet byter till sammanhanget som anges i fallthroughContext om ingen regel matchar. Förval: false.

fallthroughContext anger nästa sammanhang om ingen regel matchar.

dynamic om true kommer sammanhanget ihåg strängar/platsmarkörer som sparats av dynamiska regler. Det behövs till exempel för HERE-dokument. Förval: false.

Elementet itemData är i gruppen itemDatas. Det definierar teckenstilen och färgerna. Det är alltså möjligt att definiera egna stilar och färger. Dock rekommenderar vi att du håller dig till standardstilarna om möjligt, så att användaren alltid ser samma färger använda i olika språk. Ibland finns det dock inget annat sätt, och det är nödvändigt att ändra färg- och teckenegenskaper. Egenskapens namn och defStyleNum krävs, övriga är valfria. Tillgängliga egenskaper är:

name anger namnet på itemData. Sammanhang och regler använder namnet i egenskapen attribute för att referera till itemData.

defStyleNum definierar vilken standardstil som ska användas. Tillgängliga standardstilar förklaras i detalj senare.

color definierar en färg. Giltiga format är '#rrggbb' eller '#rgb'.

selColor definierar markeringens färg.

italic om true, är texten kursiv.

bold om true, är texten i fetstil.

underline om true, är texten understruken.

strikeout om true, är texten överstruken.

spellChecking om true, stavningskontrolleras texten.

Elementet keywords i gruppen general definierar nyckelordens egenskaper. Tillgängliga egenskaper är:

casesensitive kan vara true eller false. Om det är true, matchas alla nyckelord skiftlägeskänsligt.

weakDeliminator är en lista med tecken som inte fungerar som ordavgränsare. Punkt '.' är till exempel en ordavgränsare. Med antagandet att ett nyckelord i en list innehåller en punkt, matchar det bara om du anger att punkten är en svag avgränsare.

additionalDeliminator definierar ytterligare avgränsare.

wordWrapDeliminator definierar tecken som en radbrytning kan ske efter.

Standardavgränsare och radbrytningsavgränsare är tecknen .():!+,-<=>%&*/;?[]^{|}~\, mellanslag (' ') och tabulator ('\t').

Elementet comment i gruppen comments definierar kommentaregenskaper som används för VerktygKommentera och VerktygAvkommentera. Tillgängliga egenskaper är:

name är antingen singleLine eller multiLine. Om du väljer multiLine krävs egenskaperna end och region.

start definierar strängen som används för att inleda en kommentar. I C++ skulle det vara "/*".

end definierar strängen som används för att avslutar en kommentar. I C++ skulle det vara "*/".

region ska vara namnet på den vikbara flerraderskommentaren. Med antagandet att du har beginRegion="Comment" ... endRegion="Comment" i dina regler, ska du använda region="Comment". På så sätt fungerar avkommentering även om du inte markerar all text i en flerraderskommentar. Markören måste bara vara inne i flerraderskommentaren.

Elementet folding i gruppen general definierar kodvikningsegenskaper. Tillgängliga egenskaper är:

indentationsensitive om true läggs kodvikningsmarkörerna till baserat på indentering, som i skriptspråket Python. Oftast behöver du inte ange det, eftersom det har det förvalda värdet false.

Elementet indentation i gruppen general definierar vilken identerare som ska användas. Dock rekommenderar vi starkt att du utelämnar elementet, eftersom intenteraren oftast anges genom att definiera en filtyp eller genom att lägga till lägesrader i textfilen. Om du dock anger en indenterare, tvingar du användaren att använda en viss indentering, vilket kanske inte alls uppskattas. Tillgängliga egenskaper är:

mode är namnet på indenteraren. Indenterare som för närvarande är tillgängliga är:normal, cstyle, haskell, lilypond, lisp, python, ruby och xml.

Tillgängliga standardstilar

Standardstilar har redan förklarats. En kort sammanfattning: Standardstilar är fördefinierade stilar för teckensnitt och färger.

Allmänna standardstilar:

dsNormal, när ingen särskild färgläggning krävs.

dsKeyword, nyckelord för inbyggda språk.

dsFunction, funktionsanrop och definitioner.

dsVariable, om tillämpligt: variabelnamn (t.ex. $enVariabel i PHP eller Perl).

dsControlFlow, nyckelord för kontrollflöde såsom if, else, switch, break, return, yield, ...

dsOperator, operatorer såsom + - * / :: < >

dsBuiltin, inbyggda funktioner, klasser och objekt.

dsExtension, vanliga ändelser såsom Qt-klasser och funktioner eller makron i C++ och Python.

dsPreprocessor, preprocessorsatser eller makrodefinitioner.

dsAttribute, anmärkningar som @override och __declspec(...).

Strängrelaterade standardstilar:

dsChar, enstaka tecken såsom 'x'.

dsSpecialChar, tecken med speciell betydelse i strängar som undantag, ersättningar eller operatorer i reguljära uttryck.

dsString, strängar såsom "hej allihop".

dsVerbatimString, ordagranna eller obehandlade strängar som 'raw \backlash' i Perl, CoffeeScript och skal, samt r'\raw' i Python.

dsSpecialString, SQL-satser, reguljära uttryck, HERE-dokument, Latex-matematikläge, ...

dsImport, import, inkludering och require för moduler.

Nummerrelaterade standardstilar:

dsDataType, inbyggda datatyper såsom int, void, u64.

dsDecVal, decimala värden.

dsBaseN, värden med en bas skild från 10.

dsFloat, flyttalsvärden.

dsConstant, inbyggda och användardefinierade konstanter såsom PI.

Kommentar- och dokumentationsrelaterade standardstilar:

dsComment, kommentarer.

dsDocumentation, /** dokumentationskommentarer */ eller """dokumentsträngar""".

dsAnnotation, dokumentationskommandon som @param, @brief.

dsCommentVar, variabelnamnen som används i ovanstående kommandon, som "exempel" i @param exempel.

dsRegionMarker, områdesmarkeringar som //BEGIN, //END i kommentarer.

Andra standardstilar:

dsInformation, anmärkningar och tips som @note i doxygen.

dsWarning, varningar som @warning i doxygen.

dsAlert, specialord som TODO, FIXME, XXXX.

dsError, färgläggning av fel och felaktig syntax.

dsOthers, när ingenting annat passar in.

Regler för syntaxdetektering

Den här sektionen beskriver reglerna för syntaxdetektering.

Varje regel kan matcha noll eller flera tecken i början av strängen som de ska testas med. Om regeln matchar, så tilldelas de matchande tecknen stilen eller egenskapen som definieras av regeln. En regel kan också begära att det nuvarande sammanhanget byts.

En regel ser ut så här:

<Regelnamn attribute="(identifierare)" context="(identifierare)" [regelspecifika egenskaper] />

Ordet attribute identifierar stilen som ska användas för tecken som matchar med namn eller index, och context identifierar sammanhanget som ska användas i fortsättningen.

Sammanhanget kan identifieras av:

  • En identifierare, som är namnet på det andra sammanhanget.

  • En ordning som talar om att färgläggningen ska stanna kvar i det nuvarande sammanhanget (#stay), eller gå tillbaka till det föregående sammanhanget som använts i strängen (#pop).

    För att gå tillbaka flera steg, kan nyckelordet #pop upprepas: #pop#pop#pop

  • En ordning följd av ett utropstecken (!) och en identifierare, som gör att färgläggningen först följer ordningen och därefter byter till det andra sammanhanget, t.ex. #pop#pop!Annat_sammanhang.

Vissa regler kan ha delregler, bara utvärderas om huvudregeln matchar. Hela den matchande strängen kommer att få egenskapen som definieras av huvudregeln. En regel med en delregel ser ut så här:

<Regelnamn (egenskaper)>
  <Delregelnamn (egenskaper) />
  ...
</Regelnamn>

Regelspecifika egenskaper varierar och beskrivs i följande avsnitt.

Gemensamma egenskaper

Alla regler har följande egenskaper gemensamma och är tillgängliga på alla ställen (gemensamma egenskaper) visas. Egenskaperna attribute och context är nödvändiga, alla övriga är valfria.

  • attribute: En egenskap avbildas på en definierad itemData.

  • context: Anger sammanhanget som färgläggningssystemet byter till om regeln matchar.

  • beginRegion: Inled ett kodvikningsblock. Förval: unset.

  • endRegion: Avsluta ett kodvikningsblock. Förval: unset.

  • lookAhead: Om true behandlar inte färgläggningssystemet matchningens längd. Förval: false.

  • firstNonSpace: Matcha bara om strängen är den första förutom blanktecken på raden. Förval: false.

  • column: Matcha bara om kolumnen matchar. Förval: unset.

Dynamiska regler

Vissa regler tillåter den valfria egenskapen dynamic med Boolesk typ, som har förvalt värde false. Om dynamic är true, kan en regel använda platsmarkörer som representerar texten som matchas av en regel med ett reguljärt uttryck som byter till nuvarande sammanhang med sin egenskap string eller char. I en string ersätts platsmarkören %N (där N är ett tal) med motsvarande N i det anropande reguljära uttrycket. I en char måste platsmarkören vara ett tal N och det ersätts med första tecknet i motsvarande N i det anropande reguljära uttrycket. Närhelst en regel tillåter den här egenskapen, innehåller den (dynamic).

  • dynamic: kan vara (true | false).

Reglerna i detalj

DetectChar

Detektera ett enda specifikt tecken. Används ofta för att till exempel hitta slutet på strängar inom citationstecken.

<DetectChar char="(tecken)" (gemensamma egenskaper) (dynamisk) />

Egenskapen char definierar tecknet som ska matchas.

Detect2Chars

Detektera två angivna tecken i en definierad ordning.

<Detect2Chars char="(tecken)" char1="(tecken)" (gemensamma egenskaper) (dynamisk) />

Egenskapen char definierar det första tecknet som ska matcha, char1 det andra.

AnyChar

Detektera ett tecken i en angiven teckenmängd.

<AnyChar String="(sträng)" (gemensamma egenskaper) />

Egenskapen String definierar teckenmängden.

StringDetect

Detektera en sträng exakt.

<StringDetect String="(sträng)" [insensitive="TRUE|FALSE;"] (gemensamma egenskaper) (dynamisk) />

Egenskapen String definierar strängen som ska matcha. Egenskapen insensitive (okänslig) är normalt FALSE (FALSK) och skickas med till strängjämförelsefunktionen. Om värdet är TRUE (SANT) så används en jämförelse som inte bryr sig om skiftläge.

WordDetect

Detektera en exakt sträng, men kräv dessutom ordgränser som en punkt '.' eller ett blanktecken i början och slutet av ordet. Betrakta \b<string>\b som ett reguljärt uttryck, men snabbare än regeln RegExpr.

<WordDetect String="(sträng)" [insensitive="TRUE|FALSE;"] (gemensamma egenskaper) (dynamisk) />

Egenskapen String definierar strängen som ska matcha. Egenskapen insensitive (okänslig) är normalt FALSE (FALSK) och skickas med till strängjämförelsefunktionen. Om värdet är TRUE (SANT) så används en jämförelse som inte bryr sig om skiftläge.

Sedan: Kate (KDE 4.5)

RegExpr

Matchar med ett reguljärt uttryck.

<RegExpr String="(sträng)" [insensitive="TRUE|FALSE;"] [minimal="TRUE| FALSE"] (gemensamma egenskaper) (dynamisk) />

Egenskapen String definierar det reguljära uttrycket.

Egenskapen insensitive (okänslig) är normalt FALSE (FALSK) och skickas med det reguljära uttrycket.

Egenskapen minimal är normalt FALSE (FALSK) och skickas med det reguljära uttrycket.

Eftersom reglerna alltid matchas mot början av den nuvarande strängen, så anger ett reguljärt uttryck som börjar med en hatt (^) att regeln bara ska matchas mot radens början.

Se Reguljära uttryck för mer information om dem.

keyword

Detektera ett nyckelord från en angiven lista.

<keyword String="(listnamn)" (gemensamma egenskaper) />

Egenskapen String identifierar en lista på nyckelord med namn. En lista med det namnet måste finnas.

Färgläggningssystemet behandlar nyckelordsregler på ett mycket optimerat sätt. Det gör det absolut nödvändigt att alla nyckelord som ska matchas måste omges med definierade avgränsare, antingen underförstått (standardavgränsare) eller explicit definierade inne i egenskapen additionalDeliminator i taggen keywords.

Om ett nyckelord som ska matchas måste innehålla ett skiljetecken, måste detta tecken läggas till i egenskapen weakDeliminatori taggen keywords. Detta tecken förlorar då sin avgränsningsegenskap i alla regler med keyword.

Int

Detektera ett heltal.

<Int (gemensamma egenskaper) (dynamisk) />

Den här regeln har inga specifika egenskaper. Delregler används typiskt för att detektera kombinationer av L och U efter talet, som anger heltalstypen i programkod. I själva verket tillåts alla regler som delregler, även om DTD:n bara tillåter delregeln StringDetect.

Följande exempel matchar heltal som följs av tecknet 'L'.

<Int attribute="Decimal" context="#stay" >
  <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
</Int>
Float

Detektera ett flyttal.

<Float (gemensamma egenskaper) />

Den här regeln har inga specifika egenskaper. AnyChar tillåts som en delregel, och används typiskt för att detektera kombinationer, se regeln Int för en referens.

HlCOct

Detektera en oktal talrepresentation.

<HlCOct (gemensamma egenskaper) />

Den här regeln har inga specifika egenskaper.

HlCHex

Detektera en hexadecimal talrepresentation.

<HlCHex (gemensamma egenskaper) />

Den här regeln har inga specifika egenskaper.

HlCStringChar

Detektera ett undantaget tecken.

<HlCStringChar (gemensamma egenskaper) />

Den här regeln har inga specifika egenskaper.

Det matchar bokstavsrepresentationer av osynliga tecken som ofta används i programkod, till exempel \n (nyrad) eller \t (tabulator).

Följande tecken matchar om de följer ett bakstreck (\): abefnrtv"'?. Dessutom matchar undantagna hexadecimala tal, som till exempel \xff och undantagna oktala tal, till exempel \033.

HlCChar

Detektera ett C-tecken.

<HlCChar (gemensamma egenskaper) />

Den här regeln har inga specifika egenskaper.

Det matchar C-tecken omgivna av apostrofer (till exempel 'c'). Apostroferna kan innehålla ett enkelt tecken eller en teckenföljd. Se HlCStringChar för matchade teckenföljder.

RangeDetect

Detektera en sträng med definierade start- och sluttecken.

<RangeDetect char="(tecken)"  char1="(tecken)" (gemensamma egenskaper) />

char definierar tecknet som inleder intervallet, och char1 tecknet som avslutar intervallet.

Användbar för att till exempel detektera små strängar inom citationstecken och liknande, men observera att eftersom färgläggningen arbetar med en rad i taget, så hittar det inte strängar som fortsätter på nästa rad.

LineContinue

Matchar ett angivet tecken vid radens slut.

<LineContinue (gemensamma egenskaper) [char="\"] />

Egenskapen char definierar valfritt tecken som ska matchas, förval är bakstreck ('\'). Ny sedan KDE 4.13.

Regeln är användbar för att byta sammanhang vid radslut. Det behövs till exempel i C/C++ för att fortsätta makron eller strängar.

IncludeRules

Inkludera regler från ett annat sammanhang eller språk/fil.

<IncludeRules context="sammanhangslänk" [includeAttrib="true|false"] />

Egenskapen context definierar vilket sammanhang som ska inkluderas.

Om den är en enkelt sträng innehåller den alla definierade regler i det nuvarande sammanhanget, till exempel:

<IncludeRules context="annat-sammanhang" />

Om strängen innehåller ## letar färgläggningssystemet efter ett sammanhang från en annan språkdefinition med angivet namn, exempelvis skulle

<IncludeRules context="String##C++" />

inkludera sammanhanget String från färgläggningsdefinitionen av C++.

Om egenskapen includeAttrib är true, ändras målegenskapen till källans egenskap. Det krävs till exempel för att kommentarer ska fungera om text som matchas av det inkluderade sammanhanget har en annan färgläggning än värdsammanhanget.

DetectSpaces

Detektera blanktecken.

<DetectSpaces (gemensamma egenskaper) />

Den här regeln har inga specifika egenskaper.

Använd den här regeln om du vet att det kan finnas flera blanktecken framför, till exempel i början av indenterade rader. Regeln hoppar över alla blanktecken på en gång, istället för att prova flera regler och hoppa över en åt gången eftersom den inte matchar.

DetectIdentifier

Detektera strängar för identifierare (som ett reguljärt uttryck: [a-zA-Z_][a-zA-Z0-9_]*).

<DetectIdentifier (gemensamma egenskaper) />

Den här regeln har inga specifika egenskaper.

Använd den här regeln för att hoppa över en sträng med ordtecken på en gång, istället för att testa den med flera regler och hoppa ett steg i taget beroende på att ingenting matchar.

Tips och trick

När du väl har förstått hur sammanhangsbyte fungerar blir det enkelt att skriva färgläggningsdefinitioner. Du bör ändå kontrollera noggrant vilken regel du väljer i vilken situation. Reguljära uttryck är mycket kraftfulla, men de är långsamma jämfört med andra regler. Du bör därför ta hänsyn till följande tips.

  • Om du bara matchar två tecken, använd Detect2Chars istället för StringDetect. Samma sak gäller för DetectChar.

  • Reguljära uttryck är enkla att använda, men oftast finns det ett annat mycket snabbare sätt att uppnå samma resultat. Antag att du bara vill matcha tecknet '#' om det är det första tecknet på en rad. En lösning baserad på reguljära uttryck skulle se ut så här:

    <RegExpr attribute="Macro" context="macro" String="^\s*#" />

    Du kan uppnå samma sak mycket snabbare med:

    <DetectChar attribute="Macro" context="macro" char="#" firstNonSpace="true" />

    Om du vill matcha det reguljära uttrycket '^#' kan du fortfarande använda DetectChar med egenskapen column="0". Egenskapen column räknar tecken, så en tabulator är bara ett tecken.

  • Du kan byta sammanhang utan att behandla tecken. Antag att du vill byta sammanhang när du stöter på strängen */, men måste behandla denna sträng i nästa sammanhang. Regeln nedan matchar, och egenskapen lookAhead gör att färgläggningen behåller den matchade strängen för nästa sammanhang.

    <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />

  • Använd DetectSpaces om du vet att många blanktecken förekommer.

  • Använd DetectIdentifier instället för ett reguljärt uttryck '[a-zA-Z_]\w*'.

  • Använd standardstilar överallt du kan. På så sätt finner användaren en bekant miljö.

  • Titta i andra XML-filer för att se hur andra implementerade knepiga regler.

  • Det går att validera alla XML-filer genom att använda kommandot validatehl.sh language.xsd min-syntax.xml. Filerna validatehl.sh och language.xsd är tillgängliga i arkivet för syntaxfärgläggning.

  • Om du mycket ofta upprepar komplexa reguljära uttryck kan du använda ENTITETER. Till exempel:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE language SYSTEM "language.dtd"
    [
            <!ENTITY minref    "[A-Za-z_:][\w.:_-]*">
    ]>
    

    Nu kan du använda &myref; istället för det reguljära uttrycket.

Skapa skript med Javascript

Skapa skript med Javascript

KateParts editorkomponent kan enkelt utökas genom att skriva skript. Skriptspråket är ECMAscript (känt överallt som Javascript). KatePart stöder två sorters skript: intenterings- och kommandoradskript.

Indenteringsskript

Indenteringsskript, som också kallas indenterare, indenterar automatiskt källkoden medan texten skrivs in. Som ett exempel, efter att ha tryckt på returtangenten ökar ofta indenteringsnivån.

Följande avsnitt beskriver steg för steg hur skelettet för en enkel indenterare skapas. Som ett första steg, skapa en ny *.js-fil, som t.ex. heter javascript.js i den lokala hemkatalogen $XDG_DATA_HOME/katepart5/script/indentation. I detta expanderas miljövariabeln XDG_DATA_DIRS typiskt antingen som ~/.local eller ~/.local/share.

Windows® är filerna placerade i %USER%\AppData\Local\katepart5\indentation. %USERPROFILE% expanderas oftast till C:\\Users\\användare.

Indenteringsskriptets huvud

Huvudet i filen javascript.js är inbäddat som JSON i början av dokumentet enligt följande:

var katescript = {
    "name": "JavaScript",
    "author": "Exempelnamn <exempel.namn@någon.adress.org>",
    "license": "BSD-licens",
    "revision": 1,
    "kate-version": "5.1",
    "required-syntax-style": "javascript",
    "indent-languages": ["javascript"],
    "priority": 0,
}; // kate-script-header, måste finnas i början av filen utan kommentarer

Varje post förklaras nu i detalj:

  • name [krävs]: Detta är indenterarens namn som visas i menyn VerktygIndentering och i inställningsdialogrutan.

  • author [valfri]: Upphovsmannens namn och kontaktinformation.

  • license [valfri]: Kort form av licensen, såsom BSD-licensen eller LGPLv3.

  • revision [krävs]: Skriptets utgåva. Numret ska ökas så fort skriptet ändras.

  • kate-version [krävs]: Lägsta version av KatePart som krävs.

  • required-syntax-style [valfri]: Syntaxstilen som krävs, som matchar angiven stil i syntaxfärgläggningsfiler. Det är viktigt för indenterare som förlitar sig på specifik syntaxfärgläggningsinformation i dokumentet. Om en krävd syntaxstil specificeras, är bara indenteraren tillgänglig när lämplig syntaxfärgläggning är aktiv. Det förhindrar odefinierat beteende orsakat av att använda indenteraren utan den förväntade färgläggningsmetoden. Exempelvis använder sig Ruby-indenteraren sig av det i filen ruby.js och ruby.xml.

  • indent-languages [valfri]: JSON-fält av syntaxstilar som indenteraren kan indentera korrekt, t.ex. ["c++", "java"].

  • priority [valfri]: Om flera indenterare är lämpliga för en viss färglagd fil, bestämmer prioriteten vilken indenterare som väljes som standardindenterare.

Indenteringens källkod

Efter att ha specificerat huvudet, förklarar det här avsnittet hur själva indenteringsskriptet fungerar. Det grundläggande skelettet för implementeringen ser ut så här:

// nödvändiga katepart js bibliotek, t.ex. range.js om Range används
require ("range.js");

triggerCharacters = "{}/:;";
function indent(line, indentWidth, ch)
{
    // anropas för varje nyrad (ch == '\n') och alla tecken angivna i
    // den globala variabeln triggerCharacters. Vid anrop av VerktygJustera
    // är variabeln ch tom, dvs. ch == ''.
    //
    // se också: Programmeringsgränssnittet för skripthantering
    return -2;
}

Funktionen indent() har tre parametrar:

  • line: raden som ska indenteras

  • indentWidth: indenteringsbredden i antal mellanslag

  • ch: antingen ett nyradstecken (ch == '\n'), avtryckartecknet angivet i triggerCharacters eller tom om användaren utförde åtgärden VerktygJustera.

Returvärdet från funktionen indent() anger hur raden kommer att indenteras. Om returvärdet är ett enkelt heltal, tolkas det på följande sätt:

  • returvärde -2: gör ingenting

  • returvärde -1: behåll indentering (söker efter föregående icke tomma rad)

  • returvärde 0: tal >= 0 anger indenteringsdjupet i mellanslag

Som alternativ kan ett fält med två element returneras.

  • return [ indent, align ];

I detta fall är det först elementet indenteringsdjupet ovan med samma betydelse för specialvärden. Det andra elementet är dock ett absolutvärde som representerar en kolumn för justering. Om värdet är större än indenteringsvärdet, representerar skillnaden ett antal mellanslag att lägga till efter indentering av den första parametern. Annars ignoreras det andra numret. Att använda tabulator och mellanslag för indentering kallas ofta blandat läge.

Betrakta följande exempel: Antag att tabulator används för indentering, och tabulatorbredden är inställd till 4. Här representerar <tab> en tabulator, och '.' ett mellanslag.

1: <tab><tab>anropa("Hej",
2: <tab><tab>......."allesamman");

Vid indentering av rad 2, returnerar funktionen indent() [8, 15]. Som resultat infogas två tabulatorer för att indentera till kolumn 8, och 7 mellanslag läggs till för att justera den andra parametern under den första, så att den förblir justerad om filen visas med en annan tabulatorbredd.

En standardinstallation av KDE levererar KatePart med flera indenterare. Den motsvarande Javascript-koden finns i $XDG_DATA_DIRS/katepart5/script/indentation.

Windows® är filerna placerade i %USER%\AppData\Local\katepart5\indentation. %USER% expanderas oftast till C:\\Users\\användare.

Att utveckla en indenterare kräver att skript läses in igen för att se om ändringar beter sig lämpligt. Istället för att starta om programmet, byt helt enkelt till kommandoraden och utför kommandot reload-scripts.

Om du utvecklar användbara skript, fundera på att bidra med det till KatePart-projektet genom att kontakta e-postlistan.

Kommandoradskript

Eftersom det är svårt att uppfylla allas behov, stöder KatePart små hjälpverktyg för snabb textbehandling via den inbyggda kommandoraden. Exempelvis är kommandot sort implementerat som ett skript. Det här avsnittet förklarar hur man skapar *.js-filer för att utöka KatePart med godtyckliga hjälpskript.

Kommandoradskript är placerade i samma katalog som indenteringsskript. Som ett första steg, skapa alltså en ny *.js-fil som heter mina_verktyg.js i den lokala hemkatalogen $XDG_DATA_HOME/katepart5/script/commands. I detta expanderas miljövariabeln XDG_DATA_DIRS typiskt antingen som ~/.local eller ~/.local/share.

Windows® är filerna placerade i %USER%\AppData\Local\katepart5\commands. %USER% expanderas oftast till C:\\Users\\användare.

Kommandoradskriptets huvud

Huvudet för varje kommandoradskript är inbäddat som JSON i början av skriptet enligt följande:

var katescript = {
    "author": "Exempelnamn <exempel.namn@någon.adress.org>",
    "license": "LGPLv2+",
    "revision": 1,
    "kate-version": "5.1",
    "functions": ["sort", "moveLinesDown"],
    "actions": [
        {  "function": "sort",
            "name": "Sortera markerad text",
            "category": "Editing",
            "interactive": "false"
        },
        {   "function": "moveLinesDown",
            "name": "Flytta rader neråt",
            "category": "Editing",
            "shortcut": "Ctrl+Shift+Down",
            "interactive": "false"
        }
    ]
}; // kate-script-header, måste finnas i början av filen utan kommentarer

Varje post förklaras nu i detalj:

  • author [valfri]: Upphovsmannens namn och kontaktinformation.

  • license [valfri]: Kort form av licensen, såsom BSD-licensen eller LGPLv2.

  • revision [krävs]: Skriptets utgåva. Numret ska ökas så fort skriptet ändras.

  • kate-version [krävs]: Lägsta version av KatePart som krävs.

  • functions [krävs]: JSON-fält av kommandon i skriptet.

  • actions [valfri]: Ett JSON-fält av JSON-objekt som definierar åtgärderna som visas i programmenyn. Detaljerad information tillhandahålls i avsnittet Tilldela genvägar.

Eftersom värdet på functions är ett JSON-fält, kan ett enda skript innehålla godtyckligt antal kommandon för kommandoraden. Varje funktion är tillgänglig via KateParts inbyggda kommandorad.

Skriptets källkod

Alla funktioner specificerade i huvudet måste implementeras i skriptet. Exempelvis måste skriptfilen i exemplet ovan implementera de två funktionerna sort och moveLinesDown. Alla funktioner har följande syntax:

// nödvändiga katepart.js bibliotek, t.ex. range.js om Range används
require ("range.js");

function <namn>(arg1, arg2, ...)
{
    // ... implementering, se också: Programmeringsgränssnittet för skripthantering
}

Argument på kommandoraden skickas till funktionen som arg1, arg2, etc. För att ge dokumentation av varje kommando, implementera helt enkelt funktionen 'help' på följande sätt:

function help(cmd)
{
    if (cmd == "sort") {
        return "Sortera markerad text.";
    } else if (cmd == "...") {
        // ...
    }
}

Att utföra help sort på kommandoraden anropar hjälpfunktionen med argumentet cmd inställd till det givna kommandot, dvs. cmd == "sort". KatePart visar därefter den returnerade texten som dokumentation för användaren. Försäkra dig om att översätta strängarna.

Att utveckla ett kommandoradskript kräver att skript läses in igen för att se om ändringar beter sig lämpligt. Istället för att starta om programmet, byt helt enkelt till kommandoraden och utför kommandot reload-scripts.

Tilldela genvägar

För att göra det möjligt att komma åt skripten i programmenyn och tilldela genvägar, måste skriptet tillhandahålla ett lämpligt skripthuvud. I exemplet ovan, visas båda funktionerna sort och moveLinesDown i menyn på grund a följande del av skripthuvudet:

var katescript = {
    ...
    "actions": [
        {   "function": "sort",
            "name": "Sortera markerad text",
            "icon": "",
            "category": "Editing",
            "interactive": "false"
        },
        {   "function": "moveLinesDown",
            "name": "Flytta rader neråt",
            "icon": "",
            "category": "Editing",
            "shortcut": "Ctrl+Shift+Down",
            "interactive": "false"
        }
    ]
};

Fälten för en åtgärd är följande:

  • function [krävs]: Funktionen som ska visas i menyn VerktygSkript.

  • name [krävs]: Texten visas i skriptmenyn.

  • icon [valfri]: Ikonen visas intill texten i menyn. Alla KDE:s ikonnamn kan användas här.

  • category [valfri]: Om en kategori anges, visas skriptet i en undermeny.

  • shortcut [valfri]: Genvägen som anges här är förvald genväg. Exempel: Ctrl+Alt+t. Se Qt:s dokumentation för ytterligare detaljinformation.

  • interactive [valfri]: Om skriptet kräver användarinmatning via kommandoraden, ange det här som true.

Om du utvecklar användbara skript, fundera på att bidra med det till KatePart-projektet genom att kontakta e-postlistan.

Programmeringsgränssnittet för skripthantering

Programmeringsgränssnittet för skripthantering som presenteras här är tillgängligt i alla skript, dvs. indenteringsskript och kommandon för kommandoraden. Klasserna Cursor och Range tillhandahålls av biblioteksfiler i $XDG_DATA_DIRS/katepart5/libraries. Om du vill använda dem i skriptet, vilket behöver använda vissa av funktionerna i Document eller View , inkludera det nödvändiga biblioteket med:

// nödvändiga katepart.js bibliotek, t.ex. range.js om Range används
require ("range.js");

För att utöka det vanliga skriptprogrammeringsgränssnittet med egna funktioner och prototyper, skapa helt enkelt en ny fil i KDE:s lokala inställningskatalog $XDG_DATA_HOME/katepart5/libraries och inkludera den i skriptet med:

require ("mitt_skriptnamn.js");

Windows® är filerna placerade i %USER%\AppData\Local\katepart5\libraries. %USER% expanderas oftast till C:\\Users\\användare.

För att utöka befintliga prototyper som Cursor eller Range, är det rekommenderade sättet inte att ändra den globala *.js-filen. Ändra istället prototypen för Cursor i Javascript efter att cursor.js har inkluderats i skriptet via require.

Markörer och intervall

Eftersom KatePart är en texteditor är alla programmeringsgränssnitt baserade på markörer och intervall om det är möjligt. En markör (Cursor) är ett enkelt par (rad, kolumn), som representerar en textposition i dokumentet. Ett intervall (Range) omfattar text från en markörs startposition till en markörs slutposition. Programmeringsgränssnittet förklaras i detalj i följande avsnitt.

Prototypen för Cursor
Cursor();

Konstruktor. Returnerar en markör på position (0, 0).

Exempel: var cursor = new Cursor();

Cursor(int rad, int kolumn);

Konstruktor. Returnerar en markör på position (rad, kolumn).

Exempel: var cursor = new Cursor(3, 42);

Cursor(Cursor annan);

Kopieringskonstruktor. Returnerar en kopia av markören annan.

Exempel: var copy = new Cursor(other);

Cursor Cursor.clone();

Returnerar en klon av markören.

Exempel: var clone = cursor.clone();

Cursor.setPosition(int rad, int kolumn);

Ställer in markörens position till rad och kolumn.

Sedan: KDE 4.11

bool Cursor.isValid();

Kontrollera om markören är giltig. Markören är ogiltig om rad och/eller kolumn har värdet -1.

Exampel: var valid = cursor.isValid();

Cursor Cursor.invalid();

Returnerar en ny ogiltig markör placerad på (-1, -1).

Exempel: var invalidCursor = cursor.invalid();

int Cursor.compareTo(Cursor annan);

Jämför den här markören med markören annan. Returnerar

  • -1, om den här markören är placerad innan markören annan,

  • 0, om båda markörerna är lika, och

  • +1, om den här markören är placerad efter markören annan.

bool Cursor.equals(Cursor annan);

Returnerar sant om den här markören och markören annan är lika, annars falskt.

String Cursor.toString();

Returnerar markören som en sträng på formen Cursor(rad, kolumn).

Prototyp för Range
Range();

Konstruktor. Att anropa new Range() returnerar intervallet (0, 0) - (0, 0).

Range(Cursor start, Cursor slut);

Konstruktor. Att anropa new Range(start, slut) returnerar intervallet (start, slut).

Range(int startrad, int startkolumn, int slutrad, int slutkolumn);

Constructor. Calling new Range(startrad, startkolumn, slutrad, slutkolumn) returnerar intervallet från (startrad, startkolumn) to (startrad, slutkolumn).

Range(Range annat);

Kopieringskonstruktor. Returnerar en kopia av intervallet annat.

Range Range.clone();

Returnerar en klon av intervallet.

Exempel: var clone = range.clone();

bool Range.isEmpty();

Returnerar sant om både start- och slutmarkörerna är lika.

Exempel: var empty = range.isEmpty();

Sedan: KDE 4.11

bool Range.isValid();

Returnerar sant om både start- och slutmarkörerna är giltiga, annars falskt.

Exempel: var valid = range.isValid();

Range Range.invalid();

Returnerar intervallet från (-1, -1) till (-1, -1).

bool Range.contains(Cursor markör);

Returnerar true om intervallet innehåller markörpositionen, annars false.

bool Range.contains(Range annat);

Returnerar sant om det här intervallet innehåller intervallet annat, annars falskt.

bool Range.containsColumn(int kolumn);

Returnerar sant om kolumn är i det halvöppna intervallet [startkolumn, slutkolumn), annars falskt.

bool Range.containsLine(int rad);

Returnerar sant om rad är i det halvöppna intervallet [startrad, slutrad), annars falskt.

bool Range.overlaps(Range annat);

Returnerar sant om det här intervallet och intervallet annat delar ett gemensamt område, annars falskt.

bool Range.overlapsLine(int rad);

Returnerar sant om rad är i intervallet [startrad, slutrad], annars falskt.

bool Range.overlapsColumn(int kolumn);

Returnerar sant om kolumn är i intervallet [startkolumn, slutkolumn], annars falskt.

bool Range.onSingleLine();

Returnerar sant om intervallet startar och slutar på samma rad, dvs. om Range.start.line == Range.end.line.

Sedan: KDE 4.9

bool Range.equals(Range annan);

Returnerar sant om det här intervallet och intervallet annat är lika, annars falskt.

String Range.toString();

Returnerar intervallet som en sträng på formen Range(Cursor(rad, kolumn), Cursor(rad, kolumn)).

Globala funktioner

Det här avsnittet listar alla globala funktioner.

Att läsa och inkludera filer
String read(String fil);

Söker efter angiven fil relativt i förhållande till katalogen katepart/script/files och returnerar innehållet som en sträng.

void require(String fil);

Söker efter angiven fil relativt i förhållande till katalogen katepart/script/libraries och utvärdera den. Internt skyddas require från att samma fil inkluderas flera gånger.

Sedan: KDE 4.10

Felsökning
void debug(String text);

Skriver ut textstandardutmatningen i terminalen som startade programmet.

Översättning

För att stödja fullständig landsanpassning, finns det flera funktioner för att översätta strängar i skript, närmare bestämt i18n, i18nc, i18np och i18ncp. Funktionerna beter sig exakt likadant som KDE:s översättningsfunktioner.

Översättningsfunktionerna översätter strängarna de omger via KDE:s översättningssystem till det språk som används i programmet. Strängar i skript som utvecklas i KateParts officiella källkod extraheras automatiskt och är översättningsbara. Med andra ord, som utvecklare av KatePart behöver man inte bry dig om att extrahera och översätta meddelanden. Observera dock att översättningen bara fungerar inne i KDE:s infrastruktur, nya strängar i skript från tredjepart som utvecklas utanför KDE, översätts inte. Överväg därför gärna att bidra med dina skript till Kate så att en passande översättning blir möjlig.

void i18n(String text, arg1, ...);

Översätter text till språket som används av programmet. Parametrarna arg1, ... , är valfria och används för att ersätta platsmarkörerna %1, %2, etc.

void i18nc(String sammanhang, String text, arg1, ...);

Översätter text till språket som används av programmet. Dessutom är strängen sammanhang synlig för översättare, så att de kan tillhandahålla en bättre översättning. Parametrarna arg1, ... , är valfria och används för att ersätta platsmarkörerna %1, %2, etc.

void i18np(String singularis, String pluralis, int antal, arg1, ...);

Översätter antingen singularis eller pluralis till språket som används av programmet, beroende på angivet antal. Parametrarna arg1, ... , är valfria och används för att ersätta platsmarkörerna %1, %2, etc.

void i18ncp(String sammanhang, String singularis, String pluralis, int antal, arg1, ...);

Översätter antingen singularis eller pluralis till språket som används av programmet, beroende på angivet antal. Dessutom är strängen sammanhang synlig för översättare, så att de kan tillhandahålla en bättre översättning. Parametrarna arg1, ... , är valfria och används för att ersätta platsmarkörerna %1, %2, etc.

Programmeringsgränssnittet för vyn

När ett skript håller på att köras, finns det en global variabel view som representerar den för närvarande aktiva editorvyn. Det följande är en lista med alla tillgängliga funktioner i View.

Cursor view.cursorPosition()

Returnerar den nuvarande markörpositionen i vyn.

void view.setCursorPosition(int rad, int kolumn);
void view.setCursorPosition(Cursor markör);

Ställ in den nuvarande markörpositionen till antingen (rad, kolumn) eller till den givna markören.

Cursor view.virtualCursorPosition();

Returnerar den virtuella markörpositionen, där varje tabulator räknas som motsvarande antal mellanslag, beroende på nuvarande tabulatorbredd.

void view.setVirtualCursorPosition(int rad, int kolumn);
void view.setVirtualCursorPosition(Cursor markör);

Ställ in den nuvarande virtuella markörpositionen till (rad, kolumn) eller till den givna markören.

String view.selectedText();

Returnerar den markerade texten. Om ingen text är markerad, är den returnerade strängen tom.

bool view.hasSelection();

Returnerar true om vyn har markerad text, annars false.

Range view.selection();

Returnerar det markerade textintervallet. Det returnerade intervallet är ogiltigt om det inte finns någon markerad text.

void view.setSelection(Range intervall);

Ställer in markerad text till angivet intervall.

void view.removeSelectedText();

Tar bort den markerade texten. Om vyn inte har någon markerad text, händer ingenting.

void view.selectAll();

Markerar hela texten i dokumentet.

void view.clearSelection();

Rensar textmarkeringen utan att ta bort texten.

Programmeringsgränssnittet för dokumentet

När ett skript håller på att köras, finns det en global variabel document som representerar det för närvarande aktiva dokumentet. Det följande är en lista med alla tillgängliga funktioner i Document.

String document.fileName();

Returnerar dokumentets filnamn eller en tom sträng för osparade textbuffrar.

String document.url();

Returnerar dokumentets fullständiga webbadress eller en tom sträng för osparade textbuffrar.

String document.mimeType();

Returnerar dokumentets Mime-typ eller Mime-typen application/octet-stream om ingen lämplig Mime-typ kunde hittas.

String document.encoding();

Returnerar den nuvarande kodningen använd för att spara filen.

String document.highlightingMode();

Returnerar det allmänna färgläggningsläget som används för hela dokumentet.

String document.highlightingModeAt(Cursor pos);

Returnerar färgläggningsläget som används på den givna positionen i dokumentet.

Array document.embeddedHighlightingModes();

Returnerar ett fält med färgläggningslägen inbäddade i det här dokumentet.

bool document.isModified();

Returnerar true om dokumentet har osparade ändringar (är modifierat), annars false.

String document.text();

Returnerar dokumentets hela innehåll i en enda textsträng. Nya rader är markerade med nyradstecknet \n.

String document.text(int från_rad, int från_kolumn, int till_rad, int till_kolumn);
String document.text(Cursor från, Cursor till);
String document.text(Range intervall);

Returnerar texten i det angivna intervallet. Det rekommenderas att använda markör- och intervallbaserade versioner för bättre läsbarhet hos källkoden.

String document.line(int rad);

Returnerar den givna textraden som en sträng. Strängen är tom om den begärda raden är utanför tillgängligt intervall.

String document.wordAt(int rad, int kolumn);
String document.wordAt(Cursor markör);

Returnerar ordet på den angivna markörposition.

Range document.wordRangeAt(int rad, int kolumn);
Range document.wordRangeAt(Cursor markör);

Returnerar intervallet för ordet på den givna markörpositionen. Det returnerade intervallet är ogiltigt (se Range.isValid()) om textpositionen är efter ett radslut. Om det inte finns något ord vid den givna markörpositionen returneras ett tomt intervall.

Sedan: KDE 4.9

String document.charAt(int rad, int kolumn);
String document.charAt(Cursor markör);

Returnerar tacknet på den angivna markörpositionen.

String document.firstChar(int rad);

Returnerar det första tecknet på angiven rad som inte är ett blanktecken. Det första tecknet finns på kolumn 0. Om raden är tom, eller bara innehåller blanktecken, är den returnerade strängen tom.

String document.lastChar(int rad);

Returnerar det sista tecknet på angiven rad som inte är ett blanktecken. Om raden är tom, eller bara innehåller blanktecken, är den returnerade strängen tom.

bool document.isSpace(int rad, int kolumn);
bool document.isSpace(Cursor markör);

Returnerar sant om tecknet på den givna markörpositionen är ett blanktecken, annars falskt.

bool document.matchesAt(int rad, int kolumn, String text);
bool document.matchesAt(Cursor markör, String text);

Returnerar sant om given text matchar på den motsvarande markörpositionen, annars falskt.

bool document.startsWith(int rad, String text, bool hoppa_över_blanktecken);

Returnerar sant om raden börjar med text, annars falskt. Argumentet hoppa_över_blanktecken bestämmer om inledande blanktecken ignoreras.

bool document.endsWith(int rad, String text, bool hoppa_över_blanktecken);

Returnerar sant om raden slutar med text, annars falskt. Argumentet hoppa_över_blanktecken bestämmer om inledande blanktecken ignoreras.

bool document.setText(String text);

Anger hela dokumentets text.

bool document.clear();

Tar bort hela texten i dokumentet.

bool document.truncate(int rad, int kolumn);
bool document.truncate(Cursor markör);

Avkortar den givna raden på den givna kolumnen eller markörpositionen. Returnerar sant om det lyckas, eller falskt om den givna raden inte ingår i dokumentets intervall.

bool document.insertText(int rad, int kolumn, String text);
bool document.insertText(Cursor markör, String text);

Infogar text på den givna markörpositionen. Returnerar sant om det lyckas, eller falskt om dokumentet är skrivskyddat.

bool document.removeText(int från_rad, int från_kolumn, int till_rad, int till_kolumn);
bool document.removeText(Cursor från, Cursor till);
bool document.removeText(Range intervall);

Tar bort text i det givna intervallet. Returnerar sant om det lyckas, eller falskt om dokumentet är skrivskyddat.

bool document.insertLine(int rad, String text);

Infogar text på den givna raden. Returnerar sant om det lyckas, eller falskt om dokumentet är skrivskyddat eller raden inte ingår i dokumentets intervall.

bool document.removeLine(int rad);

Tar bort den givna textraden. Returnerar sant om det lyckas, eller falskt om dokumentet är skrivskyddat eller raden inte ingår i dokumentets intervall.

bool document.wrapLine(int rad, int kolumn);
bool document.wrapLine(Cursor markör);

Radbryter raden vid den givna markörpositionen. Returnerar sant om det lyckas, eller falskt, t.ex. om rad < 0.

Sedan: KDE 4.9

void document.joinLines(int startrad, int slutrad);

Sammanfogar rader från startrad till slutrad. Två på varandra följande rader åtskiljs alltid med exakt ett mellanslag.

int document.lines();

Returnerar antal rader i dokumentet.

bool document.isLineModified(int rad);

Returnerar sant om rad för närvarande innehåller osparad data.

Since: KDE 5.0

bool document.isLineSaved(int rad);

Returnerar sant om rad har ändrats, men dokumentet har sparats. Sålunda innehåller raden för närvarande ingen osparad data.

Since: KDE 5.0

bool document.isLineTouched(int rad);

Returnerar sant om rad för närvarande innehåller osparad data eller tidigare har ändrats.

Since: KDE 5.0

bool document.findTouchedLine(int startrad, bool ner);

Sök efter nästa ändrade rad med början på rad. Sökningen utförs antingen uppåt eller neråt beroende på sökriktningen angiven med ner.

Since: KDE 5.0

int document.length();

Returnerar antal tecken i dokumentet.

int document.lineLength(int rad);

Returnerar längden på rad.

void document.editBegin();

Startar en redigeringsgrupp för gruppering av ångra/gör om. Försäkra dig om att alltid anropa editEnd() lika många gånger som du anropar editBegin(). Att anropa editBegin() använder en referensräknare internt, dvs. anropet kan nästlas.

void document.editEnd();

Avslutar en redigeringsgrupp. Det sista anropet av editEnd() (dvs. det för det första anropet till editBegin()) avslutar redigeringssteget.

int document.firstColumn(int rad);

Returnerar det första tecknet som inte är ett blanktecken på given rad. Om det bara finns blanktecken på raden, är returvärdet -1.

int document.lastColumn(int rad);

Returnerar det sista tecknet som inte är ett blanktecken på given rad. Om det bara finns blanktecken på raden, är returvärdet -1.

int document.prevNonSpaceColumn(int rad, int kolumn);
int document.prevNonSpaceColumn(Cursor markör);

Returnerar kolumnen med ett tecken som inte är ett blanktecken med början på given markörposition genom att söka bakåt.

int document.nextNonSpaceColumn(int rad, int kolumn);
int document.nextNonSpaceColumn(Cursor markör);

Returnerar kolumnen med ett tecken som inte är ett blanktecken med början på given markörposition genom att söka framåt.

int document.prevNonEmptyLine(int rad);

Returnerar nästa rad som inte är tom och som innehåller tecken som inte är blanktecken, genom att söka bakåt.

int document.nextNonEmptyLine(int rad);

Returnerar nästa rad som inte är tom och som innehåller tecken som inte är blanktecken, genom att söka framåt.

bool document.isInWord(String tecken, int egenskap);

Returnerar sant, om givet tecken med given egenskap kan vara en del av ett ord, annars falskt.

bool document.canBreakAt(String tecken, int egenskap);

Returnerar sant, om givet tecken med given egenskap är lämpat att bryta en rad, annars falskt.

bool document.canComment(int startegenskap, int slutegenskap);

Returnerar sant om ett intervall som börjar och slutar med den givna egenskapen är lämpat att kommenteras bort, annars falskt.

String document.commentMarker(int egenskap);

Returnerar kommentarmarkören för enraderskommentarar för en given egenskap.

String document.commentStart(int egenskap);

Returnerar kommentarmarkören för början av flerraderskommentarer för en given egenskap.

String document.commentEnd(int egenskap);

Returnerar kommentarmarkören för slutet av flerraderskommentarer för en given egenskap.

Range document.documentRange();

Returnerar ett intervall som omfattar hela dokumentet.

Cursor documentEnd();

Returnerar en markör placerad på den sista radens sista kolumn i dokumentet.

bool isValidTextPosition(int rad, int kolumn);
bool isValidTextPosition(Cursor markör);

Returnerar sant om den angivna markörpositionen är placerad på en giltig textposition. En textposition är bara giltig om den finns i början av, mitten av eller slutet av en giltig rad. Dessutom är en textposition ogiltig om den är placerad i ett Unicode-surrogat.

Since: KDE 5.0

int document.attribute(int rad, int kolumn);
int document.attribute(Cursor markör);

Returnerar egenskapen på den angivna markörpositionen.

bool document.isAttribute(int rad, int kolumn, int egenskap);
bool document.isAttribute(Cursor markör, int egenskap);

Returnerar sant om egenskapen på den givna markörpositionen är lika med egenskap, annars falskt.

String document.attributeName(int rad, int kolumn);
String document.attributeName(Cursor markör);

Returnerar egenskapsnamnet som läsbar text. Det är lika med namnet itemData i syntaxfärgläggningsfilerna.

bool document.isAttributeName(int rad, int kolumn, String namn);
bool document.isAttributeName(Cursor markör, String namn);

Returnerar sant om egenskapsnamnet på en viss markörposition motsvara givet namn, annars falskt.

String document.variable(String nyckel);

Returnerar värdet på den begärda dokumentvariabeln nyckel. Om dokumentvariabeln inte finns, är returvärdet en tom sträng.

void document.setVariable(String nyckel, String värde);

Ställ in värdet på den begärda dokumentvariabeln nyckel.

Se också: Kate-dokumentvariabler

Sedan: KDE 4.8

int document.firstVirtualColumn(int rad);

Returnerar den virtuella kolumnen för det första tecknet som inte är ett blanktecken på den givna raden, eller -1 om raden är tom eller bara innehåller blanktecken.

int document.lastVirtualColumn(int rad);

Returnerar den virtuella kolumnen för det sista tecknet som inte är ett blanktecken på den givna raden, eller -1 om raden är tom eller bara innehåller blanktecken.

int document.toVirtualColumn(int rad, int kolumn);
int document.toVirtualColumn(Cursor markör);
Cursor document.toVirtualCursor(Cursor markör);

Konverterar den givna verkliga markörpositionen till en virtuell markörposition, och returnerar antingen ett heltal eller ett markörobjekt.

int document.fromVirtualColumn(int rad, int virtuell_kolumn);
int document.fromVirtualColumn(Cursor virtuell_markör);
Cursor document.fromVirtualCursor(Cursor virtuell_markör);

Konverterar den givna virtuella markörpositionen till en verklig markörposition, och returnerar antingen ett heltal eller ett markörobjekt.

Cursor document.anchor(int rad, int kolumn, Char tecken);
Cursor document.anchor(Cursor markör, Char tecken);

Söker bakåt efter det givna tecknet med början på den givna markören. Om exempelvis '(' anges som tecken, returnerar funktionen positionen på ett inledande '('. Det sker med referensräkning, dvs. andra '(...)' ignoreras.

Cursor document.rfind(int rad, int kolumn, String text, int egenskap = -1);
Cursor document.rfind(Cursor markör, String text, int egenskap = -1);

Söker bakåt efter den givna texten med lämplig egenskap. Argumentet egenskap ignoreras om det anges som -1. Den returnerade markören är ogiltig om texten inte kunde hittas.

int document.defStyleNum(int rad, int kolumn);
int document.defStyleNum(Cursor markör);

Returnerar standardstilen som används på den givna markörpositionen.

bool document.isCode(int rad, int kolumn);
bool document.isCode(Cursor markör);

Returnerar sant om egenskapen på given markörposition inte är lika med någon av följande stilar: dsComment, dsString, dsRegionMarker, dsChar, dsOthers.

bool document.isComment(int rad, int kolumn);
bool document.isComment(Cursor markör);

Returnerar sant, om egenskapen för tecknet på markörpositionen är dsComment, annars falskt.

bool document.isString(int rad, int kolumn);
bool document.isString(Cursor markör);

Returnerar sant, om egenskapen för tecknet på markörpositionen är dsString, annars falskt.

bool document.isRegionMarker(int rad, int kolumn);
bool document.isRegionMarker(Cursor markör);

Returnerar sant, om egenskapen för tecknet på markörpositionen är dsRegionMarker, annars falskt.

bool document.isChar(int rad, int kolumn);
bool document.isChar(Cursor markör);

Returnerar sant, om egenskapen för tecknet på markörpositionen är dsChar, annars falskt.

bool document.isOthers(int rad, int kolumn);
bool document.isOthers(Cursor markör);

Returnerar sant, om egenskapen för tecknet på markörpositionen är dsOthers, annars falskt.

Kapitel 7. Att anpassa KatePart

Kapitel 7. Att anpassa KatePart

Genom att välja InställningarAnpassa program... i menyn visar dialogrutan Anpassa. Dialogrutan kan användas för att ändra ett antal olika inställningar. Inställningarna som är tillgängliga för att ändras varierar beroende på vilken kategori som användaren väljer i den vertikala listan till vänster i dialogrutan. Förloppet kan styras med de tre knapparna längs rutans nederkant.

Du kan starta Hjälp-systemet, acceptera de nuvarande inställningarna och stänga dialogrutan med användning av knappen Ok, eller Avbryta förfarandet. Kategorierna Utseende, Teckensnitt och färger, Redigering, Öppna/spara och Utökningar beskrivs i detalj nedan.

Inställning av editorkomponenten

Den här gruppen innehåller alla sidor som hör till editorkomponenten i KatePart De flesta inställningarna här är förvalda, och kan överskridas genom att definiera en filtyp, genom dokumentvariabler eller genom att ändra dem per dokument under en redigeringssession.

Utseende

Allmänt

Dynamisk radbrytning

Om det här alternativet markeras, bryts textrader vid fönstrets kant på skärmen.

Dynamiska radbrytningsmarkörer (om tillämpliga)

Välj när dynamiska radbrytningsmarkörer ska visas, antingen Av, Följ radnummer eller Alltid på .

Justera dynamiskt radbrutna rader till indenteringsdjupet:

Aktiverar att dynamiskt radbrytna rader justeras vertikalt till den första radens indenteringsnivå. Det kan hjälpa till att göra kod och taggar mer läsbara.

Dessutom låter det dig att ställa in en maximal bredd av skärmen, som ett procenttal. Därefter justeras inte längre dynamiskt radbrytna rader vertikalt. Vid 50 % får exempelvis inte rader vars indenteringsdjup är mer än 50 % av skärmens bredd någon vertikal justering för efterföljande radbrutna rader.

Färgläggning av blanktecken
Markera tabulatorer

Editorn kommer att visa symbolen » som indikerar närvaron av en tabulator i texten.

Markera avslutande mellanslag

Editorn kommer att visa punkter som indikerar närvaron av extra blanktecken i slutet av rader.

Markörstorlek

Använd skjutreglaget för att ändra storlek på den synliga markören.

Avancerat

Visa indenteringslinjer

Om det här är markerat, visar editorn vertikala linjer för att hjälpa till att identifiera indenterade rader.

Markera område mellan samhörande parenteser

Om det här är aktiverat, markeras området mellan de valda samhörande parenteserna.

Animera matchande parenteser

Om aktiverad och man går till en parentes ({, [, ], },( eller )) animeras den motsvarande parentesen snabbt.

Fäll ihop första raden

Om aktiverad fälls den första raden ihop om möjligt. Det är användbart om filen börjar med en kommentar, såsom en copyright.

Kanter

Kanter
Visa vikmarkörer

Om det här alternativet är markerat, visar den aktuella vyn markeringar för kodvikning, om kodvikning är tillgänglig.

Visa förhandsgranskning av hopvikt kod

Om markerat, visas en förhandsgranskning av den hopvikta texten i en meddelanderuta när musen hålls över en hopvikt region.

Visa ikonkant

Om det här är markerat, ser du en ikonkant till vänster. Ikonkanten visar till exempel bokmärkesmarkeringar.

Visa radnummer

Om det här är markerat, ser du radnummer till vänster.

Visa markörer av radändringar

Om det här är markerat, visas markörer av radändringar. För mer information,se ”Indikering av radändringar”.

Visa rullningslistmarkeringar

Om det här alternativet är markerat visar aktuell vy markeringar på den vertikala rullningslisten. Markeringarna visar till exempel bokmärken.

Visa förhandsgranskning av text på rullningslist

Om alternativet är markerat, och du håller muspekaren över rullningslisten, visas en liten textförhandsgranskning med flera rader i det nuvarande dokumentet omkring pekarens position. Det låter dig snabbt gå till en annan del av dokumentet.

Visa rullningslistens miniavbildning

Om det här alternativet är markerat visar varje ny vy en miniavbildning av dokumentet på den vertikala rullningslisten.

För mer information om rullningslistens miniavbildning, se ”Rullningslistens miniavbildning”

Miniavbildningens bredd

Justerar bredden på rullningslistens miniavbildning, definierad i bildpunkter.

Rullningslisternas synlighet

Visa rullningslisten, dölj den eller visa bara rullningslisten när det behövs. Klicka med vänster musknapp på den blåa rektangeln för att visa radnummerintervallet för dokumentet som visas på skärmen. Håll vänster musknapp nertryckt utanför den blåa rektangeln för automatiskt förflyttning genom dokumentet.

Sortera menyn bokmärken
Enligt tillkomst

Varje nytt bokmärke läggs till längst ner, oberoende av var det är placerat i dokumentet.

Enligt position

Bokmärken ordnas enligt radnumret där de är placerade.

Teckensnitt och färger

Den här sidan i dialogrutan låter dig ställa in alla teckensnitt och färger i alla färgscheman du har, samt skapa nya scheman eller ta bort befintliga. Varje schema har en inställning av färger, teckensnitt, normal textstil och markeringstextstil.

KatePart väljer schemat som för närvarande är aktivt i förväg åt dig. Om du vill arbeta med ett annat schema, börja med att välja det med kombinationsrutan Schema. Du kan skapa ett nytt schema eller ta bort befintliga med knapparna Ny och Ta bort.

Längst ner på sidan kan du välja Standardschema för KatePart.

Normalt baserar KatePart sitt färgschema på det nuvarande färgschemat i KDE. DU kan återställa en enskild färg tillbaka till standardvärdet genom att klicka på återställningspilen till höger om posten i färgeditorn, eller så kan du återställa alla färger till standardvärdet genom att klicka på Använd KDE:s färgschema längst ner i panelen.

Tips

Du kan anpassa KDE:s färgschema i modulen Färger i systeminställningarna.

Färger

Editorns bakgrundsfärger
Textområde

Det här är förvald bakgrund för redigeringsområdet. Det kommer att vara den dominerande färgen i redigeringsområdet.

Markerad text

Det här är bakgrunden för markerad text. Förvalt värde är den globala markeringsfärgen, som är inställd i KDE:s färginställningar.

Aktuell rad

Ställ in färgen för aktuell rad. Att ställa in den något annorlunda jämfört med den normala textbakgrunden hjälper till att hålla fokus på den aktuella raden.

Färgläggning av sökning

Ställ in färgen på texten som matchar den senaste sökningen.

Färgläggning av ersättning

Ställ in färgen på texten som matchar den senaste ersättningsåtgärden.

Ikonkant
Bakgrundsområde

Färgen används för markeringar, radnummer och vikmarkörkanter till vänster i redigeringsvyn när de visas.

Radnummer

Färgen används för att visa radnummer till vänster i vyn när de visas.

Radbrytningsmarkör

Färgen används för att rita ett mönster till vänster om rader med dynamisk radbrytning när de är vertikalt justerade, samt för statiska radbrytningsmarkörer.

Kodvikning

Färgen används för att markera delen av koden som skulle kodvikas när du klickar på kodvikningspilen till vänster om ett dokument För mer information, se dokumentationen av kodvikning.

Ändrade rader

Färgen används för att färglägga rader som har ändrats men inte ännu sparats till vänster om ett dokument. För mer information se ”Indikering av radändringar”.

Sparade rader

Färgen används för att färglägga rader som har ändrats under den här sessionen och sparats till vänster om ett dokument. För mer information se ”Indikering av radändringar”.

Textdekorationer
Linje för stavfel

Färgen används för att indikera stavfel.

Tabulator- och mellanslagsmarkörer

Färgen används för att visa indikering av blanktecken, när de är aktiverade.

Indenteringslinje

Färgen används för att rita en linje till vänster om indenterade block, om funktionen är aktiverad.

Färglägg parenteser

Den här färgen används för att markera bakgrunden för matchande parenteser.

Markeringsfärger
Bokmärke

Färgen används för att ange bokmärken. För mer information, se ”Att använda bokmärken”.

Aktiv brytpunkt

Färgen används av GDB-insticksprogrammet för att ange en aktiv brytpunkt. För mer information, se dokumentationen av GDB-insticksprogrammet.

Nådd brytpunkt

Färgen används av GDB-insticksprogrammet för att ange en brytpunkt som du har nått under avlusning. För mer information, se dokumentationen av GDB-insticksprogrammet.

Inaktiv brytpunkt

Färgen används av GDB-insticksprogrammet för att ange en inaktiv brytpunkt. För mer information, se dokumentationen av GDB-insticksprogrammet.

Körning

Färgen används av GDB-insticksprogrammet för att ange raden som för närvarande håller på att köras. För mer information, se dokumentationen av GDB-insticksprogrammet.

Varning

Färgen används av bygginsticksprogrammet för att ange en rad som har orsakat en kompilatorvarning. För mer information, se dokumentationen av bygginsticksprogrammet.

Fel

Färgen används av bygginsticksprogrammet för att ange en rad som har orsakat ett kompilatorfel. För mer information, se dokumentationen av bygginsticksprogrammet.

Textmallar och snuttar
Bakgrund

Färgen används av Kates insticksprogram för textsnuttar för att markera bakgrunden för en textsnutt.

Redigerbar platsmarkör

Färgen används av Kates insticksprogram för textsnuttar för att markera en platsmarkör som du kan klicka på för att redigera manuellt.

Redigerbar fokuserad platsmarkör

Färgen används av Kates insticksprogram för textsnuttar för att markera platsmarkören som du för närvarande redigerar.

Icke-redigerbar platsmarkör

Färgen används av Kates insticksprogram för textsnuttar för att markera en platsmarkör som inte kan redigeras manuellt, såsom en som fylls i automatiskt. För mer information, se dokumentationen av Kates insticksprogram för textsnuttar.

Använd KDE:s färgschema

Genom att klicka på knappen ställs alla färger definierade ovan in att motsvara det nuvarande färgschemat definierat i KDE:s systeminställningar. För mer information se dokumentationen av KDE:s inställningsmodul Färger.

Den här knappen har ingen verkan om du inte använder KDE Plasma arbetsrymder, och kanske inte visas.

Teckensnitt

Här kan du välja det normala teckensnittet för schemat. Du kan välja bland alla teckensnitt som är tillgängliga i systemet, och ange en normal storlek och kodning. Ett textexempel visas längst ner i dialogrutan, så att du kan se effekten av det du väljer.

För mer information om hur man väljer ett teckensnitt, se avsnittet Välja teckensnitt i dokumentet KDE:s grunder.

Förvalda textstilar

De förvalda textstilarna ärvs av färgläggningstextstilarna, vilket gör det möjligt för editorn att visa text på ett mycket konsekvent sätt, till exempel använder kommentartext samma stil i nästan alla textformat som KatePart kan färglägga.

Namnet i listan med stilar använder stilen som är inställd för objektet, vilket ger en omedelbar förhandsgranskning när en stil ställs in.

Varje stil låter dig välja gemensamma egenskaper samt förgrunds- och bakgrundsfärger. För att inte använda en bakgrundsfärg, högerklicka och använd den sammanhangsberoende menyn.

Färgläggningstextstilar

Här kan du redigera textstilarna som används av en viss färgläggningsdefinition. Editorn väljer färgläggningen som används av aktuellt dokument i förväg. För att arbeta med en annan färgläggning, välja en i kombinationsrutan Färglägg ovanför listan med stilar.

Namnet i listan med stilar använder stilen som är inställd för objektet, vilket ger en omedelbar förhandsgranskning när en stil ställs in.

Varje stil låter dig välja gemensamma egenskaper samt förgrunds- och bakgrundsfärger. För att inte använda en bakgrundsfärg, högerklicka och använd den sammanhangsberoende menyn. Dessutom kan du se om en stil är samma som den förvalda stilen för objektet, och ställa in den till det om den inte är det.

Du märker att många färgläggningar innehåller andra färgläggningar representerade av grupper i stillistan. De flesta färgläggningar importerar till exempel färgläggningen Alerts, och många källkodsformat importerar färgläggningen Doxygen. Redigering av färger i grupperna påverkar bara stilarna när de används i det redigerade färgläggningsformatet.

Redigering

Allmänt

Statisk radbrytning

Radbrytning är en funktion som orsakar att editorn automatiskt börjar en ny rad med text och flyttar (bryter) markören till början på den nya raden. KatePart startar automatiskt en ny rad med text när den nuvarande raden når längden som anges av alternativet Bryt rader vid:.

Aktivera statisk radbrytning

Sätter på eller stänger av statisk radbrytning.

Visa statisk radbrytningsmarkör (om tillämplig)

Om det här alternativet är markerat, ritas en vertikal linje i radbrytningskolumnen som definieras i InställningarAnpassa editor... under fliken Redigering. Observera att radbrytningsmarkören bara ritas om du använder ett teckensnitt med fast breddsteg.

Bryt rader vid:

Om alternativet Aktivera statisk radbrytning är valt avgör det här värdet längden (i tecken) där editorn automatiskt påbörjar en ny rad.

Inmatningsläge

Det valda inmatningsläget aktiveras när en ny vy öppnas. Du kan fortfarande sätta på eller stänga av Vi-inmatningsläge för en viss vy från menyn Redigera.

Automatiska hakparenteser

När användaren skriver en vänsterparentes ([, (, eller {) skriver KatePart automatiskt in högerparentesen (}, ), eller ]) till höger om markören.

När text markeras, radbryts den markerade texten om ett av tecknen skrivs in.

Kopiera och klistra in
Kopiera eller klipp ut nuvarande rad om markering saknas

Om alternativet är aktiverat och textmarkeringen är tom, utförs åtgärderna kopiera och klipp ut för textraden på den verkliga markörpositionen.

Textnavigering

Förflyttning av textmarkör
Smarta Home- och End-tangenter

Om markerad, hoppar markören över blanktecken och går till början av radens text när tangenten Home trycks ner.

Page Up och Page Down flyttar markören

Det här alternativet ändrar beteendet hos markören om användaren trycker på tangenterna Page Up eller Page Down. Om det här inte är valt, behåller textmarkören sin relativa position i den synliga texten i KatePart när ny text blir synlig som ett resultat av åtgärden. Så om markören befinner sig mitt i den synliga texten när åtgärden sker kommer den att förbli där (utom när man kommer till början eller slutet). Om det här alternativet är valt, gör den första tangenttryckningen att markören antingen flyttas längst upp eller längst ner när en ny sida med text visas.

Centrera markör automatiskt:

Anger antalet rader som behålls synliga ovanför och under markören om möjligt.

Textmarkeringsläge
Normal

Markeringar skrivs över av inskriven text, och försvinner när markören flyttas.

Långlivat

Markeringar blir kvar också efter markören flyttas och text skrivs in.

Tillåt att rulla förbi dokumentets slut

Det här alternativet låter dig rulla förbi dokumentets slut. Det kan användas för att centrera dokumentets sista del vertikalt, eller placera det ovanpå den nuvarande vyn.

Backstegstangenten tar bort grundtecknet med diakritiska markeringar

När de är markerade, tas sammansatta tecken bort med sina diakritiska markeringar istället för att bara ta bort grundtecknet. Det är användbart för Indiska landsinställningar.

Indentering

Standardläge för indentering:

Välj automatiskt indenteringsläge som du normalt vill använda. Du rekommenderas starkt att använda Inget eller Normal här, och använda inställning av filtyper för att ställa in andra indenteringslägen för textformat som C/C++ kod eller XML.

Indentera med
Tabulatorer

När det här är aktiverat, infogar editorn tabulatortecken när du trycker på tabulatortangenten eller använder automatisk indentering.

Mellanslag

När det här är aktiverat, infogar editorn ett beräknat antal mellanslag enligt positionen i texten och inställningen tab-width när du trycker på tabulatortangenten eller använder automatisk indentering.

Tabulatorer och mellanslag

När det här är aktiverat, infogar editorn mellanslag som beskrivs ovan vid indentering eller när tabulatortangenten används i början av en rad, men infogar tabulatorer när tabulatortangenten används i mitten eller slutet av en rad.

Tabulatorbredd:

Detta ställer in antal mellanslag som visas istället för ett tabulatortecken.

Indenteringsbredd:

Indenteringsbredden är antalet mellanslag som används för att indentera en rad. Om indentera med tabulator är inställt, infogas ett tabulatortecken om indenteringen är jämnt delbar med tabulatorbredden.

Indenteringsegenskaper
Behåll extra mellanslag

Om alternativet är inaktiverat, justeras en rad till en multipel av bredden som anges med indenteringsbredd när indenteringsnivån ändras.

Justera indentering av text som klistrats in från klippbordet

Om alternativet markeras, indenteras text som klistras in från klippbordet. Genom att använda alternativet ångra kan indenteringen tas bort.

Indenteringsåtgärder
Backsteg i inledande blanktecken avindenterar

Om alternativet är markerat, minskar tangenten Backsteg indenteringsnivån om markören är placerad i de inledande blanktecknen på en rad.

Åtgärd för tabulatortangent (om det inte finns någon markering)

Om du vill att Tabulator ska justera nuvarande rad i nuvarande kodblock som i Emacs, gör Tabulator till en genväg till åtgärden Justera.

Gå alltid vidare till nästa tabulatorposition

Om alternativet är markerat, infogar alltid tangenten Tabulator blanktecken så att nästa tabulatorposition nås. Om alternativet Infoga mellanslag i stället för tabulatorer under fliken Allmänt på sidan Redigering är aktiverat, infogas mellanslag. Annars infogas ett enda tabulatortecken.

Öka alltid indenteringsnivån

Om alternativet är markerat, indenterar alltid tangenten Tabulator raden med det antal teckenpositioner som anges av Indenteringsbredd.

Öka indenteringsnivån om i inledande blanktecken

Om alternativet är markerat, indenterar antingen tangenten Tabulator nuvarande rad eller går vidare till nästa tabulatorposition. Om markörens position är på eller före det första tecknet som inte är ett blanktecken på raden, eller om det finns en markering, indenteras nuvarande rad med det antal teckenpositioner som anges av Indenteringsbredd. Om markörens position är efter det första tecknet som inte är ett blanktecken på raden och det inte finns någon markering, infogas blanktecken så att nästa tabulatorposition nås: om alternativet Infoga mellanslag i stället för tabulatorer under Redigering är aktiverat, infogas mellanslag. Annars infogas ett enda tabulatortecken.

Automatisk komplettering

Allmänt
Aktivera automatisk komplettering

Om aktiverad, dyker en ordkompletteringsruta automatiskt upp vid inskrivning, som visar en lista med texter som kompletterar texten som för närvarande är under markören.

Minimal ordlängd att komplettera

Medan du skriver in text, söker ordkomplettering efter ord i dokumentet som börjar med texten som redan skrivits in. Alternativet ställer in det minsta antal tecken som behövs för att aktivera ordkompletteringen och visa en kompletteringsruta.

Ta bort slutet vid komplettering

Ta bort slutet av ett föregående ord när kompletteringsobjektet väljes i en lista.

Nyckelordskomplettering

Om aktiverad, använder den inbyggda automatiska kompletteringen nyckelorden definierade av syntaxfärgläggningen.

Stavningskontroll

De här inställningsalternativen beskrivs i dokumentationen för modulen Stavningskontroll i systeminställningarna.

VI-inmatningsläge

Allmänt
Låt Vi-kommandon överskrida genvägar i Kate

Om markerad, överskrider Vi-kommandon KateParts inbyggda kommandon. Exempel: Ctrl+R gör om, och överskrider standardåtgärden (att visa dialogrutan för sökning och ersättning).

Visa relativa radnummer

Om det här är aktiverat, refererar aktuell rad alltid till rad 0. Rader ovanför och nedanför ökar radnumret relativt.

Tangentavbildning

Tangentavbildning används för att ändra betydelsen hos inskrivna tecken. Det låter dig flytta kommandon till andra tangenter, eller trycka på särskilda tangenter för att utföra en serie kommandon.

Exempel:

F2 -> I-- Esc

Lägger till !-- först på en rad när F2 trycks ner.

Öppna/spara

Allmänt

Filformat
Kodning

Det här definierar standardkodningen som ska användas för att öppna och spara filer, om den inte ändras i dialogrutan för att öppna eller spara, eller genom att använda en kommandoradsväljare.

Detektering av kodning

Välj ett värde i kombinationsrutan, för att antingen inaktivera automatisk detektering eller använda Allmän för att aktivera automatisk detektering av alla kodningar. Men eftersom den troligen bara detekterar UTF-8 eller UTF-16, erhålls bättre resultat genom att välja ett område för att använda anpassade metoder. Om varken kodningen vald som standard ovan, eller kodningen angiven i dialogrutan för att öppna eller spara motsvarar filens innehåll, utförs den här detekteringen.

Reservkodning

Det här definierar reservkodningen att prova för att öppna filer, om kodningen definierad som standard ovan, eller den som anges via dialogrutan för att öppna eller spara, inte motsvarar filens innehåll. Innan den provas, görs ett försök att bestämma kodningen genom att läsa en möjlig byte-ordningsmarkering i början av filen. Om någon sådan hittas, väljes riktig Unicode-kodning, annars utförs kodningsdetektering. Om båda misslyckas provas reservkodningen.

Radens slut

Välj radslutsläget du föredrar för det aktiva dokumentet. Du kan välja bland UNIX®, DOS/Windows® eller MacIntosh.

Automatisk detektering av radslut

Markera det här om du vill att editorn automatiskt ska detektera radslutstyp. Den första radslutstypen som hittas används för hela filen.

Aktivera byte-ordningsmarkering (BOM)

Byte-ordningsmarkören är en speciell sekvens i början av dokument kodade med Unicode. Den hjälper editorer att öppna textdokument med riktig Unicode-kodning. För mer information, se Byte Order Mark.

Radlängdsgräns

Tyvärr får KatePart dålig prestanda vid arbete med extremt långa rader, på grund av brister i Qt™. Av den orsaken bryter KatePart automatiskt rader när de är längre än antalet tecken som anges här. För att inaktivera det, ställ in den till 0.

Automatisk rensning vid spara
Ta bort mellanslag i slutet av en rad

Editorn tar automatiskt bort extra mellanslag i slutet på textrader när filen sparas. Du kan välja Aldrig för att inaktivera funktionen, På ändrade rader för att bara göra det på rader som du har ändrat sedan dokumentet senast sparades, eller I hela dokumentet för att ta bort dem ovillkorligt i hela dokumentet.

Lägg till radbrytning sist i filen när den sparas

Editorn lägger automatiskt till en nyrad i slutet av filen om det inte redan finns en när filen sparas.

Avancerat

Spara säkerhetskopia

Säkerhetskopiering när du sparar gör att KatePart kopierar filen på disk till <prefix><filnamn><suffix> innan ändringarna sparas. Suffixet har normalvärdet ~ och prefixet är normalt tomt.

Lokala filer

Markera det här om du vill ha säkerhetskopior av lokala filer när du sparar.

Fjärrfiler

Markera det här om du vill ha säkerhetskopior av fjärrfiler när du sparar.

Prefix

Skriv in prefixet som ska läggas till i början av den säkerhetskopierade filens namn.

Suffix

Skriv in suffixet som ska läggas till sist i den säkerhetskopierade filens namn.

Alternativ för växlingsfil

KatePart kan återställa (det mesta) som skrevs efter den senaste gången det sparats i händelse av en krasch eller strömavbrott. En växlingsfil (.swp.<filnamn>) skapas efter den första redigeringsåtgärden i ett dokument. Om användaren inte sparar ändringarna och KatePart kraschar, förblir växlingsfilen på disk. När en fil öppnas, kontrollerar KatePart om det finns en växlingsfil för dokumentet, och om det gör det, frågar användaren om förlorad data ska återställas eller inte. Användaren har också möjlighet att granska skillnaderna mellan originalfilen och den återställda filen. Växlingsfilen tas bort varje gång dokumentet sparas, och vid normal avslutning.

KatePart synkroniserar växlingsfilen på disk var 15:e sekund, men bara om det finns ändringar sedan den senaste synkroniseringen. Användaren kan inaktivera synkroniseringen av växlingsfiler om det önskas, genom att välja Inaktivera, men det kan leda till förlust av mer data.

När aktiverat, sparas växlingsfiler i samma katalog som filen. När Alternativ katalog väljes, skapas växlingsfiler i den angivna katalogen. Det är användbart för nätverksfilsystem för att undvika onödig nätverkstrafik.

Lägen och filtyper

Den här sidan låter dig överskrida förvalda inställningar för dokument med angivna Mime-typer. När editorn laddar ett dokument, kontrollerar den om det matchar filmasken eller Mime-typerna för en av de definierade filtyperna, och om det är fallet tillämpas variablerna som är definierade. Om mer än en filtyp matchas, används den med högst prioritet.

Filtyp:

Filtypen med högst prioritet är den som visas först i kombinationsrutan. Om fler filtyper hittas, anges de också.

Ny

Det här används för att skapa en ny filtyp. Efter du klickat på knappen, blir fälten nedanför tomma och du kan fylla i de egenskaper du vill ha för den nya filtypen.

Ta bort

För att ta bort en befintlig filtyp, markera den i kombinationsrutan och tryck på knappen Ta bort.

Egenskaper för aktuell filtyp

Filtypen med högst prioritet är den som visas först i kombinationsrutan. Om fler filtyper hittas, anges de också.

Namn:

Filtypens namn är texten i motsvarande menyalternativ. Namnet visas i menyn VerktygFiltyp.

Sektion:

Sektionsnamnet används för att organisera filtyper i menyer. Det används också i menyn VerktygFiltyp.

Variabler:

Strängen låter dig ställa in KateParts inställningar för filer som väljes av den här Mime-typen genom att använda variabler i KatePart. Du kan ställa in nästan alla inställningsalternativ, såsom färgläggning, indenteringsläge, etc.

Klicka på Redigera för att se en lista med alla tillgängliga variabler och deras beskrivningar. Markera kryssrutan till vänster för att aktivera en viss variabel och ange därefter variabelns värde till höger. Vissa variabler tillhandahåller en kombinationsruta för att välja möjliga värden medan andra kräver att du matar in ett giltigt värde manuellt.

För fullständig information om dessa variabler, se Anpassa med dokumentvariabler.

Färgläggning:

Om du skapar en ny filtyp, låter den här kombinationsrutan dig välja en filtyp för färgläggning.

Indenteringsläge:

Kombinationsrutan anger indenteringsläget för nya dokument.

Filändelser:

Jokerteckenmasken låter dig välja filer enligt filnamn. En typisk mask använder en asterisk och filändelsen, till exempel *.txt; *.text. Strängen är en lista med masker åtskilda av semikolon.

Mime-typer:

Visar en guide som hjälper dig att enkelt välja Mime-typer.

Prioritet:

Anger en prioritet för filtypen. Om fler filtyper väljer samma fil, används den med högst prioritet.

Ladda ner färgläggningsfiler...

Klicka på knappen för att ladda ner nya eller uppdaterade syntaxfärgläggningsbeskrivningar från KateParts webbplats.

Anpassa med dokumentvariabler

Anpassa med dokumentvariabler

Variabler i KatePart är KateParts implementering av dokumentvariabler, som liknar modelines i Emacs och Vi. I Kate-programdelen har raderna följande format: kate: VARIABELNAMN VÄRDE; [ VARIABELNAMN VÄRDE; ... ]. Raderna kan förstås finnas i en kommentar, om filen har ett format med kommentarer. Variabelnamn är enstaka ord (inga blanktecken), och allt fram till nästa semikolon är värdet. Semikolonet är nödvändigt.

Här är ett exempel på en variabelrad, som styr indenteringsinställningar för en C++, Java eller Javaskript-fil:

// kate: replace-tabs on; indent-width 4; indent-mode cstyle;

Notera

Bara de första och sista 10 raderna söks igenom efter variabelrader.

Dessutom kan dokumentvariabler placeras i en fil som heter .kateconfig i vilken katalog som helst, och de angivna inställningarna verkställs som om modelines skrivits in i varje fil i katalogen och i dess underkataloger. Dokumentvariabler i .kateconfig använder samma syntax som modelines, men med utökade alternativ.

Det finns variabler som stöder nästan alla inställningar i KatePart, och ytterligare insticksprogram kan använda variabler, som i så fall ska vara dokumenterade i insticksprogrammets dokumentation.

KatePart har stöd för att läsa inställningar från .editorconfig-filer, där biblioteket editorconfig är installerat. KatePart söker automatiskt efter .editorconfig så fort en fil öppnas. Den ger dock prioritet till .kateconfig-filer.

Hur KatePart använder variabler

När inställningarna läses, letar Kate-programdelen på följande ställen (i denna ordning):

  • Den allmänna inställningen.

  • Valfri sessionsdata.

  • Inställningen under "filtyp".

  • Dokumentvariabler i .kateconfig.

  • Dokumentvariabler i själva dokumentet.

  • Inställningar som görs under redigering från menyn eller kommandoraden.

Som du märker överskrids dokumentvariabler av ändringar som görs under körning. Så fort ett dokument sparas, läses dokumentvariablerna om, och skriver över ändringar som gjorts med menyalternativ eller från kommandoraden.

Alla variabler som inte anges nedan lagras i dokumentet och kan läsas av andra objekt, exempelvis insticksprogram, som kan använda dem för egna syften. Det variabelbaserade indenteringsläget använder till exempel dokumentvariabler för sin inställning.

Variablerna som anges här dokumenterar KatePart version 5.38. Fler variabler kan läggas till i framtiden. Det finns tre möjliga typer av värden för variabler, med följande giltiga uttryck:

  • BOOL - on|off|true|false|1|0

  • HELTAL - vilket heltal som helst

  • STRÄNG - allt annat

Tillgängliga variabler

auto-brackets [BOOL]

Aktivera automatisk infogning av hakparenteser.

auto-center-lines [HELTAL]

Ange rader för automatisk centrering.

background-color [STRÄNG]

Ställ in dokumentets bakgrundsfärg. Värdet måste vara något som kan tolkas som en giltig färg, till exempel #ff0000.

backspace-indents [BOOL]

Aktivera eller inaktivera avindentering när backsteg trycks ner.

block-selection [BOOL]

Sätt på eller stäng av blockmarkering.

bom | byte-order-mark | byte-order-marker [BOOL]

Aktivera eller inaktivera byte-ordningsmarkering (BOM) när filer sparas med Unicode-format (utf8, utf16, utf32).

Sedan: Kate 3.4 (KDE 4.4)

bracket-highlight-color [STRÄNG]

Ställer in färgen för markering av parenteser. Värdet måste vara något som kan tolkas som en giltig färg, till exempel #ff0000.

current-line-color [STRÄNG]

Ställer in färgen för nuvarande rad. Värdet måste vara något som kan tolkas som en giltig färg, till exempel #ff0000.

default-dictionary [STRÄNG]

Ställer in förvald ordlista använd vid stavningskontroll.

Sedan: Kate 3.4 (KDE 4.4)

dynamic-word-wrap [BOOL]

Sätter på eller stänger av dynamisk radbrytning.

eol | end-of-line [STRÄNG]

Ställer in radslutsläget. Giltiga inställningar är unix, mac och dos.

folding-markers [BOOL]

Sätter på eller stänger av visning av vikmarkörer.

folding-preview [BOOL]

Aktivera förhandsgranskning av vikning längs editorns kant.

font-size [HELTAL]

Ange dokumentets teckenstorlek i punkter.

font [STRÄNG]

Ställer in dokumentets teckensnitt. Värdet måste vara ett giltigt teckensnittsnamn, till exempel courier.

hl | syntax [STRÄNG]

Ställer in syntaxfärgläggning. Giltiga strängar är alla namn tillgängliga i menyerna. Skriv exempelvis helt enkelt C++ för C++.

icon-bar-color [STRÄNG]

Ställer in ikonradens färg. Värdet måste vara något som kan tolkas som en giltig färg, till exempel #ff0000.

icon-border [BOOL]

Sätter på eller stänger av visning av ikonkanten.

indent-mode [STRÄNG]

Ställer in automatiskt indenteringsläge. Alternativen none, normal, cstyle, haskell, lilypond, lisp, python, ruby och xml känns igen. Se avsnittet ”Att använda automatisk indentering” för detaljinformation.

indent-pasted-text [BOOL]

Aktivera eller inaktivera Justering av indentering för text som klistrats in från klippbordet.

Sedan: Kate 3.11 (KDE 4.11)

indent-width [HELTAL]

Ange indenteringsbredden.

keep-extra-spaces [BOOL]

Ställer in om extra mellanslag ska behållas när indenteringsbredden beräknas.

line-numbers [BOOL]

Sätt på eller stäng av visning av radnummer.

newline-at-eof [BOOL]

Lägg till en tom rad i slutet av filen (EOF) när dokumentet sparas.

Sedan: Kate 3.9 (KDE 4.9)

overwrite-mode [BOOL]

Sätter på eller stänger av överskrivningsläge.

persistent-selection [BOOL]

Sätt på eller stäng av långlivade markeringar.

replace-tabs-save [BOOL]

Sätter på eller stänger av konvertering av tabulatortecken till mellanslag.

replace-tabs [BOOL]

Sätter på eller stänger av dynamisk konvertering av tabulatortecken till mellanslag.

remove-trailing-spaces [STRÄNG]

Tar bort avslutande mellanslag när dokumentet sparas. Giltig alternativ är:

  • none, - eller 0: ta aldrig bort avslutande mellanslag.

  • modified, mod, + eller 1: ta bara bort avslutande mellanslag på ändrade rader. De ändrade raderna markeras av radändringssystemet.

  • all, * eller 2: ta bort avslutande mellanslag i hela dokumentet.

Sedan: KDE 4.10

scrollbar-minimap [BOOL]

Visa rullningslistens miniavbildning.

scrollbar-preview [BOOL]

Visa rullningslistens förhandsgranskning.

scheme [STRÄNG]

Ställer in färgschemat. Strängen måste vara namnet på ett färgschema som finns i dina inställningar för att ha någon effekt.

selection-color [STRÄNG]

Ställer in markeringsfärgen. Värdet måste vara något som kan tolkas som en giltig färg, till exempel #ff0000.

show-tabs [BOOL]

Sätter på eller stänger av synligt tabulatortecken.

smart-home [BOOL]

Sätter på eller stänger av smart Home-navigering.

tab-indents [BOOL]

Sätter på eller stänger av indentering med tabulatortecken.

tab-width [HELTAL]

Ställer in tabulatorvisningsbredden.

undo-steps [HELTAL]

Ange antalet ångra-steg som ska kommas ihåg ( = oändigt)

Observera: Användning avråds från sedan Kate 3 i KDE 4. Variabeln ignoreras. Det maximala antalet steg som kan ångras är obegränsat.

word-wrap-column [HELTAL]

Ställer in bredden för hård radbrytning.

word-wrap-marker-color [STRÄNG]

Ställer in färgen som markerar radbrytningar. Värdet måste vara något som kan tolkas som en giltig färg, till exempel #ff0000.

word-wrap [BOOL]

Sätter på eller stänger av hård radbrytning.

Utökade alternativ i .kateconfig-filer

KatePart letar alltid efter en .kateconfig-fil för lokala filer (inte fjärrfiler). Dessutom är det möjligt att ange alternativ baserat på jokertecken (filändelser) enligt följande:

kate: tab-width 4; indent-width 4; replace-tabs on;
kate-wildcard(*.xml): indent-width 2;
kate-wildcard(Makefile): replace-tabs off;

I exemplet använder alla filer tabulatorbredd (tab-width) 4 mellanslag, indenteringsbredd (indent-width) 4 mellanslag och tabulatorer ersätts expanderade till mellanslag. För alla *.xml-filer är dock indenteringsbredden inställd till 2 mellanslag. Och Makefile-filer använder tabulatorer, dvs. tabulatorer ersätts inte med mellanslag.

Jokertecken skiljs åt av semikolon, dvs. det går också att ange flera filändelser enligt följande:

kate-wildcard(*.json;*.xml): indent-width 2;

Dessutom kan Mime-typer också användas för att matcha vissa filer, för att t.ex. indentera all C++ källkodsfiler med 4 mellanslag kan man skriva:

kate-mimetype(text/x-c++src): indent-width 4;

Notera

Förutom stödet i .kateconfig-filer, stöds också dokumentvariabler som beror på jokertecken och Mime-typer i själva filerna som kommentarer.

Kapitel 8. Tack till och licens

Kapitel 8. Tack till och licens

KatePart och KWrite Copyright 2001-2014 av Kate-gruppen.

Baserad på den ursprungliga KWrite, som var copyright 2000 av Jochen Wilhelmy

Bidragsgivare:

  • Christoph Cullmann

  • Michael Bartl

  • Phlip

  • Anders Lund

  • Matt Newell

  • Joseph Wenninger

  • Jochen Wilhelmy

  • Michael Koch

  • Christian Gebauer

  • Simon Hausmann

  • Glen Parker

  • Scott Manson

  • John Firebaugh

Dokumentationen om KatePart är baserad på den ursprungliga dokumentationen av KWrite, ändrad för att vara relevant för alla användare av KatePart.

Den ursprungliga dokumentationen av KWrite är skriven av Thad McGinnis , med många ändringar av Christian Tibirna . Konvertering till docbook och korrekturläsning av Lauri Watts och uppdaterad av Anne-Marie Mahfouf och Anders Lund

Den nuvarande dokumentationen av KatePart underhålls av T.C. Hollingsworth . Skicka gärna kommentarer eller förslag till utvecklingslistan för KatePart eller skicka in en felrapport med KDE:s felspårningssystem.

Översättning Stefan Asserhäll

Den här dokumentationen licensieras under villkoren i GNU Free Documentation License.

Det här programmet licensieras under villkoren i GNU General Public License.

Kapitel 9. Vi-inmatningsläget

Kapitel 9. Vi-inmatningsläget

Erlend Hamberg

Översättare: Stefan Asserhäll

Vi-inmatningsläge

Målet för VI-läget är inte att vara en fullständig ersättning av Vim och stödja alla funktioner i Vim. Dess mål är att göra Vim-sättet att redigera (och vanorna inlärda med Vim) tillgängligt för program som använder texteditorn KatePart som intern editor.

VI-lägets mål är att integreras väl med programmet och skilja sig från Vims beteende när det är lämpligt. Exempelvis öppnas en dialogruta för att spara med :w i KateParts VI-läge.

För att aktivera VI-inmatningsläget för alla nya vyer, gå till InställningarAnpassa KatePart...+RedigeringVi-inmatningsläge. Under denna flik kan du ställa in alternativ för VI-inmatningsläget samt definiera och redigera tangentbindningarna för läget. Vi-inmatningsläge kan också växlas med inställningen Vi-inmatningsläge i menyn Redigera. (Normal genväg är Meta+Ctrl+V, där Meta oftast är Fönster-tangenten).

Notera

Många tangentbordskommandon i VI-läget är skiftlägeskänslig, i motsats till de flesta tangentbordsgenvägar i KDE. Det betyder att y och Y är olika kommandon. För att skriva in kommandot y (ryck ut), försäkra dig om att Caps Lock inte är aktivt och tryck på Y. För att skriva in kommandot Y (ryck ut till radens slut), tryck på Skift+Y.

Detta gäller inte för kommandon som använder Ctrl-tangenten, vilka kan skrivas in oberoende av värdet på Caps Lock och utan att hålla ner Skift. Dock kräver vissa kommandon användning av Ctrl-tangenten följt av en annan tangent som är skiftlägeskänslig. För att exempelvis skriva in Ctrl+Wh (byt till delad vy höger) försäkra dig om att Caps Lock inte är aktivt, tryck på Ctrl+W, släpp, och tryck därefter på H.

Funktioner inkompatibla med Vim

Det finns bara ett fåtal funktioner i KateParts VI-läge som är inkompatibla med Vim (om man inte räknar saknade funktioner). De listas nedan tillsammans med respektive orsak.

  • KatePart: U och Ctrl+R är gör om.

    Vim: Ctrl+R är vanlig gör om, U används för att ångra alla senaste ändringarna på en rad.

    Orsaken att låta U fungera som ångra i KateParts VI-läge är att genvägen Ctrl+R normalt används av KateParts ersättningsfunktion (sök och ersätt). Normalt överskrider inte VI-läget KateParts genvägar (det kan ställas in i InställningarAnpassa KatePart...+RedigeringVi-inmatningsläge), och därför måste åtgärden Gör om också vara tillgänglig som en vanlig tangent. Dessutom motsvarar inte beteendet hos kommandot U i Vim KateParts interna ångringssystem väl, så det skulle hur som helst inte vara trivialt att stödja.

  • KatePart: print visar dialogrutan Skriv ut.

    Vim: print skriver ut raderna i det angivna intervallet, liksom i dess föregångare ed.

    Kommandon som :print är inte bara tillgängliga i VI-läge, utan också för användare som använder KatePartvanligt sätt. Därför visar kommandot :print utskriftsdialogrutan, med principen att minimera överraskningar istället för att härma Vims beteende.

  • KatePart: Y rycker ut till radens slut.

    Vim: Y rycker ut hela raden, precis som yy.

    Vims beteende för kommandot Y är i praktiken ett fel. Både för ändrings- och borttagningskommandon utför cc/ dd åtgärden för aktuell rad och C/D fungerar från markörens kolumn till radens slut. Dock rycker både yy och Y ut aktuell rad. I KateParts VI-läge rycker Y ut till radens slut. Det beskrivs som mer logiskt i Vims dokumentation.

  • KatePart: O och o påbörjar [antal] nya rader och går till infogningsläge.

    Vim: O och o påbörjar en ny rad och infogar text [antal] gånger när infogningsläget lämnas.

    Det har i huvudsak gjorts som en följd av att ha stött på många som blivit förvirrade av beteendet på en Vim IRC-kanal (#vim på Freenode).

Byta lägen

  • Normalt läge låter dig ange kommandon för att navigera eller redigera dokumentet, och är förvalt läge. Du kan återgå till det från vilket annat läge som helst genom att trycka på Esc.

  • Visningsläge låter dig markera text i ett dokument. De flesta kommandon från normalläget är också giltiga i detta läget. Du kan gå till det genom att trycka på v för att markera tecken, eller V för att markera rader.

  • Infogningsläge låter dig redigera dokumentet direkt. Du kan gå till det genom att trycka på i eller ett av flera andra kommandon som listas nedan.

  • Kommandoläget aktiverar KateParts kommandorad, vilket möjliggör att köra många kommandon tillgängliga i Vi-implementeringar samt vissa specifika för KatePart. För mer information om dessa kommandon, se ”Editorkomponentens kommandorad”. För att använda det, tryck på :, skriv in kommandot och tryck på returtangenten.

Integrering med funktioner i Kate

  • Visuellt läge aktiveras automatiskt när text markeras med musen. Det aktiveras också när funktioner i Kate som markerar text används, såsom Markera alla (antingen från menyn eller via Ctrl+A).

  • Markörer i Vi och bokmärken i Kate är integrerade. När en markör skapas i VI-läge, skapas ett motsvarande bokmärke i Kate, och dyker upp i menyn Bokmärken. Omvänt, när ett bokmärke skapas i Kate, skapas en motsvarande markör i Vi på kolumn 0 också.

Kommandon som stöds i normalt och visningsläge

a

Gå till infogningsläge, lägg till efter markören

A

Gå till infogningsläge, lägg till efter raden

i

Gå till infogningsläge, lägg till före markören

Insert

Gå till infogningsläge, lägg till före markören

I

Gå till infogningsläge, infoga före första tecken på raden som inte är ett blanktecken

gi

Gå till infogningsläge, lägg till före stället där det senaste infogningsläget lämnades

v

Gå till visningsläge, markera tecken

V

Gå till visningsläge, markera rader

Ctrl+v

Gå till visningsläge, markera block

gb

Gå till visningsläge, markera den senaste markeringen igen

o

Påbörja en ny rad under den aktuella raden

O

Påbörja en ny rad ovanför den aktuella raden

J

Kombinera rader

c

Ändra: Följ med en förflyttning för att ta bort och gå till infogningsläge

C

Ändra till radens slut: Ta bort till radens slut och gå till infogningsläge

cc

Ändra rad: Ta bort till raden och gå till infogningsläge

s

Ersätt tecken

S

Ersätt rad

dd

Ta bort rad

d

Följ med en förflyttning för att ta bort

D

Ta bort till radens slut

x

Ta bort tecken till höger om markören

Delete

Ta bort tecken till höger om markören

X

Ta bort tecken till vänster om markören

gu

Följ med en förflyttning för att ändra till små bokstäver

guu

Gör den aktuella raden till små bokstäver

gU

Följ med en förflyttning för att ändra till stora bokstäver

gUU

Gör den aktuella raden till stora bokstäver

y

Följ med en förflyttning för att rycka ut (kopiera)

yy

Ryck ut (kopiera) rad

Y

Ryck ut (kopiera) rad

p

Klistra in efter markören

P

Klistra in före markören

]p

Klistra in efter markören indenterat

[p

Klistra in före markören indenterat

r

Följ med ett tecken för att ersätta tecknet efter markören

R

Gå till ersättningsläge

:

Gå till kommandoläge

/

Sök

u

Ångra

Ctrl+R

Gör om

U

Gör om

m

Ange markering (kan användas av senare förflyttningar)

n

Sök igen

N

Sök föregående

>>

Indentera rad

<<

Avindentera rad

>

Indentera rader

<

Avindentera rader

Ctrl+F

Sida ner

Ctrl+B

Sida upp

ga

Skriv ut tecknets ASCII-värde

.

Upprepa senaste ändring

==

commandAlignLine

=

commandAlignLines

~

Ändra skiftläge för aktuellt tecken

Ctrl+S

Dela vyn horisontellt

Ctrl+V

Dela vyn vertikalt

Ctrl+W, w

Gå cykliskt till nästa delade fönster

Ctrl+W, h

Ctrl+W Vänster

Gå till det delade fönstret till vänster

Ctrl+W, l

Ctrl+W Höger

Gå till det delade fönstret till höger

Ctrl+W, k

Ctrl+W Upp

Gå till det delade fönstret ovanför

Ctrl+W, j

Ctrl+W Ner

Gå till det delade fönstret nedanför

Förflyttningar som stöds

Dessa kan användas för att flytta omkring i dokumentet i Normalt läge eller Visningsläge, eller i samband med något av ovanstående kommandon. De kan föregås av ett antal, vilket anger hur många av motsvarande förflyttningar som ska göras.

h

Vänster

Vänsterpil

Vänster

Baksteg

Vänster

j

Ner

Neråtpil

Ner

k

Upp

Uppåtpil

Upp

l

Höger

Högerpil

Höger

Mellanslag

Höger

$

Radens slut

End

Radens slut

0

Radens första tecken (kolumn 0)

Home

Radens första tecken

^

Radens första tecken som inte är ett blanktecken

f

Följ av tecken för att flytta till höger om markören

F

Följ av tecken för att flytta till vänster om markören

t

Följ med tecken höger om markören att gå till, och placera markören på tecknet före det

T

Följ med tecken vänster om markören att gå till, och placera markören på tecknet före det

gg

Första raden

G

Sista raden

w

Nästa ord

W

Nästa ord åtskilt av blanktecken

b

Föregående ord

B

Föregående ord åtskilt av blanktecken

e

Ordets slut

E

Ordets slut åtskilt av blanktecken

ge

Föregående ords slut

gE

Föregående ords slut åtskilt av blanktecken

|

Följ med kolumnnummer för att gå till den kolumnen

%

Följ med ett objekt för att gå till det objektet

`

Markera

Första tecken på raden som inte är ett blanktecken där markeringen är

[[

Föregående inledande hakparentes

]]

Nästa inledande hakparentes

[]

Föregående avslutande hakparentes

][

Nästa avslutande hakparentes

Ctrl+I

Gå framåt till nästa position

Ctrl+O

Gå bakåt till föregående position

H

Gå till skärmens första rad

M

Gå till raden på skärmens mitt

L

Gå till skärmens sista rad

%procentvärde

Gå till angivet procentvärde av dokumentet

gk

Gå en rad uppåt visuellt (när dynamisk radbrytning används)

gj

Gå en rad neråt visuellt (när dynamisk radbrytning används)

Ctrl+Vänsterpil

Gå ett ord åt vänster

Ctrl+Högerpil

Gå ett ord åt höger

Textobjekt som stöds

De kan användas för att markera vissa delar av ett dokument.

iw

Inre ord: Ord inklusive blanktecken

aw

Ett ord: Ord exklusive blanktecken

i"

Föregående dubbla citationstecken (") till nästa dubbla citationstecken, inklusive citationstecken

a”

Föregående dubbla citationstecken (") till nästa dubbla citationstecken, exklusive citationstecken

i'

Föregående enkla citationstecken (') till nästa enkla citationstecken, inklusive citationstecken

a'

Föregående enkla citationstecken (') till nästa enkla citationstecken, exklusive citationstecken

i(

Föregående inledande parentes [(] till nästa avslutande parenthesis [)], inklusive parentesen

a(

Föregående inledande parentes [(] till nästa avslutande parentes [)], exklusive parenteserna

i[

Föregående inledande hakparentes ([) till nästa avslutande hakparentes (]), inklusive parenteserna

a[

Föregående inledande hakparentes ([) till nästa avslutande hakparentes (]), exklusive parenteserna

i{

Föregående inledande klammerparentes ({) till nästa avslutande klammerparentes (}), inklusive parenteserna

a{

Föregående inledande klammerparentes ({) till nästa avslutande klammerparentes (}), exklusive parenteserna

i<

Föregående inledande vinkelparentes (<) till nästa avslutande vinkelparentes (>), inklusive parenteserna

a<

Föregående inledande vinkelparentes (<) till nästa avslutande vinkelparentes (>), exklusive parenteserna

i`

Föregående grava accent (`) till nästa grava accent, inklusive accenterna

a`

Föregående grava accent (`) till nästa grava accent, exklusive accenterna

Kommandon i infogningsläge som stöds

Ctrl+D

Avindentera

Ctrl+T

Indentera

Ctrl+E

Infoga nerifrån

Ctrl+Y

Ta bort ord

Ctrl+W

Ta bort ord

Ctrl+U

Ta bort rad

Ctrl+J

Ny rad

Ctrl+H

Ta bort tecken bakåt

Ctrl+Home

Gå till första tecknet i dokumentet

Ctrl+R n

Infoga innehållet i register n

Ctrl+O, kommando

Gå till normalt läge för endast ett kommando

Ctrl+A

Inkrementera talet som för närvarande är markerat

Ctrl+X

Dekrementera talet som för närvarande är markerat

Komma-textobjektet

Objektet saknas i Vim. Komma-textobjektet gör det enkelt att ändra parameterlistor i C-liknande språk och andra listor åtskilda med kommatecken. Det är egentligen området mellan två kommatecken eller mellan ett kommatecken och en parentes. På raden som visas i illustrationen är de tre områden som textobjektet kan omfatta färglagda.

Ett exempel på komma-textobjekt

Intervall för komma-textobjekt. Om markören exempelvis är på arg2, skulle ci, (ändra inre kommatecken) ta bort double arg2 och placera markören mellan de två kommatecknen i infogningsläge. Ett mycket bekvämt sätt att ändra en funktions parametrar.

Saknade funktioner

Som tidigare nämnts, är inte målet med KateParts VI-läge att stödja 100 % av Vims funktioner.

Appendix A. Reguljära uttryck

Appendix A. Reguljära uttryck

Anders Lund

Översättare: Johan Thelmén
Detta appendix innehåller en kortfattad, men förhoppningsvis tillräcklig och heltäckande introduktion till de reguljära uttryckens  värld. Det dokumenterar reguljära uttryck på den form som är tillgänglig i KatePart, som inte är likadana som reguljära uttryck i Perl, och inte heller i till exempel grep.

Inledning

Reguljära uttryck ger oss en möjlighet att beskriva ett möjligt innehåll i en textsträng på ett sätt som enkelt kan förstås av programvara, så att den kan undersöka om texten matchar, och för mer avancerade tillämpningar, ge möjlighet att spara delar av texten som matchar.

Ett exempel: Säg att du vill leta i en text efter stycken som börjar med något av namnen Henrik eller Pernilla, följt av någon form av verbet säga.

Med en normal sökning, skulle du börja med att leta efter det första namnet, Henrik, kanske följt av s på det här sättet: Henrik s, och medan du letar efter träffar måste du bortse från alla de som inte inleder ett stycke, samt de där ordet som börjar med s inte var antingen säger, sade etc. Och därefter måste du förstås repetera allt för nästa namn ...

Med reguljära uttryck, kan den här uppgiften utföras med en enda sökning, och med högre noggrannhet.

För att åstadkomma detta, definierar reguljära uttryck detaljerade regler för att beskriva en generell sträng som ska matcha. Vårt exempel, som vi kan beskriva så här med ord: En rad som börjar antingen med Henrik eller Pernilla (möjligen efter upp till fyra mellanslag eller tabulatortecken), följt av ett mellanslag, följt av s och sedan antingen äger eller ade, skulle kunna uttryckas med följande reguljära uttryck:

^[ \t]{0,4}(Henrik|Pernilla) s(äger|ade)

Ovanstående exempel demonstrerar alla fyra huvudkoncepten i moderna reguljära uttryck, nämligen:

  • Mönster

  • Påståenden

  • Kvalificering

  • Bakåtreferenser

Hatten (^) som inleder uttrycket är ett påstående, som bara är sant om den följande strängen som matchar är först på raden.

Strängarna [ \t] och (Henrik|Pernilla) s(äger|ade) är mönster. Det första är en teckenklass som antingen matchar ett blanktecken eller ett (horisontellt) tabulatortecken. Det andra mönstret innehåller först ett delmönster som antingen matchar Henrik eller Pernilla, därefter en del som exakt matchar strängen s och slutligen ett delmönster som antingen matchar äger eller ade.

Strängen {0,4} är en kvalificering som säger allt från noll upp till fyra av det föregående.

Eftersom programvara för reguljära uttryck stöder konceptet med bakåtreferenser, så sparas hela den matchande delen av strängen, samt delmönster som finns mellan parenteser. Givet något sätt att komma åt de här referenserna, skulle vi kunna få tag på hela matchningen (när man söker i ett textdokument i en editor med ett reguljärt uttryck, så visas den ofta markerad), eller namnet som hittades, eller den sista delen av verbet.

I sin helhet, så matchar uttrycket vad vi ville att det skulle göra, och bara det.

Följande avsnitt beskriver i detalj hur man skapar och använder mönster, teckenklasser, påståenden, kvalificering och bakåtreferenser. Det sista avsnittet ger några användbara exempel.

Mönster

Mönster

Mönster består av vanliga strängar och teckenklasser. Mönster kan innehålla delmönster, vilket är mönster som är inneslutna i parenteser.

Undanta tecken

I mönster och teckenklasser har vissa tecken en särskilt mening. För att uttryckligen matcha något av de här tecknen, måste de markeras eller undantas för att tala om för programvaran för reguljära uttryck att den ska tolka sådana tecken uttryckligen.

Det här görs genom att lägga till ett bakstreck (\) före tecknet.

Programvaran för reguljära uttryck ignorerar tecken som undantas även om de inte har någon särskild betydelse i sammanhanget, så att undanta till exempel ett j (\j) är säkert. Om du är tveksam om ett tecken kan ha en särskild betydelse, kan du därför alltid undanta det på ett säkert sätt.

Undantag omfattar förstås också bakstrecket själv, för att uttryckligen matcha ett sådant, skulle du skriva \\.

Teckenklasser och förkortningar

En teckenklass är ett uttryck som matchar ett tecken i en mängd angivna tecken. I reguljära uttryck definieras teckenklasser genom att ange de giltiga tecknen i klassen inom hakparenterser, [], eller genom att använda en av de förkortade klasserna som beskrivs nedan.

Enkla teckenklasser innehåller bara uttryckligen ett eller flera tecken, till exempel [abc] (som matchar något av tecknen a, b eller c) eller [0123456789] (som matchar alla siffror).

Eftersom bokstäver och siffror har en logisk ordning, kan du förkorta dem genom att ange intervall: [a-c] är samma sak som [abc] och [0-9] är samma sak som [0123456789]. Att kombineras dessa sammansättningar, till exempel med [a-fynot1-38] är fullständigt riktigt (detta skulle förstås matcha antingen a,b,c,d, e,f,y,n,o,t, 1,2,3 eller 8).

Eftersom stora bokstäver är andra tecken än motsvarande små bokstäver, så måste du alltså skriva [aAbB], för att skapa en teckenklass som matchar både de små och stora bokstäverna a eller b.

Det är förstås möjligt att skapa en negativ klass som matchar allting utom. För att göra detta lägg till en hatt (^) först i klassen:

[^abc] matchar alla tecken utom a, b eller c.

Förutom uttryckliga tecken, definieras några förkortningar, som gör livet lite enklare:

\a

Det här matchar ASCII-tecknet BEL (0x07).

\f

Det här matchar ASCII-tecknet ny sida (FF, 0x0C).

\n

Det här matchar ASCII-tecknet nyrad (LF, 0x0A, Unix nyrad).

\r

Det här matchar ASCII returtecken (CR, 0x0D).

\t

Det här matchar ASCII-tecknet horisontell tabulator (HT, 0x09).

\v

Det här matchar ASCII-tecknet vertikal tabulator (VT, 0x0B).

\xhhhh

Det här matchar Unicode-tecknet som motsvarar det hexadecimala värdet hhhh (mellan 0x0000 och 0xFFFF). \0ooo (dvs. \noll ooo) matchar ASCII/Latin-1 tecknet som motsvarar det oktala värdet ooo (mellan 0 och 0377).

. (punkt)

Det här matchar vilket tecken som helst (inklusive nyrad).

\d

Det här matchar en siffra. Samma som [0-9].

\D

Det här matchar allt utom en siffra. Samma som [^0-9] eller [^\d].

\s

Det här matchar ett blanktecken. Nästan samma sak som [ \t\n\r].

\S

Det här matchar allt utom ett blanktecken. Nästan samma sak som [^ \t\r\n], och samma som [^\s].

\w

Matchar alla ord-tecken - i det här fallet alla bokstäver eller siffror. Observera att understreck (_) inte matchas, vilket är fallet för motsvarande reguljära uttryck i Perl. Samma som [a-zA-Z0-9].

\W

Matchar alla tecken som inte ingår i ord - allt utom bokstäver eller siffror. Samma som [^a-zA-Z0-9] eller [^\w].

De förkortade klasserna kan användas inne i en annan klass. För att till exempel matcha ett ord-tecken, ett mellanslag eller en punkt, skulle du kunna skriva [\w \.].

Notera

POSIX-beskrivningen av klasser [:<klassnamn>:] stöds inte för närvarande.

Tecken med särskild betydelse inne i teckenklasser

Följande tecken har en särskild betydelse inne i konstruktionen [] för teckenklasser, och måste undantas för att användas uttryckligen i en teckenklass:

]

Avslutar teckenklassen. Måste undantas om det inte är det allra första tecknet i klassen (kan följa en hatt som inte undantas).

^ (hatt)

Anger en negativ klass, om det är det första tecknet. Måste undantas för att uttryckligen matcha om det är det första tecknet i klassen.

- (minus)

Anger ett logiskt intervall. Måste alltid undantas inne i en teckenklass.

\ (bakstreck)

Undantagstecknet. Måste alltid undantas.

Alternativ: matchar en av

Om du vill matcha en av ett antal olika mönster, kan du skilja dem åt med | (ett vertikalt streck).

För att till exempel antingen hitta John eller Harry kan du använda uttrycket John|Harry.

Delmönster

Delmönster är mönster som innesluts i parenteser, och som har flera användningar i de reguljära uttryckens värld.

Ange alternativ

Du kan använda ett delmönster för att gruppera ett antal alternativ i ett större mönster. Alternativen delas av tecknet | (vertikalt streck).

För att till exempel matcha antingen orden int, float eller double, skulle du kunna använda mönstret int|float|double. Om du bara vill hitta ordet om det följs av blanktecken och därefter några bokstäver, placera alternativen i ett delmönster: (int|float|double)\s+\w+.

Spara text som matchar (bakåtreferenser)

Om du vill använda en bakåtreferens, använd ett delmönster för att komma ihåg önskad del av mönstret.

Om du till exempel vill hitta två förekomster av samma ord åtskilda av ett kommatecken och möjligen några blanktecken, skulle du kunna skriva (\w+),\s*\1. Delmönstret \w+ skulle hitta en grupp med ord-tecken, och hela uttrycket skulle matcha om de följdes av ett komma, noll eller flera blanktecken och sedan en likadan grupp med ord-tecken. (Strängen \1 refererar till det första delmönstret inneslutet i parenteser).

Notera

För att undvika tvetydigheter vid användning av \1 med efterföljande siffror (t.ex. kan \12 vara det tolfte delmönstret eller bara det första delmönstret med 2) använder vi \{12} som syntax för delmönster med flera siffror.

Exempel:

  • \{12}1 är använd delmönster 12

  • \123 är använd delmönster 1 därefter 23 som normal text

Påståenden för sökning framåt

Ett påstående för sökning framåt är ett delmönster, som antingen börjar med ?= eller ?!.

För att till exempel uttryckligen matcha strängen Bill men bara om den inte följs av Gates, skulle du kunna använda det här uttrycket: Bill(?! Gates). (Det här skulle hitta Bill Clinton samt Billy the kid, men tyst ignorera de andra träffarna).

Delmönster som används för påståenden sparas inte.

Se också Påståenden.

Tecken med särskild betydelse inne i mönster

Följande tecken har särskild betydelse inne i mönster, och måste undantas om du uttryckligen vill matcha dem:

\ (bakstreck)

Undantagstecknet.

^ (hatt)

Anger början på strängen.

$

Anger slutet på strängen.

() (vänster och höger parentes)

Anger delmönster.

{} (vänster och höger klammer)

Anger numerisk kvalificering.

[] (vänster och höger hakparentes)

Anger teckenklasser.

| (vertikalt streck)

Logiskt ELLER. Skiljer alternativ.

+ (plustecken)

Kvalificering, en eller flera.

* (asterisk)

Kvalificering, noll eller flera.

? (frågetecken)

Ett extra tecken. Kan tolkas som en kvalificering, noll eller ett.

Kvalificering

Kvalificering

En kvalificering låter ett reguljärt uttryck antingen matcha ett angivet antal eller intervall av ett tecken, en teckenklass eller ett delmönster.

En kvalificering innesluts av klamrar ({ och }) och har den allmänna formen {[minimalt antal][,[maximalt antal]]}.

Användningen förklaras bäst med exempel:

{1}

Exakt en förekomst

{0,1}

Noll eller en förekomst

{,1}

Samma sak, med mindre ansträngning ;)

{5,10}

Minst 5 men maximalt 10 förekomster

{5,}

Minst 5 förekomster, inget maximum

Det finns dessutom några förkortningar:

* (asterisk)

liknar {0,}, hittar ett godtyckligt antal förekomster.

+ (plustecken)

liknar {1,}, åtminstone en förekomst.

? (frågetecken)

liknar {0,1}, noll eller en förekomst.

Glupskt beteende

När kvalificeringar utan maximum används, så matchar reguljära uttryck normalt så mycket av söksträngen som möjligt, ett beteende som ofta kallas för glupskt.

Modern programvara för reguljära uttryck tillhandahåller en möjlighet att stänga av det glupska beteendet, även om det är det grafiska gränssnittet som måste ge dig tillgång till den här funktionen. En sökdialogruta som tillhandahåller sökning med reguljära uttryck skulle kunna ha en kryssruta som heter Minimal matchning, och borde också ange att glupskt beteende är det normala.

Exempel i sammanhang

Här är några exempel på att använda kvalificering.

^\d{4,5}\s

Matchar siffrorna i 1234 gå och 12345 nu, men varken 567 elva eller 223459 någonstans.

\s+

Matchar en eller flera blanktecken

(bla){1,}

Matchar samtliga blablabla och bla i blad eller dubbla

/?>

Matchar /> i <slut/> samt > i <start>.

Påståenden

Påståenden

Påståenden gör att ett reguljärt uttryck bara matchar under vissa kontrollerade omständigheter.

Ett påstående behöver inte ett tecken för att matcha, utan undersöker istället omgivningen runt en möjlig matchning innan den erkänns. Påståendet ordgräns försöker till exempel inte hitta ett tecken som inte ingår i ett ord intill ett ord-tecken på platsen, utan kontrollerar istället att det inte finns ett ord-tecken. Det här betyder att påståendet matchar där det inte finns något tecken alls, dvs. vid slutet på söksträngen.

Vissa påståenden har verkligen ett mönster som ska matcha, men den delen av strängen som matchar kommer inte att ingå i resultatet för matchningen av hela uttrycket.

Reguljära uttryck som de dokumenteras här stöder följande påståenden:

^ (hatt: början på strängen)

Matchar början på söksträngen.

Uttrycket ^Peter matchar vid Peter i strängen Peter, hej då! men inte Hej, Peter!.

$ (slutet på strängen)

Matchar slutet på söksträngen.

Uttrycket du\?$ matchar det sista du i strängen Du gjorde det väl inte, eller var det verkligen du? men ingenstans i Du gjorde det väl inte, eller hur?.

\b (ordgräns)

Matchar om det finns ett ordtecken på ena sidan och något annat än ett ordtecken på andra sidan.

Det här är användbart för att hitta slutet på ord, till exempel för både början och slutet för att hitta ett helt ord. Uttrycket \bin\b matchar ett ensamt in i strängen Han kom in genom ingången, men inte det in som finns i ingången.

\B (icke ordgräns)

Matchar överallt där \b inte gör det.

Det här betyder att det matchar till exempel inne i ord: Uttrycket \Bin\B matchar in i minne men inte i ingång eller Han kom in genom fönstret.

(?=MÖNSTER) (Positiv sökning framåt)

Ett påstående som söker framåt tittar på strängen som följer en möjlig matchning. Den positiva sökningen förhindrar att strängen matchar om inte texten som följer den möjliga matchningen matchar MÖNSTER i påståendet, men texten som matchas av det ingår inte i resultatet.

Uttrycket vakt(?=\w) matchar för vakt in vaktmästare men inte i Han är en vakt!

(?!MÖNSTER) (Negativ sökning framåt)

Den negativa sökningen framåt förhindrar en möjlig matchning från att bekräftas om den följande delen av söksträngen matchar sitt MÖNSTER.

Uttrycket const \w+\b(?!\s*&) matchar vid const char i strängen const char* x medan den inte kan matcha const QString i const QString& y eftersom & matchar mönstret i den negativa sökningen framåt.