La KatePart Manlibro

# La KatePart Manlibro

Thad McGinnis `<ctmcginnis@compuserve.com>`

Anne-Marie Mahfouf `<annma@kde.org>`

Anders Lund `<anders@alweb.dk>`

T.C. Hollingsworth `<tchollingsworth@gmail.com>`

developer: Christoph Cullmann
reviewer: Lauri Watts
Translation: Oliver Kellogg
Versio Frameworks
5.94 (2022-05-02)

Kopirajto © 2000, 2001 Thad McGinnis

Kopirajto © 2005 Anne-Marie Mahfouf `<annma@kde.org>`, Anders Lund `<anders@alweb.dk>`

Kopirajto © 2011, 2012, 2013, 2014 T.C. Hollingsworth `<tchollingsworth@gmail.com>`

Leĝa Avizo

KatePart estas plene prezentita redaktilo de KDE.

Listo de Ekzemploj

5.1. char ekzemploj
5.2. Anstataŭigante tekston en la nuna linio
5.3. Anstataŭigante tekston en la tuta dosiero
5.4. Pli Altnivela Ekzemplo
5.5. sort kontraŭ natsort
5.6. Kunigi elektitajn liniojn
5.7. Forigi malplenajn liniojn
5.8. Forigi malplenajn liniojn

Ĉapitro 1. Enkonduko
Enkonduko

# Ĉapitro 1. Enkonduko

KatePart estas plenkapabla tekstredaktila komponanto uzata de multaj Qt™- kaj KDE-aplikoj. KatePart estas pli ol tekstredaktilo; ĝi celas esti redaktilo de programisto, kaj povus esti konsiderata kiel almenaŭ parta alternativo al pli potencaj redaktiloj. Unu el la ĉefaj trajtoj de KatePart estas la kolorigita sintakso, proprigita por multaj diversaj programlingvoj kiel ekzemple: C/C++, Java™, Python, Perl, Bash, Modula 2, HTML, kaj Ada.

KWrite estas simpla tekstredaktila aplikaĵo bazita sur KatePart. Ĝi havas ununuran dokumentinterfacon (SDI) ebligante vin redakti unu dosieron samtempe po fenestro. Ĉar KWrite estas tre simpla efektivigo de KatePart, ĝi ne postulas sian propran dokumentadon. Se vi scias kiel uzi KWrite, vi povas uzi KatePart ie ajn!

Ĉapitro 2. Kelkaj Fundamentoj
Kelkaj Fundamentoj

# Ĉapitro 2. Kelkaj Fundamentoj

KWrite kaj multaj aliaj KatePart uzantoj estas tre simplaj uzeblaj. Ĉiu, kiu uzis tekstredaktilon, ne havu problemojn.

## Treni kaj Faligi

KatePart uzas la KDE Treni kaj Faligi protokolon. Dosieroj povas esti trenitaj kaj faligitaj sur KatePart de la Labortablo, la dosieradministranto Dolphin, aŭ iu fora FTP retejo malfermiĝis en unu el la fenestroj de Dolphin.

Ŝparvojoj
Ŝparvojoj

## Ŝparvojoj

Multaj el la ŝparvojoj estas agordeblaj per la menuo Agordoj. Defaŭlte KatePart honoras la sekvajn ŝparvojojn:

Ins | Ŝanĝu inter Enmeti kaj Anstataŭigi reĝimojn. Kiam en enmeta reĝimo, la redaktilo aldonos iujn ajn tajpitajn signojn al la teksto dum puŝas laŭlonge de ajnaj datumoj dekstre de la teksta kursoro. Anstataŭiga reĝimo igas la eniron de ĉiu signo forigi la signon tuj dekstre de la tekstokursoro.
Left | Movi la kursoron unu signon maldekstren.
Right | Movi la kursoron unu signon dekstren.
Up | Movi la kursoron supren unu linion.
Down | Movi la kursoron malsupren unu linion.
Ctrl+E | Iri al antaŭa redakta loko en la dokumento.
Ctrl+Majuskligo+E | Iri al la sekva redakta loko en la dokumento.
Alt+Majuskligo+Up | Movi kursoron al antaŭa kongrua deŝovo.
Alt+Majuskligo+Down | Movi kursoron al antaŭa kongrua deŝovo.
Ctrl+6 | Movi al Kongrua Krampo.
PgUp | Movi la kursoron supren unu paĝon.
PgDn | Movi la kursoron malsupren unu paĝon.
Home | Movi la kursoron al la komenco de la linio.
End | Movi la kursoron al la fino de la linio.
Ctrl+Home | Movi al Komenco de Dokumento.
Ctrl+End | Movi al Fino de Dokumento.
Ctrl+Up | Rulumi Linion Supren.
Ctrl+Down | Rulumi Linion Malsupren.
Ctrl+Right | Movi Vorton Dekstren.
Ctrl+Left | Movi Vorton Maldekstren.
Ctrl+Majuskligo+Up | Movi Liniojn Supren.
Ctrl+Majuskligo+Down | Movi Liniojn Malsupren.
Ctrl+. | Duobligi Elektitajn Liniojn Malsupren.
Ctrl+B | Agordi Legosignon.
Alt+PgUp | Antaŭa Legomarko.
Alt+PgDn | Sekva Legomarko.
Del | Forigu la signon dekstre de la kursoro (aŭ ajna elektita teksto).
Retropaŝo | Forigi la signon maldekstre de la kursoro.
Ctrl+Del | Forigi Dektran Vorton.
Ctrl+Retropaŝo | Forigi Maldekstran Vorton.
Ctrl+K | Forigi Linion.
Majuskligo+Enigu | Enigi novlinion inkluzive de gvidaj signoj de la nuna linio, kiuj ne estas literoj aŭ ciferoj. Ĝi estas utila ekz. por skribi komentojn en la kodon: Fine de la linio “// iom da teksto” premu ĉi tiun ŝparvojon kaj la sekva linio komenciĝas jam per “// ”. Do vi ne devas enigi la komentajn signojn komence de ĉiu nova linio kun komentoj.
Ctrl+Majuskligo+Enigu | Krei novan linion sub la nuna linio.
Ctrl+Alt+Enigu | Krei novan linion super la nuna linio.
Majuskligo+Left | Marki tekston unu signon maldekstre.
Majuskligo+Right | Marki tekston unu signon dekstre.
Ctrl+F | Trovi.
F3 | Trovi Sekvan.
Majuskligo+F3 | Trovi Antaŭan.
Ctrl+H | Trovi Elektitan.
Ctrl+Majuskligo+H | Trovi Elektitan Malantaŭen.
Ctrl+Majuskligo+Right | Elekti Vorton Dekstre.
Ctrl+Majuskligo+Left | Elekti Vorton Maldekstre.
Majuskligo+Home | Elekti al Komenco de Linio.
Majuskligo+End | Elekti al Fino de Linio.
Majuskligo+Up | Elekti al Antaŭa Linio.
Majuskligo+Down | Elekti ĝis Sekva Linio.
Ctrl+Majuskligo+6 | Elekti al Kongrua Krampo.
Ctrl+Majuskligo+PgUp | Elekti al Supro de Vido.
Ctrl+Majuskligo+PgDn | Elekti al Malsupro de Vido.
Majuskligo+PgUp | Elekti Paĝon Supren.
Majuskligo+PgDn | Elekti Paĝon Malsupren.
Ctrl+Majuskligo+Home | Elekti al Komenco de Dokumento.
Ctrl+Majuskligo+End | Elekti al Fino de Dokumento.
Ctrl+Home | Elekti Ĉion.
Ctrl+Majuskligo+A | Malelekti.
Ctrl+Majuskligo+B | Bloka Elekta Reĝimo.
Ctrl+C/Ctrl+Ins | Kopii la markitan tekston al la tondujo.
Ctrl+D | Komento.
Ctrl+Majuskligo+D | Malkomento.
Ctrl+G | Iri al linio...
Ctrl+I | Deŝovi elekton.
Ctrl+Majuskligo+I | Maldeŝovi elekton.
Ctrl+J | Kunigi Liniojn.
Ctrl+P | Presi.
Ctrl+R | Anstataŭigi.
Ctrl+S | Alvokas la komandon Konservi.
Ctrl+Majuskligo+S | Konservi kiel.
Ctrl+U | Majuskla.
Ctrl+Majuskligo+U | Minuskla.
Ctrl+Alt+U | Majuskligi.
Ctrl+V / Majuskligo+Ins | Alglui la tekston de la tondujo en linio-redakton.
Ctrl+X / Majuskligo+Ins | Forigi la markitan tekston kaj kopii ĝin al la tondujo.
Ctrl+Z | Malfari.
Ctrl+Majuskligo+Z | Refari.
Ctrl+- | Ŝrumpi Tiparon.
Ctrl++Ctrl+= | Pligrandigi Tiparon.
Ctrl+Majuskligo+- | Faldi Pintonivelajn Nodojn.
Ctrl+Majuskligo++ | Malfaldi Pintonivelajn Nodojn.
Ctrl+Spaceto | Alvoki Kodkompletigon.
F5 | Reŝargi.
F6 | Montri/Kaŝi Piktograman Bordon.
F7 | Ŝanĝi al Komandlinio.
F9 | Montri/Kaŝi faldeblajn markilojn.
F10 | Dinamika Vortvolvaĵo.
F11 | Montri/Kaŝi Linajn Nombrojn.
Ctrl+T | Transmeti Signojn.
Ctrl+Majuskligo+O | Aŭtomata Literuma Kontrolo.
Ctrl+Majuskligo+V | Ŝalti al Sekva Eniga Reĝimo.
Ctrl+8 | Reuzi Vorton Supre.
Ctrl+9 | Reuzi Vorton Malsupre.
Ctrl+Alt+# | Vastigi Mallongigon.
Ctrl+Alt+Up | Aldoni kursoron super la nuna kursoro.
Ctrl+Alt+Down | Aldoni kursoron sub la nuna kursoro.
Majuskligo+Alt+I | Krei kursoron ĉe la fino de ĉiu linio en elekto.
Alt+J | Trovi sekvan aperon de la vorto sub kursoro kaj elekti ĝin.
Ctrl+Alt+Majuskligo+J | Trovi ĉiujn aperojn de la vorto sub kursoro kaj elekti ilin.

Ĉapitro 3. Laborante kun la KatePart redaktisto
Laborante kun la KatePart redaktisto

# Ĉapitro 3. Laborante kun la KatePart redaktisto

Anders Lund `<anders@alweb.dk>`

Dominik Haumann `<dhdev@gmx.de>`

Translation: Oliver Kellogg

## Superrigardo

La KatePart redaktilo estas la redakta areo de la KatePart fenestro. Ĉi tiu redaktilo estas dividita inter Kate kaj KWrite, kaj ĝi ankaŭ povas esti uzata en Konqueror por montri tekstajn dosierojn de via loka komputilo, aŭ de la reto.

La redaktilo konsistas el la sekvaj komponantoj:

La redakta areo

  Ĉi tie troviĝas la teksto de via dokumento.

La Rulumbretoj

  La rulumbretoj indikas la pozicion de la videbla parto de la dokumentteksto, kaj povas esti uzataj por moviĝi ĉirkaŭ la dokumento. Treni la rulstangojn ne kaŭzos la enmetan kursoron moviĝi.

  La rulumbretoj estas montrataj kaj kaŝitaj laŭbezone.

La Piktogram-Bordo

  La piktograma bordo estas malgranda panelo maldekstre de la redaktilo, montranta malgrandan piktogramon apud markitaj linioj.

  Vi povas agordi aŭ forigi legosignon en videbla linio alklakante la musbutono maldekstra en la piktogrambordo apud tiu linio.

  La montro de la piktogramo povas esti ŝanĝita per la menuero Vido → Montri Piktograman Bordon.

La Lininombro-Panelo

  La panelo Linionombroj montras la linionumerojn de ĉiuj videblaj linioj en la dokumento.

  La ekrano de la Linia Nombro-Panelo povas esti ŝanĝita per la menuero Vido → Montri Linionumerojn.

La Faldebla Fenestro

  La faldebla panelo permesas vin malvastigi aŭ vastigi faldeblajn blokojn de linioj. La kalkulo de la faldeblaj regionoj estas farita laŭ reguloj en la sintaksa emfaza difino por la dokumento.

Ankaŭ en ĉi tiu ĉapitro:

- Navigado en la Teksto

- Laborante kun la Elekto

- Kopii kaj Alglui Tekston

- Trovi kaj Anstataŭigi Tekston

- Uzante legosignojn

- Aŭtomate Envolvi Tekston

- Uzado de aŭtomata deŝovo

Navigado en la Teksto
Navigado en la Teksto

## Navigado en la Teksto

Moviĝi en la teksto en KatePart similas al plej multaj grafikaj tekstoredaktiloj. Vi movas la kursoron per la sagoklavoj kaj la PgUp, PgDn, Home kaj End klavoj en kombino kun la Ctrl kaj Majuskligo modifiloj. La Majuskligo klavo estas ĉiam uzata por generi elekton, dum la Ctrl klavo havas malsamajn efikojn sur malsamaj klavoj:

- Por la Up kaj Down klavoj ĝi signifas rulumi anstataŭ movi la kursoron.

- Por la Left kaj Right klavoj ĝi signifas preterpasi vortojn ol signojn.

- Por la PgUp kaj PgDn klavoj ĝi signifas movi al la videbla rando de la vido prefere ol foliumi.

- Por la Home kaj End klavoj ĝi signifas movi al la komenco aŭ fino de la dokumento prefere ol la komenco aŭ fino de la linio.

KatePart ankaŭ provizas al vi manieron rapide salti al kongrua krampo aŭ kuniga krampo: metu la kursoron sur la internon de krampa aŭ kunigokrampa signo kaj premu Ctrl+6 por salti al la kongrua krampo aŭ kuniga krampo.

Krome vi povas uzi legosignojn por rapide salti al pozicioj kiujn vi mem difinas.

Laborante kun la Elekto
Laborante kun la Elekto

## Laborante kun la Elekto

Estas du bazaj manieroj elekti tekston en KatePart: uzante la muson, kaj uzante la klavaron.

Por elekti per la muso, tenu premita la musbutono maldekstra dum trenante la muskursoron de kie la elekto devus komenci, al la dezirata finpunkto. La teksto estas elektita dum vi trenas.

Duobla alklako de vorto elektos tiun vorton.

Triobla klako en linio elektos la tutan linion.

Se Majuskligo estas premita dum klakado, teksto estos elektita:

- Se nenio jam estas elektita, de la teksta kursoropozicio ĝis la musa kursoropozicio.

- Se estas elekto, de kaj inkluzive de tiu elekto ĝis la muskursora pozicio.

### Rimarko

Kiam oni elektas tekston per trenado de la muso, la elektita teksto estas kopiita al la tondujo, kaj povas esti algluita klakante la mezan musbutonon en la redaktilo, aŭ en iu ajn alia aplikaĵo al kiu oni volas glui la tekston.

Por elekti per la klavaro, tenu premita la Majuskligo klavon dum uzado de la navigaj klavoj (Sagoklavoj, PgUp, PgDn, Home kaj End, eble en kombino kun Ctrl por etendi la movon de la tekstokursoro).

Vidu ankaŭ la sekcion Navigado en la Teksto en ĉi tiu ĉapitro.

Por Kopii la nunan elekton, uzu la menueron Redakti → Kopii aŭ la klavkombion (defaŭlte al Ctrl+C).

Por Malelekti la nunan elekton, uzu la menueron Redakti → Malelekti, aŭ la klavaran ŝparvojon (defaŭlte estas Ctrl+Majuskligo+A), aŭ alklaku per la musbutono maldekstra en la redaktoro.

### Uzante Blokan Elekton

Kiam Bloki Elekto estas ebligita, vi povas fari “vertikalajn elektojn” en la teksto, kio signifas elekti limigitajn kolumnojn el pluraj linioj. Ĉi tio estas oportuna por labori kun tabe apartigitaj linioj ekzemple.

Selektado de bloko povas esti ŝanĝita per la menuero Redakti → Blok-Elekta Reĝimo. La defaŭlta klavkomando estas Ctrl+Majuskligo+B.

### Uzado de Anstataŭiga Elekto

Se Anstataŭigi Elekton estas ebligita, tajpi aŭ alglui tekston en la elekton kaŭzos la elektitan tekston anstataŭiĝi. Se ne estas ebligita, nova teksto estos aldonita ĉe la pozicio de la teksta kursoro.

Anstataŭigi Elekton estas ebligita defaŭlte.

Por ŝanĝi la agordon por ĉi tiu opcio, uzu la paĝon Kursoro & Elekto de la Agorda Dialogo .

### Uzado de Persista Elekto

Kiam Persista Elekto estas ebligita, tajpi signojn aŭ movi la kursoron ne igos la Elekton malelektita. Ĉi tio signifas, ke vi povas movi la kursoron for de la elekto kaj tajpi tekston.

Persista Elekto estas malebligita defaŭlte.

Persista Elekto povas esti ebligita en la paĝo Kursoro & Elekto de la Agorda Dialogo.

### Averto

Se Persista Elekto kaj Anstataŭiga Elekto estas ambaŭ ebligitaj, tajpi aŭ alglui tekston kiam la tekstkursoro estas ene de la elekto kaŭzos ĝin anstataŭiĝi kaj malelektiĝi.

Kopii kaj Alglui Tekston
Kopii kaj Alglui Tekston

## Kopii kaj Alglui Tekston

Por kopii tekston, elektu ĝin kaj uzu la menueron Redakti → Kopii. Aldone, elektante tekston per la muso kaŭzos elektitan tekston kopiiĝi al la X-elekto.

Por alglui la tekston nuntempe en la tondujo, uzu la menueron Redakti → Alglui.

Aldone, teksto elektita per la muso povas esti algluita klakante la musbutono meza ĉe la dezirata pozicio.

### Sugesto

Se vi uzas la KDE labortablo, vi povas retrovi pli frue kopiitan tekston de iu ajn aplikaĵo uzante la piktogramon Klipper en la sistempleto.

Trovi kaj Anstataŭigi Tekston
Trovi kaj Anstataŭigi Tekston

## Trovi kaj Anstataŭigi Tekston

### La Bretoj Serĉi kaj Anstataŭigi

KatePart havas pliigan serĉbreton kaj potencan serĉon kaj anstataŭigon, kiu ofertas la rimedojn por enigi anstataŭan ĉenon kune kun kelkaj kromaj opcioj.

La bretoj ofertas la jenajn oftajn eblojn:

Trovi

  Jen kie enigi la serĉĉenon. La interpreto de la ĉeno dependas de kelkaj el la elektoj priskribitaj malsupre.

Kongrui usklecon

  Se ebligita, la serĉo estos limigita al enskriboj kiuj kongruas kun la uskleco (majuskla aŭ minuskla) de ĉiu el la signoj en la serĉŝablono.

La potenca serĉa kaj anstataŭiga breto ofertas kelkajn pliajn eblojn:

Plata Teksto

  Laŭvorte kongruas kun ajna okazo de la serĉĉeno.

Tutaj Vortoj

  Se elektite, la serĉo kongruos nur se estas vortlimo ĉe ambaŭ finoj de la ĉenkongruo, kio signifas ne alfanombra signo - aŭ iu alia videbla signo aŭ liniofino.

Eskapsekvencoj

  Se elektata, la menuero Aldoni ĉe la malsupro de la kunteksta menuo de la tekstkestoj estos ebligita kaj ebligas al vi aldoni eskapsekvencojn al la serĉŝablono el antaŭdifinita listo.

Regula Esprimo

  Se elektita, la serĉĉeno estas interpretita kiel regula esprimo. La menuero Aldoni ĉe la malsupro de la kunteksta menuo de la tekstkestoj estos ebligita kaj ebligas al vi aldoni regulajn esprimojn al la serĉŝablono el antaŭdifinita listo.

  Vidu Regulaj Esprimoj por pli pri ĉi tiuj.

Serĉi nur en la elekto

  Se markite, la serĉo kaj anstataŭigo estos farita nur ene de la elektita teksto.

Trovi ĉiujn

  Alklakante ĉi tiun butonon elstarigas ĉiujn kongruojn en la dokumento kaj montras la nombron da trovitaj kongruoj en malgranda ŝprucfenestro.

### Trovi Tekston

Por trovi tekston, lanĉu la pliigan serĉbreton per Ctrl+F aŭ de la Redakti → Trovi... menueron.

Ĉi tio malfermas la pliigan serĉbreton ĉe la malsupro de la redaktila fenestro. Sur la maldekstra flanko de la breto estas butono kun piktogramo por fermi la breton, sekvita de malgranda tekstujo por enigi la serĉan ŝablonon.

Kiam vi komencas enigi la signojn de via serĉŝablono, la serĉo komenciĝas tuj. Se estas kongruo en la teksto, ĉi tio estas emfazita kaj la fonkoloro de la enirkampo ŝanĝiĝas al helverda. Se la serĉŝablono ne kongruas kun iu ajn ĉeno en la teksto, tio estas indikita per helruĝa fonkoloro de la enirkampo.

Uzu la aŭ butono por salti al la sekva aŭ antaŭa kongruo en la dokumento.

Kongruoj en la dokumento estas emfazitaj eĉ kiam vi fermas la serĉbreton. Por forigi ĉi tiun reliefigon, premu la klavon Esc.

Vi povas elekti ĉu la serĉo distingu usklecon. Elektante limigos trovaĵojn al enskriboj kiuj kongruas kun la uskleco (majuskla aŭ minuskla) de ĉiu el la signoj en la serĉoŝablono.

Alklaku la butonon ĉe la dekstra flanko de la pliiga serĉbreto por ŝanĝi al la potenca serĉ- kaj anstataŭigbreto.

Por ripeti la lastan serĉan operacion, se ekzistas, sen voki la pliigan serĉbreton, uzu Redakti → Trovi sekvan (F3) aŭ Redakti → Trovi Antaŭan (Majuskligo+F3).

### Anstataŭigante Tekston

Por anstataŭigi tekston, lanĉu la potencan serĉ- kaj anstataŭigbreton per la komando Redakti → Anstataŭigi, aŭ la Ctrl+R ŝparvojo.

Sur la supra maldekstra flanko de la breto estas butono kun piktogramo por fermi la breton, sekvita de malgranda kombokesto por enigi la serĉan ŝablonon. La skatolo memoras lastatempe uzitajn ŝablonojn.

Vi povas mastrumi la serĉreĝimon elektante la opciojn Plata Teksto, Tutaj Vortoj, Eskap-Sekvencoj aŭ Regula Esprimo el la falkesto.

Se estas elektitaj Eskap-sekvencoj aŭ Regula esprimo, la menuero Aldoni... ĉe la malsupro de la kunteksta menuo de la tekstkestoj estos ebligita kaj permesas al vi aldoni eskapsekvencojn aŭ regulajn esprimojn al la serĉa aŭ anstataŭiga ŝablono el antaŭdifinitaj listoj.

Uzu la aŭ butono por salti al la sekva aŭ antaŭa kongruo en la dokumento.

Enigu la tekston por anstataŭigi en la tekstujon kun la etikedo Anstataŭigi kaj alklaku la butonon Anstataŭigi por anstataŭigi nur la emfazitan tekston aŭ la butonon Anstataŭigi Ĉion por anstataŭigu la serĉtekston en la tuta dokumento.

Vi povas modifi la serĉan kaj anstataŭigan konduton elektante malsamajn opciojn ĉe la malsupro de la stango. Elektante limigos trovaĵojn al enskriboj kiuj kongruas kun la uskleco (majuskla aŭ minuskla) de ĉiu el la signoj en la serĉŝablono. serĉos kaj anstataŭigos nur ene de la nuna elekto. La butono Trovi Ĉion elstarigas ĉiujn kongruojn en la dokumento kaj montras la nombron da trovitaj kongruoj en malgranda ŝprucfenestro.

Alklaku la butonon ĉe la dekstra flanko de la potenca serĉ- kaj anstataŭig-breto por ŝanĝi al la pliiga serĉbreto.

### Sugesto

Se vi uzas regulan esprimon por trovi la tekston por anstataŭigi, vi povas uzi malantaŭajn referencojn por reuzi tekston kaptitan en krampitaj subŝablonoj de la esprimo.

Vidu Regulaj esprimoj por pli pri tiuj.

### Sugesto

Vi povas fari find, replace kaj ifind (pliiga serĉo) de la komandlinio.

Uzante Legosignojn
Uzante Legosignojn

## Uzante Legosignojn

La funkcio de legosignoj permesas marki iujn liniojn, por povi facile trovi ilin denove.

Vi povas agordi aŭ forigi legosignon en linio en du manieroj:

- Movu la enmetan kursoron al la linio kaj aktivigu la Legosignoj → Agordi legosignon (Ctrl+B) komandon.

- Alklaku la Piktograman Bordon apud la linio.

Legosignoj haveblas en la menuo Legosignoj. La individuaj legosignoj estas haveblaj kiel menueroj, etikeditaj kun la linionumero de la linio kun la legosigno, kaj la unuaj malmultaj signoj de la teksto en la linio. Por movi la enmetan kursoron al la komenco de markita linio, malfermu la menuon kaj elektu la legosignon.

Por rapide movi inter legosignoj aŭ al la sekva/antaŭa legosigno, uzu la ordonojn Legosignoj → Sekva (Alt+PgDn) aŭ Legosignoj → Antaŭa (Alt+PgUp).

Aŭtomate Volvante tekston
Aŭtomate Volvante tekston

## Aŭtomate Volvante tekston

Ĉi tiu funkcio ebligas al vi havi la tekston formatitan en tre simpla maniero: la teksto estos volvita, tiel ke neniuj linioj superu maksimuman nombron da signoj po linio, krom se estas pli longa ĉeno de ne-blankspacoj.

Por ebligi/malŝalti ĝin, marku/malmarku la markobutonon Statika Vortvolviĝo en la redakta paĝo de la agorda dialogo.

Por agordi la maksimuman liniolarĝon (maksimumaj signoj por linio), uzu la opcion Envolvi Vortojn ĉe en la Redaktado paĝo de la agorda dialogo.

Se ĝi estas ebligita, ĝi havas la sekvajn efikojn:

- Dum tajpado, la redaktilo aŭtomate enmetos malmolan linirompon post la lasta blankspaco en pozicio antaŭ ol la maksimuma liniolarĝo estas atingita.

- Dum ŝargo de dokumento, la redaktilo volvos la tekston en simila maniero, tiel ke neniuj linioj estas pli longaj ol la maksimuma linilarĝo, se ili enhavas iun blankspacon permesantan tion.

### Rimarko

Nuntempe ne ekzistas maniero agordi vortŝanĝon por dokumentspecoj, aŭ eĉ ebligi aŭ malŝalti la funkcion je nivelo de unuopa dokumento. Ĉi tio estos riparita en estonta versio de KatePart.

Uzado de aŭtomata deŝovo
Uzado de aŭtomata deŝovo

## Uzado de aŭtomata deŝovo

La redaktilo de KatePart subtenas diversajn aŭtomatindentajn reĝimojn, dezajnitajn por malsamaj tekstoformatoj. Vi povas elekti el la disponeblaj reĝimoj uzante la menuon Iloj → Deŝovado. La aŭtodeŝovaj moduloj ankaŭ disponigas funkcion Iloj → Formati deŝovon kiu rekalkulos la indentaĵon de la elektita aŭ aktuala linio. Tiel, vi povas redeŝovi vian tutan dokumenton elektante la tutan tekston kaj aktivigante tiun agon.

Ĉiuj deŝovreĝimoj uzas la indent-rilatajn agordojn en la aktiva dokumento.

### Sugesto

Vi povas agordi ĉiajn agordajn variablojn, inkluzive tiujn rilatajn al deŝovdo uzante Dokumentajn Variablojn kaj Dosiertipoj.

Disponeblaj Aŭtomat-indentaj Reĝimoj

Neniu

  Elektante ĉi tiun reĝimon tute malŝaltas aŭtomatan deŝovadon.

Normala

  Ĉi tiu indentilo simple konservas la deŝovon simila al la antaŭa linio kun ajna enhavo krom blankspaco. Vi povas kombini ĉi tion kun uzado de la deŝovi- kaj maldeŝovi-agoj por indentado laŭ via propra gusto.

C Stilo

  Indentilo por C kaj similaj lingvoj, kiel C++, C#, Java™, JavaScript kaj tiel plu. Ĉi tiu deŝovilo ne funkcios kun skriptlingvoj kiel Perl aŭ PHP.

Haskell

  Indentilo por la funkcia programlingvo Haskell.

Lilypond

  Indentilo por la Lilypond-notacia lingvo por muziko.

Lisp

  Indentilo specife por la Lisp skriptlingvo kaj Lisp-dialektoj.

Python

  Indentilo specife por la python skriptlingvo.

XML Stilo

  Indentilo specife por XML kiel lingvoj.

Linia Modifa Indikiloj
Linia Modifa Indikiloj

## Linia Modifa Indikiloj

La liniaj modifaj indikiloj de KatePart permesas al vi facile vidi tion, kion vi lastatempe ŝanĝis en dosiero. Defaŭlte, konservitaj ŝanĝoj estas indikitaj per verda stango maldekstre de dokumento, dum nekonservitaj ŝanĝoj estas indikitaj per oranĝa stango.

Liniomodifaj Indikiloj en ago.

Vi povas ŝanĝi la kolorojn uzatajn en la agorda panelo Tiparoj &aj Koloroj, aŭ vi povas tute malŝalti ĉi tiun funkcion en la Bordoj langeto de la agorda panelo Aspekto.

La Rulumbreta Minimapo
La Rulumbreta Minimapo

## La Rulumbreta Minimapo

La Rulumbreta Minimapo de KatePart montras antaŭrigardon de dokumentoj anstataŭ la rulobreto. La nuntempe videbla parto de la dokumento estas emfazita.

La Scrollbar-Minimapo montras antaŭrigardon de la Kate fontkodo.

Vi povas provizore aktivigi aŭ malŝalti la minimapon elektante Vidi → Vidi Scrollbar Minimap aŭ konstante en la sekcio de Apero de la agordo de KatePart.

Multoblaj kursoroj
Multoblaj kursoroj

## Multoblaj kursoroj

Plurkursora subteno estis lanĉita kun versio 5.93 de katepart.

### Kreante plurajn kursorojn

- Por krei ilin per muso, uzu Alt + LMB;. La modifilo estas agordebla, vidu Agordi multkursoran modifilon

- Por krei per klavaro, premu Ctrl+Alt+Up por krei kursoron super la ĉefa kursoro kaj Ctrl+Alt+Down por krei kursoron sube. Ĉi tiuj ŝparvojoj ankaŭ estas agordeblaj

- Por krei kursorojn el elekto, unue elektu iun tekston kaj poste premu Majuskligo+Alt+I. Ĉi tio kreos kursoron ĉe la fino de ĉiu linio en elekto.

- Uzu Alt+J por trovi la sekvan aperon de la vorto sub kursoro kaj elektu ĝin + kreu kursoron. Se vi volas preterlasi la nunan vorton sub kursoro, premu Alt+K kaj ĝi markos la nun elektitan vorton kiel transsaltita. Kiam vi premas Alt+J denove ĝi malelektos la nunan vorton kaj moviĝos al la sekva vorto.

- Uzu Ctrl+Alt+Majuskligo+J por trovi ĉiujn aperojn de la vorto sub kursoro kaj elektu ilin per kursoro ĉe la fino de ĉiu elekto. Vi povas uzi Alt+J por cirkuli tra la elektitaj vortoj kaj uzi Alt+K por malelekti iun ajn vorton kiel menciite en la antaŭa alineo.

### Laborante kun pluraj kursoroj

Post kiam vi kreis kelkajn kursorojn, vi povas plenumi la plej multajn redaktajn operaciojn sur ili kiel vi farus sur ununura kursoro. Ekzemple, tajpi literon tajpos ĝin por ĉiu kursoro. Simile vi povas fari tekstajn transformojn ekz., majusklojn por ĉiuj pozicioj aŭ elektoj.

Kelkfoje vi volos forigi kursorojn. Por fari tion, vi povas Alt + musbutono maldekstra sur la kursoro, kiun vi volas forigi. Se vi volas nur forigi kursorojn sur linioj malplenaj, ekzistas preta ago por ĝi, kiu faros ĝin por vi. Por alvoki la agon, malfermu la Komandobreton uzante Ctrl+Alt+I kaj serĉu Forigi kursorojn de malplenaj linioj kaj premu Enigu. Vi ankaŭ povas agordi ŝparvojon por ĉi tiu ago.

Ĉapitro 4. La Menu-Enskriboj
La Menu-Enskriboj

# Ĉapitro 4. La Menu-Enskriboj

## La Dosiero-Menuo

Dosiero → Nova (Ctrl+N)

  Ĉi tio komencas novan dokumenton en nova kaj sendependa redaktora fenestro.

Dosiero → Nova Fenestro

  Kreu alian fenestron enhavantan la nunan dokumenton. Ĉiuj ŝanĝoj al la dokumento en unu fenestro estas reflektitaj en la alia fenestro kaj inverse.

Dosiero → Malfermi... (Ctrl+O)

  Montras norman KDE dialogo Malfermi Dosieron. Uzu la dosieron por elekti la dosieron, kiun vi volas malfermi, kaj alklaku Malfermi por malfermi ĝin.

Dosiero → Malfermi Lastatempan

  Ĉi tio estas ŝparvojo por malfermi lastatempe konservitajn dokumentojn. Alklakante ĉi tiun eron malfermas liston flanke de la menuo kun pluraj el la plej lastatempe konservitaj dosieroj. Klako sur specifa dosiero malfermos ĝin en KatePart - se la dosiero ankoraŭ loĝas en la sama loko.

Dosiero → Konservi (Ctrl+S)

  Ĉi tio konservas la nunan dokumenton. Se jam okazis konservado de la dokumento, tiam ĉi tio anstataŭigos la antaŭe konservitan dosieron sen peti la konsenton de la uzanto. Se ĝi estas la unua konservado de nova dokumento la konservi kiel dialogo (priskribita malsupre) estos alvokita.

Dosiero → Konservi kiel... (Ctrl+Majuskligo+S)

  Ĉi tio permesas konservi dokumenton kun nova dosiernomo. Ĉi tio estas farita per la dosiera dialogkesto priskribita supre en la sekcio Malfermi de ĉi tiu helpdosiero.

Dosiero → Konservi kiel kun kodado

  Konservi dokumenton kun nova dosiernomo en malsama kodigo.

Dosiero → Konservi kopion kiel

  Konservi kopion de la dokumento kun nova dosiernomo kaj daŭrigi redakti la originalan dokumenton.

Dosiero → Reŝargi (F5)

  Reŝargas la aktivan dosieron de disko. Ĉi tiu komando estas utila se alia programo aŭ procezo ŝanĝis la dosieron dum vi havas ĝin malfermita en KatePart.

Dosiero → Presi... (Ctrl+P)

  Malfermas simplan presan dialogon permesantan al la uzanto specifi kion, kie kaj kiel presi.

Dosiero → Eksporti kiel HTML

  Konservi la nuntempe malfermitan dokumenton kiel HTML-dosiero, kiu estos formatita per la nuna sintaksa reliefigo kaj kolorskem-agordoj.

Dosiero → Fermi (Ctrl+W)

  Fermu la aktivan dosieron per ĉi tiu komando. Se vi faris nekonservitajn ŝanĝojn, oni petos vin konservi la dosieron antaŭ KatePart fermas ĝin.

Dosiero → Eliri (Ctrl+Q)

  Ĉi tio fermos la redaktilan fenestron, se vi havas pli ol unu ekzemplon de KatePart funkciante, tra la menueroj Nova aŭ Nova Fenestro, tiuj okazoj ne estos fermitaj.

La Redakta Menuo
La Redakta Menuo

## La Redakta Menuo

Redakti → Malfari (Ctrl+Z)

  Malfari la lastan redaktan komandon (tajpi, kopii, tranĉi ktp.)

  ### Rimarko

  Ĉi tio povas malfari plurajn redaktajn komandojn de la sama tipo, kiel tajpi signojn.

Redakti → Refari (Ctrl+Majuskligo+Z)

  Ĉi tio inversigos la plej lastatempan ŝanĝon (se ekzistas) faritan per Malfari.

Redakti → Tranĉi (Ctrl+X)

  Ĉi tiu komando forigas la nunan elekton kaj metas ĝin en la tondujo. La tondujo funkcias nevideble kaj provizas manieron transdoni datumojn inter aplikaĵoj.

Redakti → Kopii (Ctrl+C)

  Ĉi tio kopias la aktuale elektitan tekston al la tondujo por ke ĝi estu algluita aliloke. La tondujo funkcias nevideble kaj provizas manieron transdoni datumojn inter aplikaĵoj.

Redakti → Kopii kiel HTML

  Kopiu la elekton kiel HTML, formatitan per la nuna sintaksa reliefigo kaj kolorskemo agordojn.

Redakti → Alglui (Ctrl+V)

  Ĉi tio enigos la unuan eron en la tondujo ĉe la kursora pozicio. La tondujo funkcias nevideble kaj provizas manieron transdoni datumojn inter aplikaĵoj.

  ### Rimarko

  Se Anstataŭigi Elekton estas ebligita, la algluita teksto anstataŭigos la elekton, se ekzistas.

Redakti → Alglui elekton (Ctrl+Majuskligo+Ins)

  Ĉi tio algluos la enhavon de muselekto, kiuj antaŭe estis elektitaj. Marku iun tekston per la musmontrilo por alglui ĝin en la nun malfermitan dosieron uzante ĉi tiun menueron.

Redakti → Interŝanĝi kun enhavo de tondujo

  Ĉi tio interŝanĝos la elektitan tekston kun la enhavo de clipboard.

Redakti → Alglui historion de la tondujo

  Ĉi tio malfermos dialogon por elekti kaj alglui enskribon el la historio de la tondujo.

Redakti → Enigareĝimoj

  Ŝanĝu inter normala kaj vi-simila, modala redakta reĝimo. La vi-eniga reĝimo subtenas la plej uzatajn komandojn kaj movojn de la normala kaj vida reĝimo de vim kaj havas laŭvolan vi-reĝiman statusbreton. Ĉi tiu statusbreto montras komandojn dum ili estas enigitaj, eligo de komandoj kaj la nuna reĝimo. La konduto de ĉi tiu reĝimo povas esti agordita en la langeto Vi-Eniga Reĝimo de la paĝo Redaktado en KatePart la agorda dialogo de.

Redakti → Anstataŭigi reĝimon (Ins)

  Ŝaltas la Enmeti/Anstataŭigi reĝimojn. Kiam la reĝimo estas INS, vi enmetas signojn kie estas la kursoro. Kiam la reĝimo estas OVR, skribi signojn anstataŭigos la nunajn signojn se via kursoro estas poziciigita antaŭ iu signo. La statusbreto montras la nunan staton de la Anstataŭiga Reĝimo, ĉu INS aŭ OVR.

Redakti → Nurlega reĝimo

  Agordu la nunan dokumenton al Nurlega reĝimo. Ĉi tio malhelpas ajnan tekston aldonon kaj ajnajn ŝanĝojn en la dokumentformatado.

Redakti → Trovi... (Ctrl+F)

  Ĉi tio malfermas la pliigan serĉbreton ĉe la malsupro de la redaktila fenestro. Sur la maldekstra flanko de la breto estas butono kun piktogramo por fermi la breton, sekvita de malgranda tekstujo por enigi la serĉan ŝablonon.

  Kiam vi komencas enigi signojn de via serĉŝablono, la serĉo komenciĝas tuj. Se estas kongruo en la teksto, ĉi tio estas emfazita kaj la fonkoloro de la enirkampo ŝanĝiĝas al helverda. Se la serĉŝablono ne kongruas kun iu ajn ĉeno en la teksto, tio estas indikita per helruĝa fonkoloro de la enirkampo.

  Uzu la aŭ butono por salti al la sekva aŭ antaŭa kongruo en la dokumento.

  Kongruoj en la dokumento estas emfazitaj eĉ kiam vi fermas la serĉbreton. Por forigi ĉi tiun reliefigon, premu la Esc; ŝlosilo.

  Vi povas elekti ĉu la serĉo distingu minusklecojn. Elektante limigos trovaĵojn al enskriboj kiuj kongruas kun la majusklo. (supra aŭ malsupra) de ĉiu el la signoj en la serĉŝablono.

  Alklaku la butonon ĉe la dekstra flanko de la pliiga serĉo stango por ŝanĝi al la potenca serĉo kaj anstataŭigi stango.

Redakti → Trovi Variaĵojn → Trovi Sekva (F3)

  Ĉi tio ripetas la lastan trovoperacion, se ekzistas, sen voki la pliigan serĉbreton, kaj serĉante antaŭen tra la dokumento komencante de la kursora pozicio.

Redakti → Trovi Variaĵojn → Trovu Antaŭan (Majuskligo+F3)

  Ĉi tio ripetas la lastan trovan operacion, se ekzistas, sen voki la pliigan serĉbreton, kaj serĉante malantaŭen anstataŭ antaŭen tra la dokumento.

Redakti → Trovi Variaĵojn → Trovi Elektitan (Ctrl+H)

  Trovas sekvan aperon de elektita teksto.

Redakti → Trovi Variaĵojn → Trovi Elektitan Malantaŭen (Ctrl+Majuskligo+H)

  Trovas antaŭan aperon de elektita teksto.

Redakti → Anstataŭigi... (Ctrl+R)

  Ĉi tiu komando malfermas la elektran serĉon kaj anstataŭigon. Sur la supra maldekstra flanko de la breto estas butono kun piktogramo por fermi la breton, sekvata de malgranda tekstujo por enigi la serĉan ŝablonon.

  Vi povas kontroli la serĉreĝimon elektante Plan tekston, Tutaj vortoj, Eskapaj sekvencoj aŭ Regula esprimo el la guto malsupren skatolo.

  Se estas elektitaj Eskapaj sekvencoj aŭ Regula esprimo, la menuero Aldoni... ĉe la malsupro de la kunteksta menuo de la tekstkestoj estos ebligita. kaj permesas al vi aldoni eskapsekvencojn aŭ regulajn esprimojn al la serĉo aŭ anstataŭigi ŝablonon el antaŭdifinitaj listoj.

  Uzu la aŭ butono por salti al la sekva aŭ antaŭa kongruo en la dokumento.

  Enigu la tekston por anstataŭigi en la tekstujon kun la etikedo Anstataŭigi kaj alklaku la butonon Anstataŭigi por anstataŭigi nur la emfazitan tekston aŭ la butonon Anstataŭigi Ĉion por anstataŭigu la serĉtekston en la tuta dokumento.

  Vi povas modifi la serĉon kaj anstataŭigi konduton elektante malsamajn opciojn ĉe la malsupro de la stango. Elektante limigos trovaĵojn al enskriboj kiuj kongruas kun la majusklo. (supra aŭ malsupra) de ĉiu el la signoj en la serĉŝablono. serĉos kaj anstataŭigos nur ene de la nuna elekto. La butono Trovu Ĉion elstarigas ĉiujn kongruojn en la dokumento kaj montras la nombron da trovitaj kongruoj en malgranda ŝprucfenestro.

  Alklaku la butonon ĉe la dekstra flanko de la potenca serĉo kaj anstataŭigu breton por ŝanĝi al la pliiga serĉbreto.

La Elekta Menuo
La Elekta Menuo

## La Elekta Menuo

Elekto → Elektu ĉion (Ctrl+A)

  Ĉi tio elektos la tutan dokumenton. Ĉi tio povus esti tre utila por kopii la tutan dosieron al alia aplikaĵo.

Elekto → Malelekto (Ctrl+Majuskligo+A)

  Malelektas la elektitan tekston en la redaktilo se ekzistas.

Selektado → Blok-Elekta Reĝimo (Ctrl+Majuskligo+B)

  Ŝaltas Elektan Reĝimon. Kiam la Elekta Reĝimo estas BLOKI, la statusbreto enhavas la ĉenon [BLOKI] kaj vi povas fari vertikalajn elektojn, ekz. elektu kolumnon 5 ĝis 10 en linioj 9 ĝis 15.

Elekto → Komento (Ctrl+D)

  Ĉi tio aldonas unu spacon al la komenco de la linio kie troviĝas la tekstkursoro aŭ al la komenco de iuj elektitaj linioj.

Elekto → Malkomenti (Ctrl+Majuskligo+D)

  Ĉi tio forigas unu spacon (se ekzistas) de la komenco de la linio kie troviĝas la tekstokurso aŭ de la komenco de iuj elektitaj linioj.

Elekto → Aligi Liniojn (Ctrl+J)

  Kunigas la elektitajn liniojn, aŭ la nunan linion kaj la suban linion per unu blankspaca signo kiel apartigilo. Ĉefa/malantaŭa blanka spaco sur kunigitaj linioj estas forigita en la trafitaj finoj.

Elekto → Majuskligo (Ctrl+Alt+U)

  Majuskle la elektitan tekston aŭ la nunan vorton.

Elekto → Majuskla (Ctrl+U)

  Metu la elektitan tekston aŭ la literon post la kursoro majuskle.

Elekto → Minusklo (Ctrl+Majuskligo+U)

  Metu la elektitan tekston aŭ la literon post la kursoro minuskle.

Elekto → Purigi indentaĵon

  Ĉi tio purigas la indentaĵon por la nuna elekto aŭ por la linio en kiu la kursoro estas nuntempe. Purigi la indentaĵon certigas, ke via tuta elektita teksto sekvas la indentreĝimon, kiun vi elektas.

Elekto → Formati Indent

  Kaŭzas harmoniigon de la nuna linio aŭ elektitaj linioj uzante la indentreĝimon kaj indentajn agordojn en la dokumento.

Elekto → Allinigu Sur...

  Ĉi tiu komando vicigas liniojn en la elektita bloko aŭ tuta dokumento sur la kolumno donita de regula esprimo, pri kiu oni petos vin.

  Se vi donas malplenan ŝablonon, ĝi aliĝus al la unua nemalplena signo defaŭlte.

  Se la ŝablono havas kapton, ĝi deŝovos sur la kaptita kongruo.

  Ekzemploj:

  Per '`-`' ĝi enmetos spacojn antaŭ la unua '-' de ĉiu linioj por vicigi ilin ĉiujn sur la sama kolumno.

  Per '`alignon :\\s+(.)`' ĝi enmetos spacojn antaŭ la unua nemalplena signo kiu okazas post dupunkto por vicigi ilin ĉiujn sur la sama kolumno.

Elekto → Apliki Vortvolviĝon

  Apliki senmovan vortvolvadon sur la tuta dokumento. Tio signifas, ke nova linio de teksto aŭtomate komenciĝos kiam la nuna linio superas la longon specifitan per la opcio Envolvi vortojn ĉe en la langeto Redaktado en Agordoj → Agordu Redaktilon... menuo.

Elekto → Aldoni signon super la Kursoro (Ctrl+Alt+Up)

  Aldonas alian signon super la nuna kursoro. La signo estas metita en la linion rekte super kaj en la sama kolumno kiel la nuna kursoro.

Elekto → Aldoni signon sub Kursoro (Ctrl+Alt+Down)

  Aldonas alian signon sub la nuna kursoro. La signo estas metita en la linion rekte super kaj en la sama kolumno kiel la nuna kursoro.

Elekto → Aldoni Kursorojn al liniofinoj (Alt+Majuskligo+Mi)

  Aldonas kursoron al ĉiu nun elektita linio.

Elekto → Trovu kaj Elektu Sekvan Okazon (Alt+J)

  Trovas la sekvan aperon de la vorto nuntempe sub la kursoro, elektas ĝin kaj aldonas kursoron.

Elekto → Trovu kaj Elektu ĉiujn Okazoj (Ctrl+Alt+Majuskligo+J)

  Trovas ĉiujn aperon de la vorto nuntempe sub la kursoro, elektas ilin kaj aldonas kursoron por ĉiu el ili.

La Vida Menuo
La Vida Menuo

## La Vida Menuo

Vidi → Pligrandigi tiparon (Ctrl++)

  Ĉi tio pliigas la montran tiparon.

Vidi → Malgrandigi tiparon (Ctrl+-)

  Ĉi tio malpliigas la montran tiparon.

Vidi → Vortvolvaĵo → Dinamika Vortvolvaĵo (F10)

  Ŝaltas dinamikan vortvolvaĵon en la nuna vido. Dinamika vortvolvado igas la tutan tekston en vido videbla sen la bezono de horizontala movo per bildigo de unu reala linio sur pli vidaj linioj laŭbezone.

Vidi → Vortvolvaĵo → Dinamikaj Vortvolvaĵo-Indikiloj

  Elektu kiam kaj kiel la dinamikaj vortvolvaj indikiloj estu montrataj. Ĉi tio disponeblas nur se la opcio Dinamika Vortvolviĝo estas markita.

Vidi → Vortvolvaĵo → Montri Senmovan Vortvolvaĵmarkon

  Se ĉi tiu opcio estas markita, vertikala linio estos desegnita ĉe la vortvolva kolumno kiel difinita en la Agordoj → Agordi Redaktilon... en la Redakta langeto. Bonvolu noti, ke la vortvolva markilo estas desegnita nur se vi uzas fiksan tonaltiparo.

Vidi → Bordoj → Montri piktogramon Limo (F6)

  Ĉi tio estas baskulo. Agordi ĝin ĉe markita faros la Piktograman Bordon videbla en la maldekstra flanko de la aktiva redaktilo, kaj inverse. La Piktograma Bordo indikas la poziciojn de la markitaj linioj en la redaktilo.

Vidi → Bordoj → Montri linion Nombroj (F11)

  Ĉi tio estas ŝaltilo. Agordi ĝin ĉe markita igos panelon montrantan la linionumeroj de la dokumento videblaj en la maldekstra rando de la aktiva redaktilo, kaj inverse.

Vidi → Bordoj → Montri Srollbar Marks

  Se ĉi tiu opcio estas markita, la vido montros markojn sur la vertikala rulumbreto. La markoj estas ekvivalentaj al la markoj sur la Piktograma Bordo.

Vidi → Bordoj → Montri Srollbar Mini-Mapon

  Ĉi tio anstataŭigos la rulumbreton per bildigo de la nuna dokumento. Por pliaj informoj pri la rulumbreto-minimapo, vidu la sekcio nomata “La Rulumbreta Minimapo”.

Vidi → Kodfaldado

  Ĉi tiuj opcioj rilatas al kodfaldado:

  Vidi → Bordoj → Kodfaldado → Montri faldeblajn markilojn

    Ŝaltas la ekranon de la faldebla markilo en la maldekstra flanko de la vido.

  Vidi → Kodfaldado → Faldi Nuna Nodo

    Kolapu la regionon, kiu enhavas la kursoron.

  Vidi → Kodfaldado → Malfaldi Nunan Nodon

    Vastigu la regionon, kiu enhavas la kursoron.

  Vidi → Kodfaldado → Faldi Suprannivelajn Nodojn (Ctrl+Majuskligo+-)

    Kolapu ĉiujn altnivelajn regionojn en la dokumento. Klaku sur la dekstra indika triangulo por vastigi ĉiujn altnivelajn regionojn.

  Vidi → Kodfaldado → Disfaldu Suprannivelajn Nodojn (Ctrl+Majuskligo++)

    Vastigu ĉiujn altnivelajn regionojn en la dokumento.

Montru Ne-Preseblajn Spacojn

  Montri/kaŝi limkeston ĉirkaŭ nepreseblaj spacoj.

La Iru-Menuo
La Iru-Menuo

## La Iru-Menuo

Iri → Iri al Linio... (Ctrl+G)

  Ĉi tio malfermas la goto-linibreton ĉe la fundo de la fenestro, kiu estas uzata por ke la kursoro saltu al aparta linio (specifita per nombro) en la dokumento. La linionumero povas esti enigita rekte en la tekstkeston aŭ grafike alklakante la supren aŭ malsupren-spinajn kontrolojn ĉe la flanko de la tekstkesto. La eta sago supren pliigos la linionumeron kaj la malsupren sago malpliigos ĝin. Fermu la breton per klako sur la butono kun piktogramo sur la maldekstra flanko de la breto.

Iri → Iri al Antaŭa Redakta Linio (Ctrl+E)

  Ĉi tiu ago transsaltas la antaŭan redaktan linion en la plurkursor-modifila agordo.

Iri → Iri al Sekva Redakta Linio (Ctrl+Majuskligo+E)

  Ĉi tiu ago transsaltas la sekvan redaktan linion en la plurkursor-modifila agordo.

Iri → Iri al Antaŭa Modifita Linio

  Linioj kiuj estis ŝanĝitaj ekde la malfermo de la dosiero estas nomitaj modifitaj linioj. Ĉi tiu ago saltas la antaŭan modifitan linion.

Iri → Iri al Sekva Modifita Linio

  Linioj kiuj estis ŝanĝitaj ekde la malfermo de la dosiero estas nomitaj modifitaj linioj. Ĉi tiu ago saltas la sekvan modifitan linion.

Iri → Iri al Kongrua krampo (Ctrl+6)

  Movu la kursoron al la rilata malferma aŭ ferma krampo.

Iri → Elektu al Kongrua krampo (Ctrl+Majuskligo+6)

  Elektas la tekston inter rilataj malfermaj kaj fermaj krampoj.

Iri → Legosignoj (Ctrl+Majuskligo+6)

  Sub la enskriboj priskribitaj ĉi tie, unu enskribo por ĉiu legosigno en la aktiva dokumento estos disponebla. La teksto estos la unuaj vortoj de la markita linio. Elektu eron por movi la kursoron al la komenco de tiu linio. La redaktilo rulumos laŭbezone por ke tiu linio videbla.

Iri → Legosignoj → Agordu legosignon (Ctrl+B)

  Agordas aŭ forigas legosignon en la nuna linio de la aktiva dokumento. (Se ĝi estas tie, ĝi estas forigita, alie unu estas starigita.)

Iri → Legosignoj → Forviŝi ĉiujn legosignojn

  Ĉi tiu komando forigos ĉiujn markilojn de la dokumento kaj ankaŭ la liston de markiloj, kiu estas almetita ĉe la malsupro de ĉi tiu menuero.

Iri → Legosignoj → Antaŭa (Alt+PgUp)

  Ĉi tio movos la kursoron al la komenco de la unua supra linio kun legosigno. La menuero teksto inkluzivos la linionumeron kaj la unuan pecon de teksto sur la linio. Ĉi tiu ero disponeblas nur kiam estas legosigno en linio super la kursoro.

Iri → Legosignoj → Sekva (Alt+PgDn)

  Ĉi tio movos la kursoron al la komenco de la sekva linio kun legosigno. La menuero teksto inkluzivos la linionumeron kaj la unuan pecon de teksto sur la linio. Ĉi tiu aĵo disponeblas nur kiam estas legosigno en linio sub la kursoro.

La Iloj-Menuo
La Iloj-Menuo

## La Iloj-Menuo

Iloj → Reĝimo

  Elektu la dosiertipskemon, kiun vi preferas por la aktiva dokumento. Ĉi tio anstataŭigas la ĉiean dosiertipan reĝimon fiksitan en Agordoj → Agordu Redaktilon... en la langeto Dosiertipoj nur por via nuna dokumento.

Iloj → Elstarigado

  Elektu la Substrekigan skemon, kiun vi preferas por la aktiva dokumento. Ĉi tio anstataŭigas la ĉiean emfazan reĝimon fiksitan en Agordoj → Agordu Redaktilon... nur por via nuna dokumento.

Iloj → Indentaĵo

  Elektu la stilon de indentaĵo, kiun vi volas por via aktiva dokumento. Ĉi tio anstataŭigas la ĉiean indentreĝimon fiksitan en Agordoj → Agordu Redaktilon... nur por via nuna dokumento.

Iloj → Kodigo

  Vi povas anstataŭigi la defaŭltan kodigon en Agordoj → Agordu Redaktilon... en la paĝo Malfermu/Konservi por agordi malsama kodigo por via nuna dokumento. La kodado, kiun vi starigis ĉi tie, validos nur por via nuna dokumento.

Iloj → Aldoni Byte Mark Order (BOM)

  Kontrolante ĉi tiun agon, vi povas eksplicite aldoni bajtan ordomarkon por unikodaj koditaj dokumentoj. La bajta ordomarko (BOM) estas Unikoda signo uzata por signali la endianecon (bajto-ordo) de tekstdosiero aŭ fluo, por pliaj informoj vidu Byte Order Mark.

Iloj → Fino de linio

  Elektu vian preferatan linioreĝimon por via aktiva dokumento. Ĉi tio anstataŭigas la ĉiean finlinian reĝimon fiksitan en Agordoj → Agordu Redaktilon... nur por via nuna dokumento.

Iloj → Skriptoj

  Ĉi tiu submenuo enhavas liston de ĉiuj skribitaj agoj. La listo povas esti facile modifita per verkante viajn proprajn skriptojn. Tiel, KatePart povas esti etendita per uzant-difinitaj iloj.

  Iloj → Skriptoj → Navigado
    Iloj → Skriptoj → Navigado → Movu kursoron al antaŭa kongrua streko (Alt+Majuskligo+Up)

      Movas la kursoron al la unua linio super la nuna linio kiu estas indentigita je la sama nivelo kiel la nuna linio.

    Iloj → Skriptoj → Navigado → Movu kursoron al la sekva kongrua streko (Alt+Majuskligo+Down)

      Movas la kursoron al la unua linio sub la nuna linio kiu estas indentigita je la sama nivelo kiel la nuna linio.

  Iloj → Skriptoj → Redaktado
    Iloj → Skriptoj → Redaktado → Ordigu Elektitan Tekston

      Ordigas la elektitan tekston aŭ tutan dokumenton en suprena ordo.

    Iloj → Skriptoj → Redaktado → Movu Liniojn Malsupren (Ctrl+Majuskligo+Down)

      Movu elektitajn liniojn malsupren.

    Iloj → Skriptoj → Redaktado → Movu liniojn supren (Ctrl+Majuskligo+Up)

      Movu elektitajn liniojn supren.

    Iloj → Skriptoj → Redaktado → Dobligi Elektitajn Liniojn Malsupren (Ctrl+Alt+Down)

      Duobligas la elektitajn liniojn malsupren.

    Iloj → Skriptoj → Redaktado → Dobligi Elektitajn Vicojn Supren (Ctrl+Alt+Up)

      Duobligas la elektitajn liniojn.

    Iloj → Skriptoj → Redaktado → URI-kodigi elektitan tekston

      Kodas la elektitan tekston tiel ke ĝi povas esti uzata kiel parto de demanda ĉeno en URL, anstataŭigante la elekton per la ĉifrita teksto.

    Iloj → Skriptoj → Redaktado → URI-malkodi elektitan tekston

      Se parto de la demandĉeno de URL estas elektita, ĉi tio malkodos ĝin kaj anstataŭigos la elekton per la originala kruda teksto.

  Iloj → Skriptoj → Emmet
    Iloj → Skriptoj → Emmet → Pligrandigi mallongigon

      Konvertas la elektitan tekston al paro de malfermaj kaj fermaj HTML aŭ XML etikedoj. Ekzemple, se estas elektita `div`, ĉi tiu ero anstataŭigos tion per `<div></div>`.

    Iloj → Skriptoj → Emmet → Envolvi per etikedo

      Envolvas la elektitan tekston per la etikedo provizita sur la komandlinio.

    Iloj → Skriptoj → Emmet → Movu kursoron al kongrua etikedo

      Se la kursoro estas ene de malferma HTML/XML etikedo, ĉi tiu ero movos ĝin al la ferma etikedo. Se la kursoro estas ene de la ferma etikedo, ĝi anstataŭe movos ĝin al la malferma etikedo.

    Iloj → Skriptoj → Emmet → Elektu HTML/XML etikedu enhavon internen

      Kiam la kursoro estas ene de paro de HTML/XML etikedoj, ĉi tiu opcio ŝanĝos la elekton por inkluzivi la enhavon de tiuj HTML/XML etikedoj, sen elekti la etikedojn mem.

    Iloj → Skriptoj → Emmet → Elektu HTML/XML etikedu enhavon eksteren

      Kiam la kursoro estas ene de paro de HTML/XML etikedoj, ĉi tiu ero ŝanĝos la elekton por inkluzivi la enhavon de tiuj HTML/XML etikedoj, inkluzive de la etikedoj mem.

    Iloj → Skriptoj → Emmet → Balkuli komenton

      Se la elektita parto ne estas komento, tiu ĉi ero enfermos tiun parton en HTML/XML komentoj (ekz. `<!-- elektita teksto -->`). Se la elektita parto estas komento, la komentaj etikedoj estos forigitaj anstataŭe.

    Iloj → Skriptoj → Emmet → Forigi etikedon sub kursoro

      Se la kursoro estas nuntempe ene de HTML/XML etikedo, ĉi tiu ero forigos la tutan etikedon.

    Iloj → Skriptoj → Emmet → Malpliigi nombron je 1

      Ĉi tiu ero subtrahos unu el la nun elektita teksto, se ĝi estas nombro. Ekzemple, se `5` estas elektita, ĝi fariĝos `4`.

    Iloj → Skriptoj → Emmet → Malpliigi nombron je 10

      Ĉi tiu ero subtrahos 10 el la nuntempe elektita teksto, se ĝi estas nombro. Ekzemple, se estas elektita `15`, ĝi fariĝos `5`.

    Iloj → Skriptoj → Emmet → Malpliigu nombron je 0,1

      Ĉi tiu ero subtrahos 0,1 el la nun elektita teksto, se ĝi estas nombro. Ekzemple, se estas elektita `4.5`, ĝi fariĝos `4.4`.

    Iloj → Skriptoj → Emmet → Pliigi nombron je 1

      Ĉi tiu ero aldonos unu al la nun elektita teksto, se ĝi estas nombro. Ekzemple, se estas elektita `5`, ĝi fariĝos `6`.

    Iloj → Skriptoj → Emmet → Pliigi nombron je 10

      Ĉi tiu ero aldonos 10 al la nun elektita teksto, se ĝi estas nombro. Ekzemple, se estas elektita `5`, ĝi fariĝos `15`.

    Iloj → Skriptoj → Emmet → Pliigi nombron je 0,1

      Ĉi tiu ero aldonos 0.1 al la nun elektita teksto, se ĝi estas nombro. Ekzemple, se estas elektita `4.5`, ĝi fariĝos `4.6`.

Iloj → Ŝanĝi al komandlinio (F7)

  Montras la KatePart komandlinio malsupre de la fenestro. En la komandlinio, tajpu `help` por ricevi helpon kaj `help list` por ricevi liston de ordonoj. Por pliaj informoj pri la komandlinio, vidu La Komandlinio de Redaktoro.

Iloj → Alvoki Kodkompletigon (Ctrl+Spaceto)

  Mane alvoku komandkompletigon, kutime uzante mallongvojon ligitan al ĉi tiu ago.

Iloj → Vortkompletigo

  Reuzo Vorto Malsupre (Ctrl+9) kaj Reuzo Vorto Supre (Ctrl+8) kompletigas la nun tajpitan tekston serĉante similajn vortojn malantaŭen aŭ antaŭen de la nuna kursora pozicio. Ŝela Kompletigo ekaperas kompletigan skatolon kun kongruaj enskriboj.

Iloj → Literumo → Aŭtomata Literuma Kontrolo (Ctrl+Majuskligo+O)

  Kiam Aŭtomata Literuma Kontrolo estas ebligita, malĝuste literumita teksto estas substrekita en la dokumento tuj.

Iloj → Literumo → Literumo...

  Tio iniciatas la literumkontrolan programon - programo desegnita por helpi la uzanton kapti kaj korekti iujn ajn literumajn erarojn. Alklakante ĉi tiun eniron lanĉos la kontrolilon kaj aperigos la literuman dialogkeston per kiu la uzanto povas kontroli la procezon. . Estas kvar agordoj vicigitaj vertikale en la centro de la dialogo kun iliaj respondaj etikedoj ĝuste maldekstre. Komencante de la supro ili estas:

  Nekonata vorto:

    Ĉi tie, la literumkontrolilo indikas la vorton nuntempe konsiderata. Tio okazas kiam la kontrolilo renkontas vorton ne en sia vortaro - dosieron enhavanta liston de ĝuste literumitaj vortoj kontraŭ kiuj ĝi komparas ĉiun vorton en la redaktilo.

  Anstataŭigi per:

    Se la kontrolilo havas iujn similajn vortojn en sia vortaro, la unua estos listigita ĉi tie. La uzanto povas akcepti la sugeston, tajpi sian propran korekton aŭ elekti alian sugeston el la sekva skatolo.

  Lingvo:

    Se vi instalis plurajn vortarojn, ĉi tie vi povas elekti kiun vortaron/lingvon oni uzu.

  Sur la dekstra flanko de la dialogkesto estas 6 butonoj kiuj permesas al la uzanto kontroli la literumkontrolo procezo. Ili estas:

  Aldoni al Vortaro

    Premante ĉi tiun butonon aldonas la Nekonata vorto al la vortaro de la kontrolilo. Tio signifas, ke estonte la kontrolilo ĉiam konsideros ĉi tiun vorton ĝuste literumita.

  Proponi

    La kontrolilo povas listigi ĉi tie kelkajn eblajn anstataŭaĵojn por la konsiderata vorto. Klako sur iu ajn el la sugestoj igos tiun vorton enigi en la skatolo Anstataŭigi per supre.

  Anstataŭigi

    Ĉi tiu butono havas la kontrolilon anstataŭigas la konsideran vorton en la dokumento per la vorto en la skatolo Anstataŭigi per.

  Anstataŭigi Ĉion

    Ĉi tiu butono igas la kontrolilon anstataŭigi ne nur la nunan Nekonata vorto: sed aŭtomate fari la saman anstataŭigon por iuj aliaj okazoj de ĉi tiu Nekonata vorto en la dokumento.

  Ignoru

    Aktivigi ĉi tiun butonon havos la kontrolilon antaŭeniri sen fari ajnajn ŝanĝojn.

  Ignori Ĉion

    Ĉi tiu butono diras al la kontrolilo fari nenion kun la nuna Nekonata vorto: kaj preterpasi iujn aliajn okazojn de la sama vorto.

    ### Rimarko

    Ĉi tio validas nur por la nuna literumkontrolo. Se la kontrolilo denove ruliĝas poste ĝi haltos sur ĉi tiu sama vorto.

  Tri pliaj butonoj situas horizontale laŭ la fundo de la literumkontrola dialogo. Ili estas:

  Helpo

    Ĉi tio alvokas la KDE helpsistemon kun la helppaĝo por ĉi tiu dialogo.

  Finita

    Ĉi tiu butono finas la literumkontrolon, kaj revenas al la dokumento.

  Nuligi

    Ĉi tiu butono nuligas la literumkontrolon, ĉiuj modifoj estas revertitaj, kaj vi revenos al via dokumento.

Iloj → Literumo → Literumo (de kursoro)...

  Ĉi tio komencas la ortkontrolan programon sed ĝi komenciĝas kie estas via kursoro anstataŭ ĉe la komenco de la dokumento.

Iloj → Literumo → Literumokontrola Elekto...

  Literumkontrolas la nunan elekton.

Iloj → Literumo → Ŝanĝi Vortaron

  Montras falkeston kun ĉiuj disponeblaj vortaroj por literumkontrolo ĉe la malsupro de la redaktila fenestro. Tio ebligas facilan ŝanĝadon de la ortkontrola vortaro ekz. por aŭtomata literumkontrolo de teksto en diversaj lingvoj.

La Agordoj kaj Helpo-Menuo
La Agordoj kaj Helpo-Menuo

## La Agordoj kaj Helpo-Menuo

Agordoj → Redaktila Koloro-Temo

  Ĉi tiu menuo listigas la disponeblajn kolorskemojn. Vi povas ŝanĝi la skemon por la nuna vido ĉi tie, por ŝanĝi la defaŭltan skemon vi devas uzi la Tiparoj & Koloroj paĝo de la agorda dialogo.

KatePart havas la komunan KDE Agordoj kaj Helpo menueroj, por pliaj informoj legu la sekciojn pri la Agordoj Menuo kaj Helpo-Menuo de la KDE Fundamentoj.

Ĉapitro 5. Altnivelaj Redaktaj Iloj
Altnivelaj Redaktaj Iloj

# Ĉapitro 5. Altnivelaj Redaktaj Iloj

Anders Lund `<anders@alweb.dk>`

Dominik Haumann `<dhdev@gmx.de>`

Translation: Oliver Kellogg

## Komenti/Malkomenti

La komandoj Komenti kaj Malkomenti, disponeblaj el la menuo Iloj permesas aldoni aŭ forigi komentsignojn al la elekto, aŭ la nunan linion se ne. teksto estas elektita, se komentoj estas subtenataj de la formato de la teksto, kiun vi redaktas.

La reguloj pri kiel komentado estas farata estas difinitaj en la sintaksaj difinoj, do se sintaksa reliefigo ne estas uzata, komentado/malkomentado ne eblas.

Kelkaj formatoj difinas unuliniajn komentmarkojn, kelkajn plurliniajn markilojn kaj iujn ambaŭ. Se plurliniaj markiloj ne estas disponeblaj, ne eblas komenti elekton, kiu ne plene inkluzivas ĝian lastan linion.

Se unulinia markilo estas disponebla, komentado de unulinioj estas preferinda kie aplikebla, ĉar tio helpas eviti problemojn kun nestitaj komentoj.

Kiam oni forigas komentajn markilojn, neniu nekomentita teksto estu elektita. Kiam oni forigas plurliniajn komentmarkojn de elekto, ajna blankspaco ekster la komentmarkoj estas ignorita.

Por meti komentajn markilojn, uzu la menueron Iloj → Komento aŭ la rilatan klavkombinan sekvencon, la defaŭlta estas Ctrl+D.

Por forigi komentajn markilojn, uzu la menueron Iloj → Malkomenti aŭ la rilatan klavkombion, la defaŭlta estas Ctrl+Majuskligo+D.

La Redaktilkomponanta Komandlinio
La Redaktilkomponanta Komandlinio

## La Redaktilkomponanta Komandlinio

La redaktilo de KatePart havas internan komandlinion, ebligante al vi fari diversajn agojn de minimuma GUI. La komandlinio estas teksta eniro ĉe la fundo de la redaktilo; por montri ĝin elektu Vidi → Ŝanĝu al komandlinio aŭ uzu la ŝparvojon (defaŭlte estas ). F7). La redaktilo disponigas aron da komandoj kiel dokumentite sube, kaj kromaj komandoj povas esti provizitaj per kromaĵoj.

Por efektivigi komandon, tajpu la komandon kaj premu la revenklavon. La komandlinio indikos ĉu ĝi sukcesis kaj eble montros mesaĝon. Se vi enigis la komandlinion premante F7 ĝi aŭtomate kaŝos post kelkaj sekundoj. Por forigi la mesaĝon kaj enigi novan komandon, premu F7 denove.

La komandlinio havas enkonstruitan helpsistemon; eldonu la komandon help por komenci. Por vidi liston de ĉiuj disponeblaj komandoj eldonu help list; por vidi helpon pri specifa komando, faru help `komando`.

La komandlinio havas enkonstruitan historion, do vi povas reuzi komandojn jam tajpitajn. Por navigi la historion, uzu la klavojn Up kaj Down. Kiam vi montras historiajn ordonojn, la argumenta parto de la komando estos elektita, permesante al vi facile anstataŭigi la argumentojn.

### Normaj Komandliniaj Komandoj

Argumentaj tipoj

BOOLEAN

  Ĉi tio estas uzata kun komandoj, kiuj ŝaltas aŭ malŝaltas aferojn. Laŭleĝaj valoroj estas `on`, `off`, `true`, `false`, `1` aŭ `0`.

INTEGER

  Entjera nombro.

STRING

  Ĉeno, ĉirkaŭita de unuopaj citiloj (') aŭ duoblaj citiloj (") kiam ĝi enhavas spacojn.

#### Komandoj por Agordo de la Redaktoro

Ĉi tiuj komandoj estas provizitaj de la redaktilo, kaj permesas vin agordi la aktivan dokumenton kaj vidon nur. Ĉi tio estas oportuna se vi volas uzi agordon malsaman de la defaŭltaj agordoj, ekzemple por indentaĵo.

set-tab-width {INTEGER larĝo}

  Agordas la tab-larĝon al la nombro `kun`.

set-indent-width {INTEGER larĝo}

  Agordas la indentlarĝon al la nombro `larĝo`. Uzata nur se vi indentigas per spacoj.

set-word-wrap-column {INTEGER larĝo}

  Agordas la linilarĝon por malmola volvado al `larĝo`. Ĉi tio estas uzata se vi envolvas vian tekston aŭtomate.

set-icon-border {BOOLEAN aktivigo}

  Agordas la videblecon de la piktogramo.

set-folding-markers {BOOLEAN aktivigi}

  Agordas la videblecon de la faldebla markilo-fenestro.

set-line-numbers {BOOLEAN ebligi}

  Agordas la videblecon de la lininumera panelo.

set-replace-tabs {BOOLEAN aktivigo}

  Se enŝaltite, taboj estas anstataŭigitaj per spacoj dum vi tajpas.

set-remove-trailing-space {BOOLEAN aktivigo}

  Se ĝi estas ebligita, la malantaŭa blankspaco estas forigita kiam ajn la kursoro forlasas linion.

set-show-tabs {BOOLEAN aktivigi}

  Se ĝi estas ebligita, TAB-signoj kaj malantaŭa blankspaco estos bildigitaj per malgranda punkto.

set-show-indent {BOOLEAN aktivigo}

  Se ebligita, indentaĵo estos bildigita per vertikala punktlinio.

set-indent-spaces {BOOLEAN aktivigo}

  Se ĝi estas ebligita, la redaktilo deŝovos per `indent-width` spacoj por ĉiu indentnivelo, prefere ol per unu TAB-signo.

set-mixed-indent {BOOLEAN aktivigo}

  Se ebligita, KatePart uzos miksaĵon de TAB kaj spacoj por indentaĵo. Ĉiu indentnivelo estos larĝa `indent-width`, kaj pli da indentniveloj estos optimumigitaj por uzi tiom da TAB-signoj kiel eble.

  Kiam efektivigata, ĉi tiu komando aldone ebligos spacetan deŝovon, kaj se la indentlarĝo estas nespecifita, ĝi estos agordita al duono de la `tab-larĝo` por la dokumento en la momento de la efektivigo.

set-word-wrap {BOOLEAN aktivigo}

  Ebligas dinamikan vortŝanĝon laŭ `ebligi`.

set-replace-tabs-save {BOOLEAN aktivigi }

  Kiam estas ebligita, taboj estos anstataŭigitaj per blankspaco kiam la dokumento estas konservita.

set-remove-trailing-space-save {BOOLEAN aktivigi}

  Kiam ĝi estas ebligita, posta spaco estos forigita de ĉiu linio kiam la dokumento estas konservita.

set-indent-mode {STRING nomo}

  Agordas la aŭtomatan indentan reĝimon al `nomo`. Se `nomo` ne estas konata, la reĝimo estas agordita al 'neniu'. Validaj reĝimoj estas 'neniu', 'normala', 'cstyle', 'haskell', 'lilypond', 'lisp', 'python', 'ruby' kaj 'xml'.

set-auto-ident {BOOLEAN skripto}

  Ebligi aŭ malŝalti aŭtomatan deŝovon.

set-highlight {STRING elstarigi}

  Agordas la sintaksan reliefigsistemon por la dokumento. La argumento devas esti valida elstara nomo, kiel vidite en la menuo Iloj → Elstarigado. Ĉi tiu komando provizas aŭtomatan liston por sia argumento.

reload-scripts

  Reŝargi ĉiujn JavaScript skriptoj uzataj de Kate, inkluzive de endentiloj kaj komandliniaj skriptoj.

set-mode {STRING reĝimo}

  Elektu la dosiertipskemon por la nuna dokumento.

nn[oremap] {STRING originala} {STRING mapita}

  Mapi la klavsekvencon `origina` al `mapita`.

#### Komandoj por redaktado

Ĉi tiuj komandoj modifas la nunan dokumenton.

indent

  Indentigas la elektitajn liniojn aŭ la nunan linion.

unindent

  Malstreĉigas la elektitajn liniojn aŭ aktualan linion.

cleanindent

  Purigas la indentaĵon de la elektitaj linioj aŭ aktuala linio laŭ la indentaĵagordoj en la dokumento.

comment

  Enmetas komentmarkojn por fari la elekton aŭ elektitajn liniojn aŭ nunan linion komento laŭ la tekstformato kiel difinita de la sintaksa emfaza difino por la dokumento.

uncomment

  Forigas komentsignojn de la elekto aŭ elektitaj linioj aŭ aktuala linio laŭ la tekstformato kiel difinita de la sintaksa emfaza difino por la dokumento.

kill-line

  Forigas la nunan linion.

replace { STRING ŝablono} {STRING anstataŭigo}

  Anstataŭigas tekston kongruan kun `ŝablono` per `anstataŭaĵo`. Se vi volas enmeti blankspacon en la `ŝablono`, vi devas citi kaj la `ŝablono` kaj `anstataŭaĵo` per unuopaj aŭ duoblaj citiloj. Se la argumentoj estas necititaj, la unua vorto estas uzata kiel `ŝablono` kaj la ceteraj por `anstataŭaĵo`. Se `anstataŭaĵo` estas malplena, ĉiu okazo de `ŝablono` estas forigita.

  Vi povas agordi flagojn por agordi la serĉon aldonante dupunkton, sekvitan de unu aŭ pluraj literoj ĉiu reprezentante agordon, donante la formon `replace:options padronanstataŭigo`. Disponeblaj opcioj estas:

  `b`

    Serĉi malantaŭen.

  `c`

    Serĉi ekde la pozicio de la kursoro.

  `e`

    Serĉi nur en la elekto.

  `r`

    Fari regul-espriman serĉon. Se agordita, vi povas uzi `\N` kie N estas nombro por reprezenti kaptojn en la anstataŭiga ĉeno.

  `s`

    Fari usklecdistingan serĉon.

  `p`

    Peti permeson anstataŭigi la sekvan okazon.

  `w`

    Kongrui nur tutajn vortojn.

date {STRING formato}

  Enmetas daton/horan ĉenon kiel difinitan per la specifita `formato`, aŭ la formaton “jjyy-MM-dd hh:mm:ss” se neniu estas specifita. La sekvaj tradukoj estas faritaj dum interpretado de `formato`:

  `d` | La tago kiel nombro sen unua nulo (1-31).
  `dd` | La tago kiel nombro kun unua nulo (01-31).
  `ddd` | La mallongigita lokalizita tagnomo (ekz. 'Lun'..'Suno').
  `ddd` | La longa lokalizita tagnomo (ekz. 'lundo'..'dimanĉo').
  `M` | La monato kiel nombro sen unua nulo (1-12).
  `MM` | La monato kiel nombro kun unua nulo (01-12).
  `MMMM` | La longa lokalizita monata nomo (ekz. 'januaro'..'decembro').
  `MMM` | La mallongigita lokalizita monata nomo (ekz. 'Jan'..'Dec').
  `jj` | La jaro kiel ducifera nombro (00-99).
  `yyyy` | La jaro kiel kvarcifera nombro (1752-8000).
  `h` | La horo sen antaŭa nulo (0..23 aŭ 1..12 se montriĝas AM/PM).
  `hh` | La horo kun unua nulo (00..23 aŭ 01..12 se montriĝas AM/PM).
  `m` | La minuto sen unua nulo (0..59).
  `mm` | La minuto kun unua nulo (00..59).
  `s` | La dua sen unua nulo (0..59).
  `ss` | La dua kun unua nulo (00..59).
  `z` | La milisekundoj sen antaŭaj nuloj (0..999).
  `zzz` | La milisekundoj kun antaŭaj nuloj (000..999).
  `AP` | Uzi AM/PM-montron. AP estos anstataŭigita per aŭ "AM" aŭ "PM".
  `ap` | Uzi am/pm-montron. ap estos anstataŭigita per aŭ "am" aŭ "pm".

char {STRING identigilo}

  Ĉi tiu komando permesas enmeti laŭvortajn signojn laŭ ilia nombra identigilo, en dekuma, okuma aŭ deksesuma formo. Por uzi ĝin lanĉu la dialogon de Redaktado-Komando kaj tajpu `char: [numero]` en la enirkesto, tiam premu OK.

  Ekzemplo 5.1. char ekzemploj

  Enigo: `char:234`

  Eligo: `ê`

  Enigo: `char:0x1234`

  Eligo: `ሴ`

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

  Ĉi tiu komando faras 'sed'-similan serĉan/anstataŭigan operacion sur la nuna linio, aŭ sur la tuta dosiero (%s///).

  Resume, la teksto estas serĉata por teksto kongrua kun la serĉa ŝablono, la regula esprimo inter la unua kaj la dua oblikvo, kaj kiam kongruo estas trovita, la kongrua parto de la teksto estas anstataŭigita per la esprimo. inter la dua kaj lasta oblikvo. Krampoj en la serĉŝablono kreas malantaŭajn referencojn, tio estas la komando memoras kiu parto de la ĉeno kongruis en la krampoj; ĉi tiuj ĉenoj povas esti reuzitaj en la anstataŭiga ŝablono, nomata `\1` por la unua aro de krampoj, `\2` por la dua ktp.

  Por serĉi laŭvortan `(` aŭ `)`, vi devas eskapi ĝin per malantaŭa oblikva signo: `\(\)`

  Se vi metas `i` ĉe la fino de la esprimo, la kongruo estos malsenca. Se vi metas `g` ĉe la fino, ĉiuj aperoj de la ŝablono estos anstataŭigitaj, alie nur la unua apero estas anstataŭigita.

  Ekzemplo 5.2. Anstataŭigante tekston en la nuna linio

  Via amika kompililo ĵus haltis, dirante al vi, ke la klaso `miaKlaso` menciita en linio 3902 en via fontdosiero ne estas difinita.

  "Buko!" vi pensas, ĝi estas kompreneble `MiaKlaso`. Vi iras al linio 3902, kaj anstataŭ provi trovi la vorton en la teksto, vi lanĉas la Redaktan Komando-Dialogon, enigas `s/miaklaso/MiaKlaso/i`, premas la OK butonon, konservas la dosieron kaj kompilas – sukcese sen la eraro.

  Ekzemplo 5.3. Anstataŭigante tekston en la tuta dosiero

  Imagu, ke vi havas dosieron, en kiu vi plurfoje mencias “Fraŭlino Jensen”, kiam iu envenas kaj diras al vi, ke ŝi ĵus edziĝis al “Sinjoro Jones”. Vi volas, kompreneble, anstataŭigi ĉiun kaj ĉiun aperon de “Fraŭlino Jensen” per “S-ino Jones”.

  Enigu la komandlinion kaj eligu la komandon `%s/Miss Jensen/Ms Jones/` kaj premu enigklavon, vi finis.

  Ekzemplo 5.4. Pli Altnivela Ekzemplo

  Ĉi tiu ekzemplo uzas malantaŭajn referencojn kaj ankaŭ karaktroklason (se vi ne scias kio tio estas, bonvolu raporti al la rilata dokumentaro menciita sube).

  Supozu, ke vi havas la sekvan linion:

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

  Nun vi rimarkas, ke ĉi tio ne estas bela kodo, kaj decidas, ke vi volas uzi la ŝlosilvorton `const` por ĉiuj “adreso de” argumentoj, tiuj karakterizitaj de la & operatoro antaŭ la argumentnomo. Vi ankaŭ ŝatus simpligi la blankspacon, tiel ke estu nur 1 blankspaco inter ĉiu vorto.

  Lanĉu la Redaktan Komandan Dialogon, kaj enigu: `s/\s+(\w+)\s+(&)/ const \1 \2/g` kaj premu la OK butono. La `g` ĉe la fino de la esprimo faras la regulan esprimon rekompili por ĉiu kongruo por konservi la malantaŭreferencojn.

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

  Misio plenumita! Nun, kio okazis? Nu, ni serĉis iom da blankspaco (`\s+`) sekvata de unu aŭ pluraj alfabetaj signoj (`\w+`) sekvata de iom da plia blankspaco (`\s+`) sekvita de kaj-signo, kaj en la procezo konservis la alfabetan pecon kaj la kaj-signon por reuzo en la anstataŭiga operacio. Poste ni anstataŭigis la kongruan parton de nia linio per unu blankspaco sekvita de “konst” sekvita de unu blankspaco sekvita de nia konservita alfabeta peco (`\1`) sekvita de unu blankspaco sekvita de nia konservita kaj-signo (`\2`)

  Nun en kelkaj kazoj la alfabeta peco estis “String”, en iu “int”, do uzante la signoklason `\w` kaj la `+` kvantigilo pruvis valora valoraĵo.

sort

  Ordigas la elektitan tekston aŭ tutan dokumenton.

natsort

  Ordigi la elektitajn liniojn aŭ tutan dokumenton nature.

  Ekzemplo 5.5. sort kontraŭ natsort

  `sort(a10, a1, a2)` rezultigas `a1, a10, a2`

  `natsort(a10, a1, a2)` rezultigas `a1, a2, a10`

moveLinesDown

  Movi elektitajn liniojn malsupren.

moveLinesUp

  Movi elektitajn liniojn supren.

uniq

  Forigi duobligitajn liniojn el la elektita teksto aŭ la tuta dokumento.

rtrim

  Forigu malantaŭan spacon de la elektita teksto aŭ de la tuta dokumento.

ltrim

  Forigi antaŭiran spacon el la elektita teksto aŭ el la tuta dokumento.

join [STRING disigilo]

  Kunigi elektitajn liniojn aŭ tutan dokumenton. Laŭvole prenas parametron difinantan apartigilon, ekzemple: `join ', '`

rmblank

  Forigi ĉiujn malplenajn spacojn el la elektita teksto aŭ la tuta dokumento.

alignon

  Ĉi tiu komando vicigas liniojn en la elektita bloko aŭ tuta dokumento sur la kolumno donita per regula esprimo donita kiel argumento.

  Se vi donas malplenan ŝablonon, ĝi vicigos al la unua nemalplena signo defaŭlte.

  Se la ŝablono havas kapton, ĝi deŝovos sur la kaptita kongruo.

  Ekzemploj:

  `alignon -` enmetos spacojn antaŭ la unua '-' de ĉiu linio por vicigi ilin ĉiujn sur la sama kolumno.

  `alignon :\\s+(.)` enmetos spacojn antaŭ la unua nemalplena signo kiu okazas post dupunkto por vicigi ilin ĉiujn sur la sama kolumno.

unwrap

  Malvolvi la elektitan tekston aŭ la tutan dokumenton.

each {STRING skripto}

  Donita JavaScript funkcion kiel argumento, voki tion por la listo de elektitaj linioj kaj anstataŭigi ilin per la liveraĵo de tiu retrovoko.

  Ekzemplo 5.6. Kunigi elektitajn liniojn

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

  Aŭ, pli mallonge:

  `each 'linioj.join(", ")'`

filter {STRING skripto}

  Donita JavaScript funkcion kiel argumento, voki tion por la listo de elektitaj linioj kaj forigi tiujn kie la revoko liveras malvera.

  Ekzemplo 5.7. Forigi malplenajn liniojn

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

  Aŭ, pli mallonge:

  `filter 'line.length > 0'`

map {STRING skripto}

  Donita JavaScript funkcion kiel argumento, voki tion por la listo de elektitaj linioj kaj anstataŭigi la linion per la valoro de la revoko.

  Ekzemplo 5.8. Forigi malplenajn liniojn

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

  Aŭ, pli mallonge:

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

duplicateLinesUp

  Duobligi la elektitajn liniojn super la nuna elekto.

duplicateLinesDown

  Duobligi la elektitajn liniojn sub la nuna elekto.

#### Komandoj por navigado

goto {INT linio}

  Ĉi tiu komando navigas al la specifita linio.

grep {STRING ŝablono}

  Priserĉi la dokumenton laŭ la regula esprimo `ŝablono`. Por pliaj informoj, vidu Apendico A, Regulaj Esprimoj.

find {STRING ŝablono}

  Ĉi tiu komando navigas al la unua okazo de `ŝablono` laŭ la agordo. Sekvaj okazoj troveblas per Redakti → Trovi Sekvan (la defaŭlta ŝparvojo estas F3).

  La find-komando povas esti agordita aldonante dupunkton sekvitan de unu aŭ pluraj opcioj, la formo estas `find:options-ŝablono`. La sekvaj opcioj estas subtenataj:

  `b`

    Serĉi malantaŭen.

  `c`

    Serĉi ekde la pozicio de la kursoro.

  `e`

    Serĉi nur en la elekto.

  `r`

    Fari regul-espriman serĉon. Se agordita, vi povas uzi `\N` kie N estas nombro por reprezenti kaptojn en la anstataŭiga ĉeno.

  `s`

    Fari usklecdistingan serĉon.

  `w`

    Kongrui nur tutajn vortojn.

ifind {STRING ŝablono}

  Ĉi tiu komando provizas “kiel vi tajpas” serĉadon. Vi povas agordi la konduton de la serĉo aldonante dupunkton sekvitan de unu aŭ pluraj opcioj, kiel ĉi tio: `ifind:options pattern`. Permesitaj opcioj estas:

  `b`

    Serĉi malantaŭen.

  `r`

    Fari regul-espriman serĉon.

  `s`

    Fari usklecdistingan serĉon.

  `c`

    Serĉi ekde la pozicio de la kursoro.

#### Komandoj por Bazaj Redaktaj Funkcioj (Ĉi tiuj dependas de la aplikaĵo, en kiu la redaktilo estas uzata)

w

  Konservi la aktualan dokumenton.

wa

  Konservi ĉiujn nuntempe malfermitajn dokumentojn.

q

  Fermi la aktualan dokumenton.

qa

  Fermi ĉiujn malfermitajn dokumentojn.

wq

  Konservi kaj fermi la aktualan dokumenton.

wqa

  Konservi kaj fermi ĉiujn nuntempe malfermitajn dokumentojn.

x

  Konservi kaj fermi la aktualan dokumenton nur se ĝi ŝanĝiĝis.

x

  Konservi kaj fermi ĉiujn nuntempe malfermitajn dokumentojn nur se ili ŝanĝiĝis.

bp

  Iri al la antaŭa dokumento en la listo de dokumentoj.

bn

  Iri al la sekva dokumento en la listo de dokumentoj.

new

  Malfermi novan dokumenton en horizontale dividita vido.

vnew

  Malfermi novan dokumenton en vertikale dividita vido.

e

  Reŝargi la aktualan dokumenton se ĝi ŝanĝiĝis sur disko.

enew

  Redakti novan dokumenton.

print

  Malfermi la dialogon Presi por presi la aktualan dokumenton.

Uzante Kodfaldadon
Uzante Kodfaldadon

## Uzante Kodfaldadon

Kodfaldado permesas vin kaŝi partojn de dokumento en la redaktilo, faciligante superrigardi grandajn dokumentojn. En KatePart la faldeblaj regionoj estas kalkulitaj per reguloj difinitaj en la sintaksaj elstaraj difinoj, kaj tial ĝi estas disponebla nur en kelkaj formatoj - tipe programkodo, XML-markado kaj similaj. Plej elstaraj difinoj subtenantaj kodfaldadon ankaŭ ebligas vin mane difini faldeblajn regionojn, kutime uzante la ŝlosilvortojn `BEGIN` kaj `END`.

Por uzi la kodfaldajn funkciojn, aktivigu la faldmarkojn per la menuero Vidi → Montri faldeblajn markilojn menuero se ili ne estas jam videblaj. La Folding Markers-Panelo sur la maldekstra flanko de la ekrano montras grafikan vidon de la faldeblaj regionoj, kun triangulsimboloj por indiki la eblan operacion sur antaŭfiksita regiono: desupra malsupren triangulo signifas ke la regiono estas vastigita, alklakante ĝin malvastigos la regionon kaj dekstren-indika triangulo estos montrita anstataŭe.

Tri komandoj estas provizitaj por manipuli la staton de faldregionoj, vidu la menudokumentadon.

La falditaj linioj estas memoritaj kiam dosiero estas fermita, do kiam vi remalfermas la dosieron, la falditaj nodoj ankoraŭ estos falditaj. Ĉi tio validas ankaŭ por reŝargi operaciojn.

Se vi ne volas uzi la kodan faldfunkcion, vi povas malŝalti la opcion Montri faldmarkojn (se disponeblas) en la paĝo Apero de la agordo de la redaktilo.

Ĉapitro 6. Etendante KatePart
Etendante KatePart

# Ĉapitro 6. Etendante KatePart

T.C. Hollingsworth `<tchollingsworth@gmail.com>`

Translation: Oliver Kellogg

## Enkonduko

Kiel ajna altnivela tekstredaktilo, KatePart proponas diversajn manierojn etendi ĝian funkciecon. Vi povas skribi simplajn skriptojn por aldoni funkciojn per JavaScript. Fine, post kiam vi etendis KatePart, vi bonvenas aliĝu al ni kaj kunhavigi viajn plibonigojn kun la mondo!

Laborante kun Syntax Highlighting
Laborante kun Syntax Highlighting

## Laborante kun Syntax Highlighting

### Superrigardo

Sintakso Highlighting estas tio, kio igas la redaktilon aŭtomate montri tekston en malsamaj stiloj/koloroj, depende de la funkcio de la ĉeno rilate al la celo de la dosiero. En programa fontkodo ekzemple, kontroldeklaroj povas esti grasigitaj, dum datumtipoj kaj komentoj ricevas malsamajn kolorojn de la resto de la teksto. Tio multe plibonigas la legeblecon de la teksto, kaj tiel helpas la aŭtoron esti pli efika kaj produktiva.

C++-funkcio, bildita kun sintaksa reliefigo.

La sama C++-funkcio, sen reliefigo.

El la du ekzemploj, kiu estas plej facile legebla?

KatePart venas kun fleksebla, agordebla kaj kapabla sistemo por fari sintaksan reliefigon, kaj la norma distribuo disponigas difinojn por larĝa gamo de programado, skriptlingvoj kaj markado kaj aliaj tekstdosierformatoj. Krome vi povas provizi viajn proprajn difinojn en simpla XML dosierojn.

KatePart aŭtomate detektos la ĝustajn sintaksajn regulojn kiam vi malfermas dosieron, surbaze de la MIME Tipo de la dosiero, determinita de ĝia etendaĵo, aŭ, se ĝi ne havas, la enhavo. Se vi spertas malbonan elekton, vi povas mane agordi la sintakson por uzi el la menuo Iloj → Emstarigado .

La stiloj kaj koloroj uzataj de ĉiu sintaksa emfaza difino povas esti agorditaj uzante la langeton Elstarigante Tekstajn Stilojn de la Agorda Dialogo, dum la MIME Tipoj kaj dosier-etendoj por kiuj ĝi estu uzata estas pritraktataj de la langeto Reĝimoj & Dosiertipoj.

### Rimarko

La sintaksa reliefigo estas tie por plibonigi la legeblecon de ĝusta teksto, sed vi ne povas fidi ĝin por validigi vian tekston. Marki tekston por sintakso estas malfacila depende de la formato, kiun vi uzas, kaj en iuj kazoj la aŭtoroj de la sintaksaj reguloj fieros se 98% de teksto estas ĝuste bilditaj, kvankam plej ofte vi bezonas maloftan stilon por vidi la malĝustajn 2% .

### La KatePart Sintakso Highlight System

Ĉi tiu sekcio diskutos pri la KatePart sintaksa reliefiga mekanismo pli detale. Ĝi estas por vi, se vi volas scii pri ĝi, aŭ se vi volas ŝanĝi aŭ krei sintaksajn difinojn.

#### Kiel ĝi Funkcias

Kiam ajn vi malfermas dosieron, unu el la unuaj aferoj la KatePart redaktilo faras estas detekti kiun sintaksan difinon uzi por la dosiero. Dum legado de la teksto de la dosiero, kaj dum vi tajpas en ĝi, la sintaksa emfaza sistemo analizos la tekston uzante la regulojn difinitajn de la sintaksa difino kaj markos en ĝi kie komenciĝas kaj finiĝas malsamaj kuntekstoj kaj stiloj.

Kiam vi tajpas la dokumenton, la nova teksto estas analizita kaj markita sur la flugo, tiel ke se vi forigas signon kiu estas markita kiel la komenco aŭ fino de kunteksto, la stilo de ĉirkaŭa teksto ŝanĝiĝas laŭe.

La sintaksaj difinoj uzataj de la KatePart Sintakso Highlighting System estas XML dosieroj, enhavantaj

- Reguloj por detekti la rolon de teksto, organizitaj en kuntekstblokojn

- Listo de ŝlosilvortoj

- Stilo Item-difinoj

Kiam oni analizas la tekston, la detektaj reguloj estas taksitaj en la ordo en kiu ili estas difinitaj, kaj se la komenco de la nuna ĉeno kongruas kun regulo, la rilata kunteksto estas uzata. La komenca punkto en la teksto estas movita al la fina punkto ĉe kiu tiu regulo kongruis kaj nova buklo de la reguloj komenciĝas, komencante en la kunteksto fiksita per la kongrua regulo.

#### Reguloj

La detektaj reguloj estas la koro de la reliefiga detektsistemo. Regulo estas ĉeno, signo aŭ regula esprimo kontraŭ kiu kongrui la analizitan tekston. Ĝi enhavas informojn pri kiu stilo uzi por la kongrua parto de la teksto. Ĝi povas ŝanĝi la laborkuntekston de la sistemo aŭ al eksplicite menciita kunteksto aŭ al la antaŭa kunteksto uzata de la teksto.

Reguloj estas organizitaj en kuntekstaj grupoj. Kunteksta grupo estas uzata por ĉefaj tekstokonceptoj ene de la formato, ekzemple cititaj tekstoĉenoj aŭ komentblokoj en programfontokodo. Ĉi tio certigas, ke la emfaza sistemo ne bezonas trapasi ĉiujn regulojn kiam ĝi ne estas necesa, kaj ke iuj signosekvencoj en la teksto povas esti traktataj malsame depende de la nuna kunteksto.

Kuntekstoj povas esti generitaj dinamike por permesi la uzon de instancospecifaj datenoj en reguloj.

#### Kuntekstaj Stiloj kaj Ŝlosilvortoj

En kelkaj programlingvoj, entjeraj nombroj estas traktataj alimaniere ol glitkomaj fare de la kompililo (la programo kiu konvertas la fontkodon al binara efektivigebla), kaj povas ekzisti signoj havantaj specialan signifon ene de citita ĉeno. En tiaj kazoj, estas senco redoni ilin alimaniere de la ĉirkaŭaĵo por ke ili estu facile identigeblaj dum legado de la teksto. Do eĉ se ili ne reprezentas specialajn kuntekstojn, ili povas esti viditaj kiel tiaj per la sintaksa reliefigsistemo, tiel ke ili povas esti markitaj por malsama bildigo.

Sintaksa difino povas enhavi tiom da stiloj kiom necesas por kovri la konceptojn de la formato por kiu ĝi estas uzata.

En multaj formatoj, ekzistas listoj de vortoj kiuj reprezentas specifan koncepton. Ekzemple, en programlingvoj, kontroldeklaroj estas unu koncepto, datumtipnomoj alia, kaj konstruitaj en funkcioj de la lingvo triono. La KatePart Syntax Highlighting System povas uzi tiajn listojn por detekti kaj marki vortojn en la teksto por emfazi konceptojn de la tekstoformatoj.

#### Defaŭltaj Stiloj

Se vi malfermas fontdosieron C++, Java™ fontdosiero kaj HTML dokumenton en KatePart, vi vidos ke kvankam la formatoj estas malsamaj, kaj tiel malsamaj vortoj estas elektitaj por speciala traktado, la koloroj uzataj estas la samaj. Ĉi tio estas ĉar KatePart havas antaŭdifinitan liston de Defaŭltaj Stiloj, kiuj estas uzataj de la individuaj sintaksaj difinoj.

Ĉi tio faciligas rekoni similajn konceptojn en malsamaj tekstoformatoj. Ekzemple, komentoj ĉeestas en preskaŭ ajna programado, skripto aŭ markadlingvo, kaj kiam ili estas prezentitaj uzante la saman stilon en ĉiuj lingvoj, vi ne devas halti kaj pensi identigi ilin en la teksto.

### Sugesto

Ĉiuj stiloj en sintaksa difino uzas unu el la defaŭltaj stiloj. Kelkaj sintaksaj difinoj uzas pli da stiloj ol estas defaŭltaj, do se vi uzas formaton ofte, eble indas lanĉi la agordan dialogon por vidi ĉu iuj konceptoj uzas la saman stilon. Ekzemple, ekzistas nur unu defaŭlta stilo por ĉenoj, sed ĉar la Perl programlingvo funkcias kun du specoj de ĉenoj, vi povas plibonigi la reliefigon agordante tiujn por esti iomete malsamaj. Ĉiuj disponeblaj defaŭltaj stiloj estos klarigitaj poste.

### La Marka Difino XML Formato

#### Superrigardo

KatePart uzas la kadron Syntax-Highlighting de KDE Frameworks. La defaŭlta reliefigo XML dosieroj senditaj kun KatePart estas kompilitaj en la bibliotekon Syntax-Highlighting defaŭlte.

Ĉi tiu sekcio estas superrigardo de la Highlight Definition XML formato. Surbaze de malgranda ekzemplo ĝi priskribos la ĉefajn komponantojn kaj ilian signifon kaj uzadon. La sekva sekcio eniros en detalojn kun la plej elstaraj detektaj reguloj.

La formala difino, ankaŭ konata kiel la XSD, kiun vi trovas en Syntax Highlighting-deponejo en la dosiero `language.xsd`

Propraj `.xml` elstaraj difindosieroj troviĝas en `org.kde.syntax-highlighting/syntax/` en via uzanto dosierujo trovita kun `qtpaths`--paths GenericDataLocation`` kiuj kutime estas ``$HOME`/.local/share/` kaj `/usr/share/`.

En Flatpak kaj Snap-pakaĵoj, ĉi-supra dosierujo ne funkcios ĉar la datuma loko estas malsama por ĉiu aplikaĵo. En aplikaĵo de Flatpak, la loko de propra XML dosieroj estas kutime ``$HOME`/.var/app/`flatpak-package-name`/data/org.kde.syntax-highlighting/syntax/` kaj en Snap-aplikaĵo tiu loko estas ``$HOME`/snap/`snap-package-name`/ current/.local/share/org.kde.syntax-highlighting/syntax/`.

Sur Windows® ĉi tiuj dosieroj troviĝas `%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\syntax`. `%USERPROFILE%` kutime vastiĝas al `C:\Users\`uzanto``.

Resume, por plej multaj agordoj la dosierujo de propra XML dosieroj estas kiel sekvas:

Por loka uzanto | ``$HOME`/.local/share/org.kde.syntax-highlighting/syntax/`
Por ĉiuj uzantoj | `/usr/share/org.kde.syntax-highlighting/syntax/`
Por Flatpak-pakaĵoj | ``$HOME`/.var/app/`flatpak-package-name`/data/org.kde.syntax-highlighting/syntax/`
Por Snap-pakaĵoj | ``$HOME`/snap/`snap-package-name`/current/.local/share/org.kde.syntax-highlighting/syntax/`
Sur Windows® | `%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\syntax`

Se ekzistas pluraj dosieroj por la sama lingvo, la dosiero kun la plej alta `versio` atributo en la elemento `lingvo` estos ŝargita.

Ĉefaj sekcioj de KatePart Emfazaj Difindosierojn

Elstariga dosiero enhavas kaplinion kiu fiksas la XML versio:

      &?xml version="1.0" encoding="UTF-8"?>

La radiko de la difindosiero estas la elemento `lingvo`. Disponeblaj atributoj estas:

  Bezonataj atributoj:

  `nomo` fiksas la nomon de la lingvo. Ĝi aperas poste en la menuoj kaj dialogoj.

  `sekcio` specifas la kategorion.

  `etendoj` difinas dosierajn etendaĵojn, kiel "*.cpp;*.h"

  `versio` specifas la nunan revizion de la difindosiero laŭ entjera nombro. Kiam ajn vi ŝanĝas elstaran difindosieron, certigu pliigi ĉi tiun nombron.

  `kateversion` specifas la plej lastan subtenatan KatePart versio.

  Laŭvolaj atributoj:

  `mimetype` asocias MIME-tipon al dosieroj.

  `majusklesendebla` difinas ĉu la ŝlosilvortoj distingas minusklecon aŭ ne.

  `prioritato` estas necesa se alia elstara difindosiero uzas la samajn etendaĵojn. La pli alta prioritato venkos.

  `aŭtoro` enhavas la nomon de la aŭtoro kaj lian retadreson.

  `licenco` enhavas la permesilon, kutime la MIT-licencon por novaj sintaksaj eminentaj dosieroj.

  `stilo` enhavas la provizitan lingvon kaj estas uzata de la indentistoj por la atributo `required-syntax-style`.

  `indentor` difinas kiun indentigilo estos uzata defaŭlte. Disponeblaj indentiloj estas: ada, normala, cstyle, cmake, haskell, latex, lilypond, lisp, lua, pascal, python, replicode, ruby kaj xml.

  `kaŝita` difinas ĉu la nomo aperu en la menuoj de KatePart.

  Do la sekva linio povas aspekti jene:

      <language name="C++" version="1" kateversion="2.4" section="Fontoj" extensions="*.cpp;*.h" />

Poste venas la elemento `markigo`, kiu enhavas la laŭvolan elementon `list` kaj la postulatajn elementojn `kuntekstoj` kaj `itemDatas`.

  `listo` elementoj enhavas liston de ŝlosilvortoj. Ĉi-kaze la ŝlosilvortoj estas klaso kaj konst. Vi povas aldoni tiom da listoj kiom vi bezonas.

  Ekde KDE Frameworks 5.53, listo povas inkluzivi ŝlosilvortojn de alia listo aŭ lingvo/dosiero, uzante la elementon `include`. `##` estas uzata por apartigi la listonomon kaj la lingvodifinnomon, same kiel en la regulo `Inkludi Regulojn`. Ĉi tio estas utila por eviti duobligi ŝlosillistojn, se vi bezonas inkluzivi la ŝlosilvortojn de alia lingvo/dosiero. Ekzemple, la listo alianomo enhavas la ŝlosilvorton str kaj ĉiujn ŝlosilvortojn de la listo tipoj, kiu apartenas al la ISO C++ lingvo.

  La elemento `kuntekstoj` enhavas ĉiujn kuntekstojn. La unua kunteksto estas defaŭlte la komenco de la reliefigo. Estas du reguloj en la kunteksto Normala Teksto, kiuj kongruas kun la listo de ŝlosilvortoj kun la nomo iunomo kaj regulo, kiu detektas citilon kaj ŝanĝas la kuntekston al ĉeno. Por lerni pli pri reguloj legu la sekvan ĉapitron.

  La tria parto estas la elemento `itemDatas`. Ĝi enhavas ĉiujn kolorojn kaj tiparstilojn bezonatajn de la kuntekstoj kaj reguloj. En ĉi tiu ekzemplo, la `itemData` Normala Teksto, String kaj Ŝlosilvorto estas uzataj.

      <highlighting>
          <list name="iunomo">
            <item>class</item>
            <item>const</item>
          </list>
          <list name="alianomo">
            <item>str</item>
            <include>types##ISO C++</include>
          </list>
          <contexts>
            <context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
              <keyword attribute="Keyword" context="#stay" String="iunomo" />
              <keyword attribute="Keyword" context="#stay" String="alianomo" />
              <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>

La lasta parto de elstara difino estas la laŭvola sekcio `ĝenerala`. Ĝi povas enhavi informojn pri ŝlosilvortoj, kodfaldado, komentoj, deŝovo, malplenaj linioj kaj literuma kontrolo.

  La sekcio `komento` difinas per kia ĉeno unulinia komento estas enkondukita. Vi ankaŭ povas difini plurlinian komenton uzante multiLine kun la kroma atributo end. Ĉi tio estas uzata se la uzanto premas la respondan ŝparvojon por comment/uncomment.

  La sekcio `keywords` difinas ĉu ŝlosilvortlistoj distingas usklecon aŭ ne. Aliaj atributoj estos klarigitaj poste.

  La aliaj sekcioj, `folding`, `emptyLines` kaj `spellchecking`, kutime ne necesas kaj estas klarigitaj poste.

      <general>
          <comments>
            <comment name="singleLine" start="#"/>
            <comment name="multiLine" start="###" end="###" region="CommentFolding"/>
          </comments>
          <keywords casesensitive="1"/>
          <folding indentationsensitive="0"/>
          <emptyLines>
            <emptyLine regexpr="\s+"/>
            <emptyLine regexpr="\s*#.*"/>
          </emptyLines>
          <spellchecking>
            <encoding char="á" string="\'a"/>
            <encoding char="à" string="\`a"/>
          </spellchecking>
        </general>
      </language>

#### La Sekcioj en Detalo

Ĉi tiu parto priskribos ĉiujn disponeblajn atributojn por kuntekstoj, itemDatoj, ŝlosilvortoj, komentoj, kodo-faldado kaj indentaĵo.

La elemento `context` apartenas al la grupo `contexts`. Kunteksto mem difinas kunteksto-specifajn regulojn kiel ekzemple kio devus okazi se la elstara sistemo atingas la finon de linio. Disponeblaj atributoj estas:

  `name` deklaras la kuntekstan nomon. Reguloj uzos ĉi tiun nomon por specifi la kuntekston por ŝanĝi, se la regulo kongruas.

  `attribute` identigas la stilon por uzi por signo kiam neniu regulo kongruas aŭ kiam regulo ne specifas atributon. En ĉi-lasta kazo, estos uzata attribute de la kunteksto specifita en la context de la regulo.

  `lineEndContext` difinas la kuntekston, al kiu la emfazsistemo ŝanĝas se ĝi atingas la finon de linio. Ĉi tio povas aŭ esti nomo de alia kunteksto, `#stay` por ne ŝanĝi la kuntekston (ekz.. fari nenion) aŭ `#pop` kiu igos ĝin forlasi ĉi tiun kuntekston. Eblas uzi ekzemple `#pop#pop#pop` por krevi trifoje, aŭ eĉ `#pop#pop!OtherContext` por krevi dufoje kaj ŝanĝi al la kunteksto nomata `Alia Kunteksto`. Eblas ankaŭ ŝanĝi al kunteksto, kiu apartenas al alia lingvodifino, same kiel en la reguloj `Inkluzi Reguloj`, ekz., `IuKunteksto##JavaScript`. Kuntekstŝaltiloj ankaŭ estas priskribitaj en la sekcio nomata “Emfazodetektaj Reguloj”. Defaŭlto: #stay.

  `lineEmptyContext` difinas la kuntekston se malplena linio estas renkontita. La nomenklaturo de kuntekstŝaltiloj estas la sama kiel antaŭe priskribita en lineEndContext. Defaŭlto: #stay.

  `fallthroughContext` specifas la sekvan kuntekston por ŝanĝi se neniu regulo kongruas. La nomenklaturo de kuntekstŝaltiloj estas la sama kiel antaŭe priskribita en lineEndContext. Defaŭlto: #stay.

  `fallthrough` difinas ĉu la emfazsistemo ŝanĝas al la kunteksto specifita en `fallthroughContext` se neniu regulo kongruas. Notu ke ekde KDE Frameworks 5.62 ĉi tiu atributo estas malrekomendita favore al `fallthroughContext`, ĉar se la atributo `fallthroughContext` ĉeestas, estas implicite komprenite, ke la valoro de `fallthrough` estas true. Defaŭlto: false.

  `noIndentationBasedFolding` malŝaltas indent-bazitan faldadon en la kunteksto. Se indent-bazita faldado ne estas aktivigita, ĉi tiu atributo estas senutila. Ĉi tio estas difinita en la elemento folding de la grupo general. Defaŭlto: false.

La elemento `itemData` estas en la grupo `itemData`. Ĝi difinas la tiparstilon kaj kolorojn. Do eblas difini viajn proprajn stilojn kaj kolorojn. Tamen, ni rekomendas vin alteni la defaŭltajn stilojn se eble, por ke la uzanto ĉiam vidu la samajn kolorojn uzatajn en malsamaj lingvoj. Tamen, foje ne ekzistas alia maniero kaj necesas ŝanĝi kolorojn kaj tipatributojn. La atributoj name kaj defStyleNum estas postulataj, la aliaj estas laŭvolaj. Disponeblaj atributoj estas:

  `name` fiksas la nomon de la itemData. Kuntekstoj kaj reguloj uzos ĉi tiun nomon en sia atributo attribute por referenci elementon.

  `defStyleNum` difinas kiun defaŭltan stilon uzi. Disponeblaj defaŭltaj stiloj estas klarigitaj detale poste.

  `color` difinas koloron. Validaj formatoj estas '#rrggbb' aŭ '#rgb'.

  `selColor` difinas la elektokoloron.

  `italic` se true, la teksto estos kursiva.

  `bold` se true, la teksto estos grasa.

  `underline` se true, la teksto estos substrekita.

  `strikeout` se true, la teksto estos forstrekita.

  `spellChecking` se true, la teksto estos literumkontrolita.

La elemento `keywords` en la grupo `general` difinas ŝlosilvortojn. Disponeblaj atributoj estas:

  `casesensitive` povas esti true aŭ false. Se true, ĉiuj ŝlosilvortoj estas kongruaj majuskle.

  `weakDeliminator` estas listo de signoj, kiuj ne funkcias kiel vortlimigiloj. Ekzemple, la punkto `'.'` estas vortlimigilo. Supozu, ke ŝlosilvorto en `listo` enhavas punkton, ĝi nur kongruos se vi specifigas la punkton kiel malfortan limigilon.

  `additionalDeliminator` difinas kromajn limigilojn.

  `wordWrapDeliminator` difinas signojn post kiuj povas okazi linivolviĝo.

  Defaŭltaj limigiloj kaj vortvolvaĵlimigiloj estas la signoj `.():!+,-<=>%&*/;?[]^{|}~\`, spaceto (`' '`) kaj tabeligilo (`'\t'`).

La elemento `komento` en la grupo `komentoj` difinas komentajn trajtojn, kiuj estas uzataj por Iloj → Komento, Iloj → Malkomenti kaj Iloj → Baskuligi Komenton. Disponeblaj atributoj estas:

  `nomo` estas aŭ unuLinio aŭ multlinio. Se vi elektas multLinio la atributoj fino kaj regiono estas postulataj. Se vi elektas unuLinio vi povas aldoni la laŭvolan atributon pozicio.

  `komenco` difinas la ĉenon uzatan por komenci komenton. En C++ ĉi tio estus "/*" en plurliniaj komentoj. Ĉi tiu atributo estas postulata por tipoj multiLine kaj singleLine.

  `end` difinas la ĉenon uzatan por fermi komenton. En C++ ĉi tio estus "*/". Ĉi tiu atributo estas nur disponebla kaj necesas por komentoj de tipo multiLine.

  `regiono` devus esti la nomo de la faldebla plurlinia komento. Supozu, ke vi havas beginRegion="Comment" ... endRegion="Comment" en viaj reguloj, vi devus uzi region="Comment". Tiel malkomentado funkcias eĉ se vi ne elektas la tutan tekston de la plurlinia komento. La kursoro nur devas esti en la plurlinia komento. Ĉi tiu atributo disponeblas nur por tipo multilinio.

  `position` difinas kie la unulinia komento estas enmetita. Defaŭlte, la unulinia komento estas metita komence de la linio ĉe kolumno 0, sed se vi uzas position="afterwhitespace" la komento estas enmetita post gvidado de blankspacoj dekstre, antaŭ la unua ne-blankspaca signo. Ĉi tio estas utila por meti komentojn ĝuste en lingvoj kie deŝoviĝo estas grava, kiel Python aŭ YAML. Ĉi tiu atributo estas nedeviga kaj la nura ebla valoro estas afterwhitespace. Ĉi tio disponeblas nur por tipo singleLine.

La elemento `folding` en la grupo `general` difinas kodfaldajn ecojn. Disponeblaj atributoj estas:

  `indentationsensitive` se true, la kodaj faldmarkoj estos aldonitaj deŝovo bazitaj, kiel en la skriptlingvo Python. Kutime vi ne bezonas agordi ĝin, ĉar ĝi defaŭlte estas false.

La elemento `emptyLine` en la grupo `emptyLines` difinas kiuj linioj estu traktataj kiel malplenaj linioj. Ĉi tio permesas modifi la konduton de la atributo lineEmptyContext en la elementoj `context`. Disponeblaj atributoj estas:

  `regexpr` difinas regulan esprimon, kiu estos traktata kiel malplena linio. Defaŭlte, malplenaj linioj enhavas neniujn signojn, tial ĉi tio aldonas pliajn malplenajn liniojn, ekzemple, se vi volas, ke linioj kun spacoj ankaŭ estu konsiderataj malplenaj linioj. Tamen, en la plej multaj sintaksaj difinoj vi ne bezonas agordi ĉi tiun atributon.

La elemento `encoding` en la grupo `spellchecking` difinas signan kodigon por literumkontrolo. Disponeblaj atributoj:

  `char` estas kodita signo.

  `ĉeno` estas sinsekvo de signoj kiuj estos kodita kiel la signo char en la literuma kontrolo. Ekzemple, en la lingvo LaTeX, la ĉeno `\"{A}` reprezentas la signon `Ä`.

#### Disponeblaj Defaŭltaj Stiloj

Defaŭltaj Stiloj estis jam klarigitaj, kiel mallonga resumo: Defaŭltaj stiloj estas antaŭdifinitaj tiparo kaj kolorstiloj.

Ĝeneralaj defaŭltaj stiloj:

  `dsNormal`, kiam ne necesas speciala reliefigo.

  `dsKeyword`, enkonstruitaj lingvaj ŝlosilvortoj.

  `dsFunction`, funkciovokoj kaj difinoj.

  `dsVariable`, se aplikebla: variablo-nomoj (ekz. $someVar en PHP/Perl).

  `dsControlFlow`, kontrolfluaj ŝlosilvortoj kiel se, else, ŝaltilo, rompo, reveno, rendimento, ...

  `dsOperator`, operatoroj kiel + - * / :: < >

  `dsBuiltIn`, enkonstruitaj funkcioj, klasoj kaj objektoj.

  `dsExtension`, oftaj etendaĵoj, kiel Qt™ klasoj kaj funkcioj/makrooj en C++ kaj Python.

  `dsPreprocessor`, antaŭprocesoraj deklaroj aŭ makrodifinoj.

  `dsAttribute`, komentarioj kiel @override kaj __declspec(...).

Defaŭltaj stiloj rilataj al ĉenoj:

  `dsChar`, unuopaj signoj, kiel 'x'.

  `dsSpecialChar`, signoj kun speciala signifo en ĉenoj kiel eskapoj, anstataŭaĵoj aŭ regex operatoroj.

  `dsString`, ĉenoj kiel "saluton mondo".

  `dsVerbatimString`, laŭvortaj aŭ krudaj ĉenoj kiel 'raw \backslash' en Perl, CoffeeScript, kaj ŝeloj, same kiel r'\raw' en Python.

  `dsSpecialString`, SQL, regeksoj, TIE dokumentoj, LATEX matematika reĝimo, ...

  `dsImport`, importi, inkluzivi, postuli de moduloj.

Nombro-rilataj defaŭltaj stiloj:

  `dsDataType`, enkonstruitaj datumtipoj kiel int, void, u64.

  `dsDecVal`, decimalaj valoroj.

  `dsBaseN`, valoroj kun bazo alia ol 10.

  `dsFloat`, glitkomaj valoroj.

  `dsConstant`, konstantoj enkonstruitaj kaj uzantodifinitaj kiel PI.

Komento kaj dokumentar-rilataj defaŭltaj stiloj:

  `dsComment`, komentoj.

  `dsDocumentation`, /** Dokumentaj komentoj */ aŭ """docstrings""".

  `dsAnnotation`, dokumentaj komandoj kiel @param, @brief.

  `dsCommentVar`, la variablonomoj uzataj en supraj komandoj, kiel "foobar" en @param foobar.

  `dsRegionMarker`, regionmarkoj kiel //BEGIN, //END en komentoj.

Aliaj defaŭltaj stiloj:

  `dsInformation`, notoj kaj konsiloj kiel @note en doxygen.

  `dsWarning`, avertoj kiel @warning en doksigeno.

  `dsAlert`, specialaj vortoj kiel TODO, FIXME, XXXX.

  `dsError`, erara reliefigo kaj malĝusta sintakso.

  `dsOthers`, kiam nenio alia taŭgas.

### Emfazodetektaj Reguloj

Ĉi tiu sekcio priskribas la sintaksdetektajn regulojn.

Ĉiu regulo povas kongrui kun nul aŭ pli da signoj ĉe la komenco de la ĉeno kontraŭ kiu ili estas testitaj. Se la regulo kongruas, la kongruaj signoj ricevas la stilon aŭ attribute difinitan de la regulo, kaj regulo povas peti ke la nuna kunteksto estas ŝanĝita.

Regulo aspektas jene:

    <RegulNomo attribute="(identigilo)" context="(identigilo)" [specifaj atributoj de la regulo] />

La attribute identigas la stilon uzi por kongruaj signoj laŭ nomo, kaj la context identigas la kuntekston uzi de ĉi tie.

La context povas esti identigita per:

- identigilo, kiu estas la nomo de la alia kunteksto.

- order ordonanta al la motoro resti en la nuna kunteksto (`#stay`), aŭ reiri al antaŭa kunteksto uzata en la ĉeno (`#pop`). Malplena aŭ forestanta kunteksto ekvivalentas al `#stay`.

  Por retroiri pliajn paŝojn, la #pop ŝlosilvorto povas esti ripetita: `#pop#pop#pop`

- ordo sekvata de ekkria signo (!) kaj identigilo, kiuj igos la motoron unue sekvi la ordon kaj poste ŝanĝi al la alia kunteksto, ekz. `#pop#pop!AliaKunteksto`.

- identigilo, kiu estas kunteksta nomo, sekvata de du kradoj (`##`) kaj alia identigilo, kiu estas la nomo de lingvodifino . Ĉi tiu nomado estas simila al tiu uzata en reguloj de `Inkluzi Reguloj` kaj ebligas al vi ŝanĝi al kunteksto apartenanta al alia sintaksa emfaza difino, ekz. `IomKunteksto##JavaScript`.

Regulaj specifaj atributoj varias kaj estas priskribitaj en la sekvaj sekcioj.

Komunaj atributoj

Ĉiuj reguloj havas la jenajn atributojn komunaj kaj disponeblas kiam ajn `(common attributes)` aperas. Ĉiuj atributoj estas laŭvolaj.

- attribute: Atributo mapiĝas al difinita itemData. Defaŭlto: attribute el la kunteksto specifita en context atributo.

- context: Specifu la kuntekston, al kiu la reliefiga sistemo ŝanĝas se la regulo kongruas. Defaŭlto: #stay.

- beginRegion: Komenci kodan faldblokon. Defaŭlto: malŝaltita.

- endRegion: Fermi kodan faldblokon. Defaŭlte: malŝaltita.

- lookAhead: Se true, la emfaza sistemo ne prilaboros la kongruan longon. Defaŭlte: false.

- firstNonSpace: Kongruas nur, se la ĉeno estas la unua neblankspaco en la linio. Defaŭlte: false.

- column: Kongruas nur, se la kolumno kongruas. Defaŭlte: malŝaltita.

Dinamikaj reguloj

Iuj reguloj permesas la laŭvolan atributon `dynamic` de tipo bulea kiu defaŭlte estas false. Se dynamic estas true, regulo povas uzi anstataŭaĵojn reprezentantajn la tekston kongruan per regula esprimo kiu ŝanĝis al la nuna kunteksto en sia `string` aŭ `char` atributoj. En `string`, la lokokupilo `%N` (kie N estas nombro) estos anstataŭigita per la responda kapto `N` de la voka regula esprimo, komencante de 1. En `char` la lokokupilo devas esti nombro `N` kaj ĝi estos anstataŭigita per la unua signo de la responda kapto `N` de la voka regula esprimo. Kiam ajn regulo permesas ĉi tiun atributon ĝi enhavos (dynamic).

- dynamic: povas esti (true|false).

`Kiel ĝi funkcias:`

En la regulaj esprimoj de la reguloj `RegExpr`, ĉio teksto ene de simplaj kurbaj krampoj `(PATTERN)` estas kaptita kaj memorita. Tiuj ĉi kaptoj povas esti uzataj en la kunteksto al kiu ĝi estas ŝanĝita, en la reguloj kun la atributo `dynamic` true, per `%N` (en String) aŭ `N` (en char).

Gravas mencii, ke teksto kaptita en regulo `RegEx` estas nur konservita por la ŝanĝita kunteksto, specifita en ĝia `context`-atributo.

### Sugesto

- Se la kaptoj ne estos uzataj, kaj laŭ dinamikaj reguloj kaj en la sama regula esprimo, oni uzu `nekaptajn grupojn`: `(?:PATTERN)`

  La rigardo aŭ malantaŭen grupoj kiel `(?=PATTERN)`, `(?!PATTERN)` aŭ `(?<=PATTERN)` ne estas kaptitaj. Vidu Regulaj esprimoj por pliaj informoj.

- La kaptogrupoj povas esti uzataj ene de la sama regula esprimo, uzante `\N` anstataŭ `%N` respektive. Por pliaj informoj, vidu Kapti kongruan tekston (malantaŭaj referencoj) en Regulaj Esprimoj.

Ekzemplo 1:

En ĉi tiu simpla ekzemplo, la teksto kongrua per la regula esprimo `=*` estas kaptita kaj enmetita en `%1` en la dinamika regulo. Tio ebligas al la komento finiĝi kun la sama kvanto de `=` kiel ĉe la komenco. Ĉi tio kongruas kun teksto kiel: `[[ komento ]]`, `[=[ komento ]=]` aŭ `[=====[ komento ]===== ]`.

Krome, la kaptoj disponeblas nur en la ŝanĝita kunteksto Multlinia Komento.

    <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
      <RegExpr context="Multi-line Comment" attribute="Comment" String="\[(=*)\[" beginRegion="RegionComment"/>
    </context>
    <context name="Multi-line Comment" attribute="Comment" lineEndContext="#stay">
      <StringDetect context="#pop" attribute="Comment" String="]%1]" dynamic="true" endRegion="RegionComment"/>
    </context>

Ekzemplo 2:

En la dinamika regulo, `%1` respondas al la kapto, kiu kongruas kun `#+`, kaj `%2` al `&"+`. Ĉi tio kongruas kun teksto kiel: `#label""""en la kunteksto""""#`.

Tiuj ĉi kaptoj ne estos disponeblaj en aliaj kuntekstoj, kiel AliaKunteksto, FindEscapes aŭ IuKunteksto.

    <context name="SomeContext" attribute="Normal Text" lineEndContext="#stay">
      <RegExpr context="#pop!NamedString" attribute="String" String="(#+)(?:[\w-]|[^[:ascii:]])(&quot;+)"/>
    </context>
    <context name="NamedString" attribute="String" lineEndContext="#stay">
      <RegExpr context="#pop!OtherContext" attribute="String" String="%2(?:%1)?" dynamic="true"/>
      <DetectChar context="FindEscapes" attribute="Escape" char="\"/>
    </context>

Ekzemplo 3:

Ĉi tio kongruas kun teksto kiel: `Class::function<T>( ... )`.

    <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
      <RegExpr context="FunctionName" lookAhead="true"
                  String="\b([a-zA-Z_][\w-]*)(::)([a-zA-Z_][\w-]*)(?:&lt;[\w\-\s]*&gt;)?(\()"/>
    </context>
    <context name="FunctionName" attribute="Normal Text" lineEndContext="#pop">
      <StringDetect context="#stay" attribute="Class" String="%1" dynamic="true"/>
      <StringDetect context="#stay" attribute="Operator" String="%2" dynamic="true"/>
      <StringDetect context="#stay" attribute="Function" String="%3" dynamic="true"/>
      <DetectChar context="#pop" attribute="Normal Text" char="4" dynamic="true"/>
    </context>

Lokaj limigiloj

Iuj reguloj permesas la laŭvolajn atributojn `weakDeliminator` kaj `additionalDeliminator` kiuj estas kombinitaj kun samnomaj atributoj de `keywords`-etikedo. Ekzemple, kiam `'%'` estas malforta limigilo de `keywords`, ĝi povas fariĝi vortlimigilo nur por regulo metante ĝin en sian atributon `additionalDeliminator`. Kiam ajn regulo permesas ĉi tiujn atributojn ĝi enhavos (lokaj limigiloj).

- malfortaDeliminilo: listo de signoj, kiuj ne funkcias kiel vortlimigiloj.

- aldonaDeliminilo: difinas kromajn limilojn.

#### La Reguloj en Detalo

DetectChar

  Detekti ununuran specifan signon. Ofte uzata ekzemple por trovi la finojn de cititaj ĉenoj.

      <DetectChar char="(signo)" (komunaj atributoj) (dinamika) />

  La atributo `char` difinas la signon por kongrui.

Detekti2Chars

  Detekti du specifajn signojn en difinita ordo.

      <Detect2Chars char="(signo)" char1="(signo)" (oftaj atributoj) />

  La atributo `char` difinas la unuan signon kongruan, `char1` la duan.

  Ĉi tiu regulo ĉeestas pro historiaj kialoj kaj por legebleco estas preferinde uzi `StringDetect`.

AnyChar

  Detekti unu signon de aro de specifitaj signoj.

      <AnyChar String="(ĉeno)" (komunaj atributoj) />

  La atributo `String` difinas la aron de signoj.

StringDetect

  Detekti precizan ĉenon.

      <StringDetect String = "(ĉeno)" [insensitive="true|false"] (oftaj atributoj) (dinamika) />

  La atributo `String` difinas la ĉenon kongruan. La atributo `insensitive` defaŭlte estas false kaj estas transdonita al la ĉena kompara funkcio. Se la valoro estas true ne-usklecdistinga komparo estas uzata.

WordDetect

  Detektu precizan ĉenon sed aldone postulas vortlimojn kiel punkton `'.'` aŭ blankspacon ĉe la komenco kaj la fino de la vorto. Pensu pri `\b<string>\b` laŭ regula esprimo, sed ĝi estas pli rapida ol la regulo `RegExpr`.

      <WordDetect String="(ĉeno)" [insensitive="true|false"] (oftaj atributoj) (lokaj limigiloj) />

  La atributo `String` difinas la ĉenon kongruan. La atributo `insensitive` defaŭlte estas false kaj estas transdonita al la ĉena kompara funkcio. Se la valoro estas true ne-usklecdistinga komparo estas uzata.

  Ekde: Kate 3.5 (KDE 4.5)

RegEx

  Kongruas kontraŭ regula esprimo.

      <RegExpr String="(ĉeno)" [insensitive="true|false"] [minimal="true|false"] (oftaj atributoj) (dynamic) />

  La atributo `String` difinas la regulan esprimon.

  `insensitive` defaŭlte al false kaj estas transdonita al la regula esprimo-motoro.

  `minimuma` defaŭlte al false kaj estas transdonita al la regula esprimo-motoro.

  Ĉar la reguloj ĉiam kongruas kontraŭ la komenco de la nuna ĉeno, regula esprimo komencanta per signo (`^`) indikas ke la regulo devus esti egalita nur kontraŭ la komenco de linio.

  Vidu Regulaj esprimoj por pliaj informoj pri tiuj.

keyword

  Detekti ŝlosilvorton el difinita listo.

      <keyword String="(listnomo)" (komunaj atributoj) (lokaj limigiloj) />

  La atributo `String` identigas la ŝlosilvortliston laŭ nomo. Listo kun tiu nomo devas ekzisti.

  La elstara sistemo prilaboras ŝlosilvortajn regulojn en tre optimumigita maniero. Ĉi tio igas absolutan neceson, ke ĉiuj ŝlosilvortoj kongruaj devas esti ĉirkaŭitaj de difinitaj limigiloj, aŭ implicitaj (la defaŭltaj limigiloj), aŭ eksplicite specifitaj ene de la eco additionalDeliminator de la keyword etikedo.

  Se kongruota ŝlosilvorto enhavas limigan signon, ĉi tiu respektiva signo devas esti aldonita al la eco weakDeliminator de la etikedo keyword. Ĉi tiu signo tiam perdos sian limigilon en ĉiuj reguloj de keyword. Eblas ankaŭ uzi la atributon weakDeliminator de keyword tiel ke ĉi tiu modifo nur validu por ĉi tiu regulo.

Int

  Detekti entjeron (kiel la regula esprimo: `\b[0-9]+`).

      <Int (komunaj atributoj) (lokaj limigiloj) />

  Ĉi tiu regulo ne havas specifajn atributojn.

Float

  Detekti glitkoman nombron (kiel la regula esprimo: `(\b[0-9]+\.[0-9]*|\.[0-9]+)([eE][- +]?[0-9]+)?`).

      <Float (komunaj atributoj) (lokaj limigiloj) />

  Ĉi tiu regulo ne havas specifajn atributojn.

HlCOct

  Detekti okuman punktonombro-reprezenton (kiel la regula esprimo: `\b0[0-7]+`).

      <HlCOct (komunaj atributoj) (lokaj limigiloj) />

  Ĉi tiu regulo ne havas specifajn atributojn.

HlCHex

  Detekti deksesuman nombro-reprezenton (kiel regula esprimo: `\b0[xX][0-9a-fA-F]+`).

      <HlCHex (komunaj atributoj) (lokaj limigiloj) />

  Ĉi tiu regulo ne havas specifajn atributojn.

HlCStringChar

  Detektu eskapintan signon.

      <HlCStringChar (komunaj atributoj) />

  Ĉi tiu regulo ne havas specifajn atributojn.

  Ĝi kongruas laŭvortajn prezentojn de signoj kutime uzataj en programkodo, ekzemple `\n` (novlinio) aŭ `\t` (TAB).

  La sekvaj signoj kongruos se ili sekvas malantaŭan oblikvon (`\`): `abefnrtv"'?\`. Aldone, eskapintaj deksesumaj nombroj kiel ekzemple `\xff` kaj eskapintaj okumaj nombroj, ekzemple `\033` kongruos.

HlCChar

  Detekti C-signon.

      <HlCChar (komunaj atributoj) />

  Ĉi tiu regulo ne havas specifajn atributojn.

  Ĝi kongruas kun C-signoj enfermitaj en apostrofo (Ekzemplo: `'c'`). La apostrofoj povas esti simpla signo aŭ eskapita signo. Vidu HlCStringChar por egalitaj eskapintaj signosekvencoj.

RangeDetect

  Detekti ĉenon kun difinitaj komencaj kaj finaj signoj.

      <RangeDetect char="(signo)" char1="(signo)" (oftaj atributoj) />

  `char` difinas la signon komencantan la intervalon, `char1` la signon finantan la intervalon.

  Utila por detekti ekzemple malgrandajn cititajn ĉenojn kaj similajn, sed rimarku, ke ĉar la reliefiga motoro funkcias sur unu linio samtempe, ĉi tio ne trovos ĉenojn etendantajn super liniorompo.

LinioDaŭrigi

  Kongruas kun specifita signo ĉe la fino de linio.

      <LineContinue (komunaj atributoj) [char="\"] />

  `char` laŭvola signo por kongrui, defaŭlta estas malantaŭa oblikvo (`'\'`). Nova ekde KDE 4.13.

  Ĉi tiu regulo estas utila por ŝanĝi kuntekston ĉe fino de linio. Ĉi tio necesas ekzemple en C/C++ por daŭrigi makroojn aŭ ĉenojn.

Inkluzivi Regulojn

  Enmeti regulojn de alia kunteksto aŭ lingvo/dosiero.

      <IncludeRules context="contextlink" [includeAttrib="true|false"] />

  La atributo `context` difinas kiun kuntekston inkluzivi.

  Se ĝi estas simpla ĉeno, ĝi inkluzivas ĉiujn difinitajn regulojn en la nunan kuntekston, ekzemple:

      <IncludeRules context="aliaKunteksto" />

  Se la ĉeno enhavas `##` la reliefigsistemo serĉos kuntekston el alia lingvodifino kun la persona nomo, ekzemple

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

  inkluzivus la kuntekston String el la C++-reliefiga difino.

  Se la atributo `includeAttrib` estas true, ŝanĝi la cel-atributon al tiu de la fonto. Ĉi tio estas bezonata por ke, ekzemple, komentu funkciu, se teksto kongrua per la inkluzivita kunteksto estas malsama kulminaĵo de la gastiga kunteksto.

DetectSpaces

  Detekti blankspacojn.

      <DetectSpaces (komunaj atributoj) />

  Ĉi tiu regulo ne havas specifajn atributojn.

  Uzu ĉi tiun regulon se vi scias, ke povas esti pluraj blankspacoj antaŭe, ekzemple en la komenco de indentitaj linioj. Ĉi tiu regulo preterlasos ĉiujn blankspacojn samtempe, anstataŭ testi plurajn regulojn kaj preterlasi unu samtempe pro neniu kongruo.

DetektiIdentigilo

  Detekti identigajn ĉenojn (kiel la regula esprimo: `[a-zA-Z_][a-zA-Z0-9_]*`).

      <DetectIdentifier (komunaj atributoj) />

  Ĉi tiu regulo ne havas specifajn atributojn.

  Uzu ĉi tiun regulon por preterlasi ĉenon de vortsignoj samtempe, anstataŭ provi kun pluraj reguloj kaj salti unuope pro neniu kongruo.

#### Konsiloj & Trukoj

Post kiam vi komprenis kiel funkcias la kuntekstoŝanĝo, estos facile skribi elstarajn difinojn. Tamen vi devas zorge kontroli kian regulon vi elektas en kiu situacio. Regulaj esprimoj estas tre potencaj, sed ili estas malrapidaj kompare kun la aliaj reguloj. Do vi povas konsideri la sekvajn konsiletojn.

- Regulaj esprimoj estas facile uzeblaj sed ofte ekzistas alia multe pli rapida maniero atingi la saman rezulton. Konsideru, ke vi volas kongrui kun la signo `'#'` nur se ĝi estas la unua signo en la linio. Solvo bazita en regula esprimo aspektus jene:

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

  Vi povas atingi la samon multe pli rapide uzante :

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

  Se vi volas kongrui kun la regula esprimo `'^#'` vi ankoraŭ povas uzi `DetectChar` kun la atributo `column="0"`. La atributo `column` nombras signojn, do tabelilo estas nur unu signo.

- En reguloj `RegExpr`, uzu la atributon `column="0"` se la ŝablono `^PATTERN` estos uzata por kongrui tekston komence de linion. Ĉi tio plibonigas rendimenton, ĉar ĝi evitos serĉi kongruojn en la ceteraj kolumnoj.

- En regulaj esprimoj, uzu nekaptajn grupojn `(?:PATTERN)` anstataŭ kapti grupojn `(PATTERN)`, se la kaptoj ne estos uzataj en la sama regula esprimo aŭ en dinamikaj reguloj. Ĉi tio evitas konservi kaptojn nenecese.

- Vi povas ŝanĝi kuntekstojn sen prilabori signojn. Supozu, ke vi volas ŝanĝi kuntekston kiam vi renkontas la ĉenon `*/`, sed bezonas prilabori tiun ĉenon en la sekva kunteksto. La suba regulo kongruos, kaj la atributo `lookAhead` igos la reliefigilon konservi la kongruan ĉenon por la sekva kunteksto.

      <StringDetect attribute="Comment" context="#pop" String="*/" lookAhead="true" />

- Uzu `Detekti Spacojn` se vi scias ke multaj blankspacoj okazas.

- Uzu `DetectIdentifier` anstataŭ la regula esprimo `'[a-zA-Z_]\w*'`.

- Uzu defaŭltajn stilojn kiam ajn vi povas. Tiel la uzanto trovos konatan medion.

- Rigardu aliajn XML dosierojn por vidi kiel aliaj homoj efektivigas malfacilajn regulojn.

- Vi povas validigi ĉiun XML-dosieron per la komando validatehl.sh mySyntax.xml. La dosiero `validatehl.sh` uzas `language.xsd` kiuj ambaŭ estas disponeblaj en Deponejo pri sintaksa reliefigo.

- Se vi ripetas kompleksan regulan esprimon tre ofte, vi povas uzi ENTOJN. Ekzemplo:

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

  Nun vi povas uzi &miaref; anstataŭ la regula esprimo.

- En Kate Editor, vi povas reŝargi sintaksojn uzante la enkonstruitan komandlinion (`F7` ŝparvojo defaŭlte) kaj la komandon reload-highlighting.

- Vi povas uzi la komandlinian ilon nomitan `ksyntaxhighlighter6` (`kate-syntax-highlighter` ĉe pli malnovaj versioj) por testi sintakson kaj montri la stilon kaj regionojn asociitajn kun ĉiu parto de teksto.

  Rezulto de ksyntaxhighlighter6 --output-format=ansi --syntax-trace=format test.cpp.

  Uzu ksyntaxhighlighter6 -h por pliaj opcioj.

Laborante kun Koloraj Etosoj
Laborante kun Koloraj Etosoj

## Laborante kun Koloraj Etosoj

### Superrigardo

Koloretosoj difinas la kolorojn de la tekstredakta areo kaj la sintaksreliefigo. Koloretoso ampleksas la jenon:

- La teksta stilo, uzata por sintaksa reliefigo per la defaŭltaj stilaj atributoj. Ekzemple, la tekstokoloro kaj la elektita tekstokoloro.

- La fono de la teksta redakta areo, inkluzive de la tekstoelekto kaj la aktuala linio.

- La piktograma rando de la teksta areo: ilia fono, la apartlinio, la linionumeroj, la liniaj vortvolvaj markiloj, la modifitaj linimarkoj kaj la koda faldado.

- Tekstaj dekoraciistoj kiel ekzemple la serĉsignoj, la indentaĵo kaj tab-/spac-liniomarkoj, la kongruo de krampoj kaj la literuma kontrolo.

- Legosignoj kaj fragmentoj.

Por eviti konfuzon, la jena estas ekstere de amplekso:

- La tiparo kaj la tipa grandeco.

- La koloroj de la tekstredakta aplikaĵo, kiel la rulumbreta mapo, la menuoj, la langetobreto, la fenestrokoloro, ktp. En KDE-aplikoj, kiel Kate aŭ KDevelop, ĉi tiuj koloroj estas difinitaj per la `KDE Plasma ĉiea kolorskemo`, kiuj estas fiksitaj en la modulo “Koloroj” en Sistemargordoj aŭ de la aplikaĵo mem en la menuo Agordoj → Kolorskemo.

“Breeze Light” kaj “Breeze Dark” koloretosoj kun la sintaksa reliefigo de “C++”.

### La KSyntaxHighlighting Koloraj Etosoj

La KSyntaxHighlighting kadro, kiu estas la sintaksreliefigo-motoro, estas la biblioteko kiu `provizas kaj administras la koloretosojn`. Ĉi tio estas parto de KDE Frameworks kaj estas uzata en KDE tekstredaktiloj kiel Kate, KWrite, Kile kaj KDevelop. Ĉi tiu dependeco aspektas kiel jena:

Dependeco de KDE Frameworks bibliotekoj pri tekstoredaktiloj.

KSyntaxHighlighting inkluzivas diversajn enkonstruitajn etosojn kiuj estas montritaj sur la paĝo “Koloraj Etosoj” de la retejo de Kate-redaktilo. .

La kadro KTextEditor, kiu estas la tekstoredaktadmotoro, disponigas uzantinterfacon por krei kaj redakti koloretosojn , inkluzive de ilo por importi kaj eksporti etosojn. Ĉi tio estas la plej simpla maniero krei kaj redakti ilin, vi povas aliri ĝin de la “Agordi” dialogo de la tekstredaktilo. Pliaj detaloj en la sekcio nomata “La Koloraj Etosoj GUI”.

La GUI por administri kolorajn etosojn en la agordoj de Kate.

Estas grave mencii ke, en la KDE tekstredaktiloj kiel Kate aŭ KDevelop, la koloretosoj de KSyntaxHighlighting estas uzataj ekde KDE Frameworks 5.75, publikigita la 10-an de oktobro 2020. Antaŭe, la kolorskemoj de Kate (skem-agordo bazita en KConfig) estis uzataj kaj nun estas malrekomenditaj. Tamen, eblas konverti la malnovan Kate skemoj al la koloretosoj de KSyntaxHighlighting. La KSyntaxHighlighting-deponejo inkluzivas la `utils/kateschema_to_theme_converter.py` skripton kaj la `utils/schema-converter/` ilo por tiu celo.

### La Koloraj Etosoj JSON Formato

#### Superrigardo

Koloraj etosoj estas konservitaj en JSON; formataj dosieroj, kun la etendo `.theme`.

En la KSyntaxHighlighting fontkodo, la JSON dosieroj de enkonstruitaj etosoj troviĝas en la dosierujo `data/themes/`. Notu, ke en tekstredaktiloj, la enkonstruitaj etosoj estas kompilitaj en la bibliotekon KSyntaxHighlighting, tial la maniero aliri ilin estas per la fontkodo aŭ per eksportante ilin el la GUI por administri etosojn de KTextEditor.

Ankaŭ eblas facile aldoni pliajn aŭ proprajn etosojn, kiuj estas ŝargitaj de la dosiersistemo. Uzant-personigitaj etosdosieroj troviĝas en la dosierujo `org.kde.syntax-highlighting/themes/` en via uzantdosierujo, kiun vi povas trovi per la komando `qtpaths`--paths GenericDataLocation`` kaj estas kutime ``$HOME`/.local/share/` kaj `/usr/share/`.

En Flatpak kaj Snap-pakaĵoj, ĉi-supra dosierujo ne funkcios ĉar la datuma loko estas malsama por ĉiu aplikaĵo. En Flatpak-aplikaĵo, la loko de propraj etosdosieroj estas kutime ``$HOME`/.var/app/`flatpak-package-name` /data/org.kde.syntax-highlighting/themes/` kaj en Snap-aplikaĵo tiu loko estas ``$HOME`/snap/`snap-package-name`/current/.local/share/org.kde.syntax-highlighting/themes/`.

Sur Windows® ĉi tiuj dosieroj troviĝas `%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting hemes`. `%USERPROFILE%` kutime vastiĝas al `C:\Users\`uzantnomo``.

Resume, por la plej multaj agordoj la propraj etosoj dosierujo estas jena:

Por loka uzanto | ``$HOME`/.local/share/org.kde.syntax-highlighting/themes/`
Por ĉiuj uzantoj | `/usr/share/org.kde.syntax-highlighting/themes/`
Por Flatpak-pakaĵoj | ``$HOME`/.var/app/`flatpak-package-name`/data/org.kde.syntax-highlighting/themes/`
Por Snap-pakaĵoj | ``$HOME`/snap/`snap-package-name`/current/.local/share/org.kde.syntax-highlighting/themes/`
Sur Windows® | `%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting hemes`

Se ekzistas pluraj etosodosieroj kun la sama nomo, la dosiero kun la plej alta `revizio` estos ŝargita.

#### La JSON Strukturo

La strukturo de JSON dosiero estas klarigita en ilia retejo. Esence, JSON formato dosiero konsistas el:

- Kolektoj de ŝlosilaj/valoraj paroj, apartigitaj per komoj kaj grupigitaj en `{ }` kiujn ni nomos “objektoj”.

- Ordigitaj valorlistoj, apartigitaj per komoj kaj grupigitaj en `[ ]` kiun ni nomos “tabelo”.

La nomenklaturo “ŝlosilo”, “valoro”, “objekto” kaj “tabelo” estos uzataj en ĉi tiu artikolo. Se ĉi tio estas via unua fojo laboranta kun JSON dosierojn, kompreni ilin estas tiel simple kiel rigardi la ekzemplojn sube.

#### Ĉefaj Sekcioj de la JSON Koloraj Etosoj Dosieroj

La radika objekto de la koloretoso JSON dosiero enhavas la sekvajn skemajn ŝlosilojn:

- `metadatenoj`: Ĝi estas deviga. La valoro estas objekto kun la metadatenoj de la etoso, kiel nomo, revizio kaj permesilo.

  Ĉi tio estas detala en la sekcio nomata “Metadatenoj”.

- `editor-colors`: Ĝi estas deviga. La valoro estas objekto kun la koloroj de la teksta redakta areo, kiel la fono, la piktogramo kaj la teksta ornamado.

  Ĉi tio estas detala en la sekcio nomata “Redaktilaj Koloroj”.

- `teksto-stiloj`: Ĝi estas deviga. La valoro estas objekto kun la defaŭlta tekstostilo atributoj de la sintaksa reliefigo. Ĉiu eco difinas sian tekstokoloron, ĝian elektitan tekstokoloron, aŭ ĉu ĝi ekzemple grasa aŭ kursiva. La tekstostiloj povas esti referencitaj de la atributoj de la sintaksdifinaj XML-dosieroj.

  Ĉi tio estas detala en la sekcio nomata “Defaŭltaj Tekstaj Stiloj”.

- `personaj stiloj`: Ĝi estas laŭvola. Difinas tekstajn stilojn por la atributoj de specifaj sintakso elstarigante difinojn. Ekzemple, en reliefiga difino kiel `Python` aŭ `Markdown` vi povas specifi malsaman tekstostilon, kiu anstataŭas la defaŭltan difinitan en `teksto-stiloj`.

  Ĉi tio estas detala en la sekcio nomata “Propraj Reliefigaj Tekstostiloj”.

La JSON lingvo ne subtenas komentojn. Tamen, vi povas uzi la laŭvolan klavon `_comments` en la radika objekto por skribi komentojn, ekzemple, se vi adaptas ekzistantan etoson vi povas meti la URL de la originala deponejo. La plej praktika maniero estas uzi tabelon de ĉenoj.

Malsupre estas ekzempla dosiero por la etoso “Breeze Light”. Vi povas rimarki ke, por eviti ke la ekzemplo estu tro granda, la objektoj `editor-colors` kaj `text-stiloj` ne enhavas ĉiujn postulatajn ŝlosilojn. Vi povas vidi la plenan arkivon de la “Breeze Light” etoso en la KSyntaxHighlighting-deponejo.

    {
        "_comments": [
            "Ĉi tio estas komento.",
            "Se ĉi tiu etoso estas adapto de alia, metu la ligilon al la origina deponejo."
        ],
        "metadata": {
            "name" : "Breeze Light",
            "revision" : 5,
            "copyright": [
                "SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org>",
                "SPDX-FileCopyrightText: 2016 Dominik Haumann <dhaumann@kde.org>"
            ],
            "license": "SPDX-License-Identifier: MIT"
        },
        "editor-colors": {
            "BackgroundColor" : "#ffffff",
            "CodeFolding" : "#94caef",
            "BracketMatching" : "#ffff00",
            "CurrentLine" : "#f8f7f6",
            "IconBorder" : "#f0f0f0",
            "IndentationLine" : "#d2d2d2",
            "LineNumbers" : "#a0a0a0",
            "CurrentLineNumber" : "#1e1e1e",
            La aliaj redaktilaj kolorklavoj...

        },
        "text-styles": {
            "Normal" : {
                "text-color" : "#1f1c1b",
                "selected-text-color" : "#ffffff",
                "bold" : false,
                "italic" : false,
                "underline" : false,
                "strike-through" : false
            },
            "Keyword" : {
                "text-color" : "#1f1c1b",
                "selected-text-color" : "#ffffff",
                "bold" : true
            },
            "Function" : {
                "text-color" : "#644a9b",
                "selected-text-color" : "#452886"
            },
            "Variable" : {
                "text-color" : "#0057ae",
                "selected-text-color" : "#00316e"
            },
            La aliaj tekstaj stilklavoj...

        },
        "custom-styles": {
            "ISO C++": {
                "Data Type": {
                    "bold": true,
                    "selected-text-color": "#009183",
                    "text-color": "#00b5cf"
                },
                "Keyword": {
                    "text-color": "#6431b3"
                }
            },
            "YAML": {
                "Attribute": {
                    "selected-text-color": "#00b5cf",
                    "text-color": "#00b5cf"
                }
            }
        }
    }

#### Metadatenoj

La JSON objekto de la ŝlosilo `metadata` enhavas koncernajn informojn pri la etoso. Ĉi tiu objekto havas la sekvajn ŝlosilojn:

- `nomo`: Ĝi estas ĉeno fiksas la nomon de la lingvo. Ĝi aperas poste en la menuoj kaj dialogoj. Ĝi estas deviga.

- `revizio`: Ĝi estas entjera nombro kiu specifas la nunan revizion de la etosodosiero. Kiam ajn vi ĝisdatigas koloretosan dosieron, certigu pliigi ĉi tiun nombron. Ĝi estas deviga.

- `licenco`: Ĝi estas ĉeno kiu difinas la permesilon de la etoso, uzante la identigilon `SPDX-License-Identifier` el la norma SPDX-licenca komunikformato. Ĝi estas laŭvola.

  Vi povas vidi la plenan liston de SPDX-licencaj identigiloj ĉi tie.

- `kopirajto`: Ĝi estas tabelo de ĉenoj kiu specifas la aŭtorojn de la etoso, uzante la identigilon `SPDX-FileCopyrightText` de la norma SPDX-licenca komunika formato. Ĝi estas laŭvola.

    "metadata": {
        "name" : "Breeze Light",
        "revision" : 5,
        "copyright": [
            "SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org>",
            "SPDX-FileCopyrightText: 2016 Dominik Haumann <dhaumann@kde.org>"
        ],
        "license": "SPDX-License-Identifier: MIT"
    }

### Koloroj en Detalo

Ĉi tiu sekcio detaligas ĉiujn disponeblajn kolorajn atributojn kaj disponeblajn kolorajn agordojn.

#### Redaktilaj Koloroj

Korespondas al la koloroj de la tekstredakta areo.

En la JSON etosodosiero, la respektiva klavo `editor-colors` havas kiel valoron objekton kie ĉiu ŝlosilo referencas al atributokoloro de la tekstredaktilo. Ĉi tie, `ĉiuj disponeblaj ŝlosiloj estas devigaj`, iliaj valoroj estas `ĉenoj` kun deksesuma kolorkodoj, kiel “#00B5CF”.

En la GUI por administri etosojn de KTextEditor, ĉi tiuj atributoj povas esti modifitaj en la langeto `Koloroj`.

La disponeblaj ŝlosiloj estas la jenaj; la ŝlosiloj uzataj en la JSON dosiero estas listigitaj en grasa, la nomoj uzataj en la GUI estas montritaj inter krampoj.

Redaktilaj Fonkoloroj
  `BackgroundColor` (Teksta Areo)

    Ĉi tio estas la defaŭlta fono por la redaktila areo, ĝi estos la domina koloro sur la redaktilareo.

  `TextSelection` (Elektita Teksto)

    Ĉi tio estas la fono por elektita teksto.

  `CurrentLine` (Nuna Linio)

    Agordu la koloron por la nuna linio. Agordi ĉi tion iom diferenca de la Normala tekstfono helpas konservi fokuson sur la nuna linio.

  `SearchHighlight` (Serĉa Reliefigo)

    Agordu la koloron por la teksto, kiu kongruas kun via lasta serĉo.

  `ReplaceHighlight` (Anstataŭiga Reliefigo)

    Agordu la koloron por la teksto, kiu kongruas kun via lasta anstataŭiga operacio.

Piktograma Bordo
  `IconBorder` (Fona Areo)

    Ĉi tiu koloro estas uzata por la markoj, lininumeroj kaj faldmarkilaj bordoj en la maldekstra flanko de la redaktora vido kiam ili estas montrataj.

  `LineNumbers` (Linionumeroj)

    Ĉi tiu koloro estas uzata por desegni la linionumerojn sur la maldekstra flanko de la vido kiam estas montrata.

  `CurrentLineNumber` (Aktuala Linionumero)

    Ĉi tiu koloro estas uzata por desegni la linionumeron de la nuna linio, sur la maldekstra flanko de la vido kiam montrata. Agordi ĉi tion iom diferenca de “Linenumeroj” helpas konservi fokuson sur la nuna linio.

  `Apartilo` (Apartilo)

    Ĉi tiu koloro estas uzata por desegni la vertikalan linion, kiu apartigas la piktograman bordon de la fono de la tekstareo.

  `WordWrapMarker` (WordWrap Marker)

    Ĉi tiu koloro estas uzata por desegni ŝablonon maldekstre de dinamike envolvitaj linioj kiam tiuj estas vicigitaj vertikale, same kiel por la senmova vortvolva markilo.

  `CodeFolding` (Kodofaldado)

    Ĉi tiu koloro estas uzata por reliefigi la sekcion de kodo, kiu estus faldita kiam vi alklakas la kodan faldsagon maldekstre de dokumento. Por pliaj informoj, vidu la dokumentadon pri kodfaldo.

  `Modifitaj Linioj` (Modifitaj Linioj)

    Ĉi tiu koloro estas uzata por reliefigi maldekstre de dokumento linioj kiuj estis modifitaj sed ankoraŭ ne konservitaj. Por pliaj informoj, vidu la sekcio nomata “Linia Modifa Indikiloj”.

  `SavedLines` (Konservitaj Linioj)

    Ĉi tiu koloro estas uzata por reliefigi maldekstre de dokumentlinioj kiuj estis modifitaj ĉi tiun sesion kaj konservitaj. Por pliaj informoj, vidu la sekcio nomata “Linia Modifa Indikiloj”.

Tekstaj Dekoracioj
  `SpellChecking` (Literuma Erarlinio)

    Ĉi tiu koloro estas uzata por indiki literumajn erarojn.

  `TabMarker` (Tabaj kaj Spacetaj Markiloj)

    Ĉi tiu koloro estas uzata por desegni blankspacajn indikilojn, kiam ili estas ebligitaj.

  `IndentLine` (Deŝova Linio)

    Ĉi tiu koloro estas uzata por desegni linion maldekstre de deŝovitaj blokoj, se tiu funkcio estas ebligita.

  `BracketMatching` (Kramp-Elstarigo)

    Ĉi tiu koloro estas uzata por desegni la fonon de kongruaj krampoj.

Markilaj Koloroj
  `MarkBookmark` (Legomarki)

    Ĉi tiu koloro estas uzata por indiki legosignojn. Notu, ke ĉi tiu koloro havas opakecon de 22% (kaj 33% por la nuna linio) rilate al la fono. Por pliaj informoj, vidu la sekcio nomata “Uzante Legosignojn”.

  `MarkBreakpointActive` (Aktiva Paŭzpunkto)

    Ĉi tiu koloro estas uzata de la GDB-kromaĵo por indiki aktivan paŭzpunkton. Rimarku, ke ĉi tiu koloro havas opakecon al la fono. Por pliaj informoj, vidu la dokumentaron pri GDB-Aldonaĵo.

  `MarkBreakpointReached` (Atingita Paŭzopunkto)

    Ĉi tiu koloro estas uzata de la GDB-kromaĵo por indiki rompopunkton, kiun vi atingis dum senararigado. Rimarku, ke ĉi tiu koloro havas opakecon al la fono. Por pliaj informoj, vidu la dokumentaron pri GDB-Aldonaĵo.

  `MarkBreakpointDisabled` (Malŝaltita Breakpoint)

    Ĉi tiu koloro estas uzata de la GDB-kromaĵo por indiki neaktivan rompopunkton. Rimarku, ke ĉi tiu koloro havas opakecon al la fono. Por pliaj informoj, vidu la dokumentaron pri GDB-Aldonaĵo.

  `MarkExecution` (Efektivigo)

    Ĉi tiu koloro estas uzata de la GDB-kromaĵo por la linio aktuale efektiviĝanta. Rimarku, ke ĉi tiu koloro havas opakecon al la fono. Por pliaj informoj, vidu la dokumentaron pri GDB-Aldonaĵo.

  `MarkWarning` (Averto)

    Ĉi tiu koloro estas uzata de la konstrukromaĵo por indiki linion, kiu kaŭzis kompililan averton. Rimarku, ke ĉi tiu koloro havas opakecon al la fono. Por pliaj informoj, vidu la dokumentaron pri Konstrua Kromaĵo.

  `MarkError` (Eraro)

    Ĉi tiu koloro estas uzata de la konstrukromaĵo por indiki linion, kiu kaŭzis kompililan eraron. Rimarku, ke ĉi tiu koloro havas opakecon al la fono. Por pliaj informoj, vidu la dokumentaron pri Konstrua Kromaĵo.

Tekstaj Ŝablonoj & Fragmentoj
  `Ŝablona Fono` (Fono)

    Ĉi tiu koloro estas uzata de la Kate Kromaĵo de fragmentoj por marki la fonon de fragmento. Por pliaj informoj, vidu la Kate Dokumentado pri fragmentoj.

  `TemplatePlaceholder` (Redaktebla Lokokupilo)

    Ĉi tiu koloro estas uzata de la Kate Aldonaĵo de fragmentoj por marki lokokupilon, kiun vi povas alklaki por redakti mane. Por pliaj informoj, vidu la Kate Dokumentadon pri fragmentoj.

  `TemplateFocusedPlaceholder` (Enfokusigita Redaktebla Lokokupilo)

    Ĉi tiu koloro estas uzata de la Kate Aldonaĵo de fragmentoj por marki la lokokupilon, kiun vi nun redaktas. Por pliaj informoj, vidu la Kate Dokumentado pri fragmentoj.

  `TemplateReadOnlyPlaceholder` (Ne Redaktebla Lokokupilo)

    Ĉi tiu koloro estas uzata de la Kate Aldonaĵo de fragmentoj por marki lokokupilon, kiu ne povas esti redaktita permane, kiel tiu, kiu estas aŭtomate plenigita. Por pliaj informoj, vidu la Kate Dokumentado pri fragmentoj.

#### Defaŭltaj Tekstaj Stiloj

La defaŭltaj tekstaj stiloj estas hereditaj de la elstaraj tekstostiloj, permesante al la redaktilo prezenti tekston en tre konsekvenca maniero, ekzemple komenta teksto uzas la saman stilon en preskaŭ ĉiuj tekstformatoj kiujn KSyntaxHighlighting povas reliefigi.

### Rimarko

Tiuj ĉi tekstostiloj povas esti referencitaj de la `defaŭltaj stiloj` uzataj en sintakso reliefigo difino XML dosierojn, ekzemple, la atributo “Normala” estas ekvivalenta al “dsNormal” en la XML dosieroj, kaj “DataType” estas ekvivalenta al “dsDataType”. Vidu la sekcio nomata “Disponeblaj Defaŭltaj Stiloj” en la dokumentaro pri sintaksa reliefigo.

### Sugesto

Nepre elektu legeblajn kolorojn kun bona kontrasto precipe en kombinaĵo kun la `Redaktilaj Koloroj`. Vidu la sekcio nomata “Kontrasto de Tekstaj Koloroj”.

En la JSON dosiero, la respektiva klavo `tekstaj stiloj` havas kiel valoron objekton kie ĉiu klavo respondas al la nomo de defaŭlta tekstostilo , kiuj estas ekvivalentaj al tiuj uzataj en la sintakso elstarigante difinojn. Ĉi tie, `ĉiuj disponeblaj tekststilaj klavoj estas devigaj`, ĉi tiuj estas listigitaj sube.

    "text-styles": {
        "Normal" : {
            "text-color" : "#1f1c1b",
            "selected-text-color" : "#ffffff",
            "bold" : false,
            "italic" : false,
            "underline" : false,
            "strike-through" : false
        },
        "Keyword" : {
            "text-color" : "#1f1c1b",
            "selected-text-color" : "#ffffff",
            "bold" : true
        },
        "Function" : {
            "text-color" : "#644a9b",
            "selected-text-color" : "#452886"
        },
        La aliaj tekststilaj klavoj...
    }

Ĉiu ŝlosilo de defaŭlta teksta stilo havas JSON objekto kiel ĝia valoro, kie valoroj kiel koloro, grasa, kursivo, ktp. Ĉi tiuj klavoj estas kiel sekvas:

  `teksto-koloro`: Ĝi estas ĉeno kun la tekstkoloro en deksesuma kolorkodo. Ĉi tiu ŝlosilo/valoro estas postulata.

  `elektita-teksto-koloro`: La tekstokoloro kiam ĝi estas elektita estas ĝenerale la sama valoro kiel “text-color”. Kiam la teksto estas elektita, la fono estas difinita per la valoro de TextSelection en la Redaktilaj Koloroj, do vi devas certigi, ke la teksto havas bonan kontraston kaj estas legebla kun ĉi tiu fono. La valoro estas ĉeno kun deksesuma kolorkodo. Ĉi tiu ŝlosilo/valoro estas postulata.

  `grasa`: Ĝi estas bulea kiu determinas ĉu la teksto estas grasa. Ĉi tiu ŝlosilo estas laŭvola, la defaŭlta valoro estas `false`.

  `kursivo`: Ĝi estas bulea kiu determinas ĉu la teksto estas kurba. Ĉi tiu ŝlosilo estas laŭvola, la defaŭlta valoro estas `false`.

  `substreki`: Ĝi estas bulea kiu determinas ĉu la teksto estas substrekita. Ĉi tiu ŝlosilo estas laŭvola, la defaŭlta valoro estas `false`.

  `streko`: Ĝi estas bulea kiu determinas ĉu la teksto estas trastrekita. Ĉi tiu ŝlosilo estas laŭvola, la defaŭlta valoro estas `false`.

  `fono-koloro`: Determinas la fonon de la teksto, uzata ekzemple en atentigoj en komentoj. La valoro estas ĉeno kun deksesuma kolorkodo. Ĉi tiu ŝlosilo estas laŭvola, defaŭlte ne ekzistas fono.

  `elektita-fono-koloro`: Determinas la fonon de la teksto kiam ĝi estas elektita. La valoro estas ĉeno kun deksesuma kolorkodo. Ĉi tiu ŝlosilo estas laŭvola, defaŭlte ne ekzistas fono.

En la GUI por administri koloretosojn de KTextEditor, ĉi tiuj atributoj povas esti modifitaj en la langeto `Defaŭltaj Tekstaj Stiloj`. La nomo en la listo de stiloj uzas la stilon agordita por la ero, provizante al vi tujan antaŭrigardon dum agordado de stilo. Ĉiu stilo ebligas al vi elekti komunajn atributojn same kiel malfonojn kaj fonkolorojn. Por nuligi fonkoloron, dekstre alklaku por uzi la kuntekstan menuon.

La disponeblaj tekstostilaj ŝlosiloj estas la jenaj; la ŝlosiloj uzataj en la JSON dosiero estas listigitaj en grasa, la nomoj uzataj en la GUI estas montritaj inter krampoj se ili estas malsamaj.

Normala Teksto & Fonta Kodo

  `Normal`: Defaŭlta tekststilo por normala teksto kaj fontkodo sen speciala reliefigo.

  `Keyword`: Teksta stilo por enkonstruitaj lingvaj ŝlosilvortoj.

  `Function`: Teksta stilo por funkciodifinoj kaj funkciovokoj.

  `Variable`: Teksta stilo por variabloj, se aplikeble. Ekzemple, variabloj en PHP/Perl kutime komenciĝas per `$`, do ĉiuj identigiloj sekvantaj la ŝablonon `$foo` estas emfazitaj kiel variablo.

  `ControlFlow` (Control Flow): Tekstostilo por kontrolfluaj ŝlosilvortoj, kiel if, then, else, return, switch, break, yield, continue, ktp.

  `Operator`: Teksta stilo por operatoroj, kiel `+`, `-`, `*`, `/`, `%`, ktp.

  `BuiltIn` (Built-in): Teksta stilo por enkonstruitaj lingvoklasoj, funkcioj kaj objektoj.

  `Extension`: Teksta stilo por konataj etendaĵoj, kiel Qt™ klasoj, funkcioj/makrooj en C++ kaj Python aŭ boost.

  `Preprocessor`: Tekstostilo por antaŭprocesoraj deklaroj aŭ makrodifinoj.

  `Attribute`: Teksta stilo por komentarioj aŭ atributoj de funkcioj aŭ objektoj, ekz. `@override` en Java, aŭ `__declspec(...)` kaj `__attribute__((...))` en C++.

Nombroj, Tipoj & Konstantoj

  `DataType` (Data Type): Teksta stilo por enkonstruitaj datumtipoj kiel int, char, flosi, malplenigo, u64, ktp.

  `DecVal` (Decimal/Value): Teksta stilo por dekumaj valoroj.

  `BaseN` (Base-N Integer): Teksta stilo por nombroj kun bazo alia ol 10.

  `Float` (Floating Point): Teksta stilo por glitpunktaj nombroj.

  `Constant`: Teksta stilo por lingvaj konstantoj kaj uzant-difinitaj konstantoj, ekz. True, False, None en Python aŭ nullptr en C/C++; aŭ matematikaj konstantoj kiel PI.

Ĉenoj & Signoj

  `Char` (Signo): Teksta stilo por unuopaj signoj kiel `'x'`.

  `SpecialChar` (Speciala Signo): Tekstostilo por eskapintaj signoj en ĉenoj, ekz. “`saluton\n`”, kaj aliajn signojn kun speciala signifo en ĉenoj, kiel anstataŭaĵoj aŭ regex operatoroj.

  `String`: Teksta stilo por ĉenoj kiel “`saluton mondo`”.

  `VerbatimString` (Verbatim String): Tekstostilo por laŭvortaj aŭ krudaj ĉenoj kiel `'raw \backlash'` en Perl, CoffeeScript, kaj ŝeloj, kiel same kiel `r'\raw'` en Python, aŭ kiel ĈI TIE dokumentoj.

  `SpecialString` (Speciala Ĉeno): Teksta stilo por specialaj ĉenoj, kiel regulaj esprimoj en ECMAScript, la LATEX matematika reĝimo, SQL, ktp.

  `Import` (Importadoj, Moduloj, Inkludoj): Tekstostilo por inkludoj, importadoj, moduloj aŭ LATEX pakoj.

Komentoj & Dokumentado

  `Comment`: Teksta stilo por normalaj komentoj.

  `Documentation`: Teksta stilo por komentoj kiuj reflektas API-dokumentadon, kiel ekzemple `/** doxygen-komentoj */` aŭ `"""docstrings"""`.

  `Annotation`: Teksta stilo por komentoj en komentoj aŭ dokumentaj komandoj, kiel `@param` en Doxygen aŭ JavaDoc.

  `CommentVar` (Komenta Variablo): Tekstostilo kiu rilatas al variablo-nomoj uzataj en supraj komandoj en komento, kiel `foobar` en “`@param foobar`”, en Doxygen aŭ JavaDoc.

  `RegionMarker` (Regiona markilo): Teksta stilo por regionmarkoj, kutime difinita per `//BEGIN` kaj `//END` en komentoj.

  `Information`: Teksta stilo por informoj, notoj kaj konsiloj, kiel la ŝlosilvorto `@noto` en Doxygen.

  `Warning`: Teksta stilo por avertoj, kiel la ŝlosilvorto `@warning` en Doxygen.

  `Alert`: Teksta stilo por specialaj vortoj en komentoj, kiel `TODO`, `FIXME`, `XXXX` kaj `AVERTO` .

Diversaj

  `Error`: Teksta stilo indikanta eraran reliefigon kaj malĝustan sintakson.

  `Aliaj`: Teksta stilo por atributoj kiuj ne kongruas kun iu ajn el la aliaj defaŭltaj stiloj.

#### Propraj Reliefigaj Tekstostiloj

Ĉi tie vi povas establi tekstajn stilojn por specifa sintaksa emfaza difino, superregante la `defaŭltan tekstostilon` priskribitan en la antaŭa sekcio .

En la JSON etosodosiero, ĉi tio respondas al la ŝlosilo `personaj stiloj`, kies valoro estas objekto kie ĉiu subskema ŝlosilo respondas al la `nomo de sintaksa reliefigo-difino`. Ĝia valoro estas objekto kie ĉiu ŝlosilo referencas al la `nomo de stilaj atributoj` difinita en la `itemData` elementoj de la sintakso reliefiganta XML dosiero, kaj la respektiva valoro estas subobjekto kun la klavoj text-color, selected-text-color, grasa, kursivo, substreki, streko, fonkoloro kaj elektita fonkoloro, difinita en la antaŭa sekcio. Ĉiu el ĉi tiuj valoroj estas nedeviga, ĉar se ili ne ĉeestas, la stilo fiksita en `teksto-stiloj` estas konsiderata.

Ekzemple, en ĉi tiu kodo, la sintaksa emfaza difino de “ISO C++” havas specialan tekstan stilon por la atributoj “Tipo-Modifiloj” kaj “Normaj Klasoj”. En la responda XML dosiero “isocpp.xml”, la difinita atributo “Normaj Klasoj” uzas la defaŭltan stilon `BuiltIn` (aŭ dsBuiltIn). En ĉi tiu eco, nur la valoro de `teksto-koloro` estas anstataŭita de la nova koloro “#6431b3”.

    "custom-styles": {
        "ISO C++": {
            "Standard Classes": {
                "text-color": "#6431b3"
            },
            "Type Modifiers": {
                "bold": true,
                "selected-text-color": "#009183",
                "text-color": "#00b5cf"
            }
        }
    }

### Rimarko

- Vi devus konsideri, ke ĉi tiuj tekstaj stiloj estas asociitaj kun la atributaj nomoj difinitaj en la sintaksa reliefigo XML dosierojn. Se XML-dosiero estas ĝisdatigita kaj iuj atributoj estas renomitaj aŭ forigitaj, la propra stilo difinita en la etoso ne plu aplikiĝos.

- Sintakso elstariganta difinojn ofte inkluzivas aliajn difinojn. Ekzemple, la markilo “QML” inkluzivas la markilon “JavaScript”, ĉar ili kunhavas funkciojn en reliefigo.

En la GUI por administri etosojn de KTextEditor, ĉi tiuj atributoj povas esti modifitaj en la langeto `Elstarigado de Tekstaj Stiloj`. Defaŭlte, la redaktilo antaŭelektas la reliefigon de la nuna dokumento. Vi rimarkos, ke multaj lumaĵoj enhavas aliajn lumaĵojn reprezentitajn de grupoj en la stillisto. Ekzemple la plej multaj elstaraĵoj importas la emfazon “Atento”, kaj multaj fontkodformatoj importas la elstaraĵon “Doxygen”.

### La Koloraj Etosoj GUI

La plej simpla maniero krei kaj redakti kolorajn etosojn estas per la GUI ene de la dialogo “Agordu” provizita de KTekstRedaktilo. Por aliri ĝin, elektu Agordoj → Agordu `Apliko`... el la menubreto en via tekstredaktilo. Ĉi tio aperigas la dialogujon Agordu, tie elektu Koloraj Etosoj en la flanka panelo.

La agorda dialogujo de Kate kun la koloretoso-administrado.

En ĉi tiu dialogo vi povas agordi ĉiujn kolorojn en iu ajn etoso, kiun vi havas, kaj ankaŭ krei/kopii novajn etosojn, forigi ilin, eksporti ilin al `.theme` dosiero kun JSON formati aŭ importi ilin el eksteraj `.theme` dosieroj. Ĉiu etoso havas agordojn por tekstaj koloroj kaj stiloj.

La enkonstruitaj etosoj ne povas esti modifitaj defaŭlte. Por fari tion, vi devas kopii ilin kaj doni al ili novan nomon.

Por uzi etoson konstante en via tekstredaktilo, vi devas elekti ĝin en la kombinujo etikedita Defaŭlta etoso por `Apliko` ĉe la malsupro de la dialogo kaj premu Apliki aŭ Bone. Defaŭlte estas aktiva la opcio `Aŭtomata Elekto`, kiu elektas pli taŭgan koloretoson laŭ la KDE Plasma kolorskemo uzata en la tekstredakta aplikaĵo; ĝi kutime elektas inter “Breeze Light” kaj “Breeze Dark” se la skemo estas hela aŭ malhela, respektive.

### Sugesto

Vi povas alĝustigi la KDE ĉiea kolorskemo en la modulo “Koloroj” en Sistemargordoj. Vi ankaŭ povas ŝanĝi ĝin en iuj aplikaĵoj individue kiel ekzemple Kate aŭ KDevelop, el la menuo Agordoj → Kolorskemo.

#### Krei novan etoson

Por krei novan etoson, unue necesas kopii ekzistantan. Elektu ekzistantan etoson, kiun vi volas uzi kiel bazon, kiel “Breeze Light” aŭ “Breeze Dark”, kaj alklaku Kopii. Poste skribu nomon por la nova etoso.

Se vi volas modifi enkonstruitan aŭ nurlegeblan etoson, vi unue devas kopii ĝin sub malsama nomo.

#### Importi aŭ eksporti JSON etosodosierojn

Vi povas eksporti elektitan etoson (inkluzive de enkonstruitaj) al JSON dosiero kun etendo `.theme`, per la butono Eksporti. Ĉi tio malfermos dialogon por konservi la dosieron. Por aldoni koloretoson de ekstera JSON dosiero, simple premu la butonon Importi kaj elektu la dosieron `.theme` el la dialogo.

### Sugesto

- Kiel menciite supre, uzant-personigitaj etosdosieroj estas konservitaj en la `org.kde.syntax-highlighting /themes/` dosierujo. Kiam vi kopias aŭ kreas etoson, ĝi aŭtomate aperos tie. Ankaŭ, importi aŭ aldoni etoson estas ekvivalenta al kopiado de ekstera `.theme` dosiero en ĉi tiun dosierujon. KSyntaxHighlighting aŭtomate prenas koloretosajn dosierojn el ĉi tiu dosierujo.

- Se vi volas publikigi etoson kreitan de vi, estas nepre kontroli la objekton metadata de la JSON dosiero, aldonante la respektivan permesilon kaj kontrolante la revizian numeron.

#### Redaktado de koloraj etosoj

##### Koloroj

Ĉi tie la koloroj de la teksta redakta areo estas ĝustigitaj. Ĉi tiuj estas detalaj en la sekcio nomata “Redaktilaj Koloroj”.

##### Defaŭltaj Tekstaj Stiloj

La defaŭltaj tekstaj stiloj estas hereditaj de la elstaraj tekstostiloj, permesante al la redaktilo prezenti tekston en tre konsekvenca maniero, ekzemple komenta teksto uzas la saman stilon en preskaŭ ĉiuj tekstformatoj kiujn KSyntaxHighlighting povas reliefigi.

La nomo en la listo de stiloj uzas la stilon agordita por la ero, provizante al vi tujan antaŭrigardon dum agordado de stilo.

Ĉiu stilo ebligas al vi elekti komunajn atributojn same kiel malfonojn kaj fonkolorojn. Por nuligi fonkoloron, dekstre alklaku por uzi la kuntekstan menuon.

La atributoj de ĉi tiu areo estas detalaj en la sekcio nomata “Defaŭltaj Tekstaj Stiloj”.

##### Emfazante Tekstajn Stilojn

Ĉi tie vi povas redakti la tekstajn stilojn uzatajn de specifa elstara difino. La redaktilo antaŭelektas la lumaĵon uzatan de via nuna dokumento. Por labori pri malsama elstaraĵo, elektu unu en la kombinujo Reliefigi super la stillisto.

La nomo en la listo de stiloj uzas la stilon agordita por la ero, provizante al vi tujan antaŭrigardon dum agordado de stilo.

Ĉiu stilo ebligas al vi elekti komunajn atributojn same kiel malfonojn kaj fonkolorojn. Por nuligi fonkoloron, dekstre alklaku por uzi la kuntekstan menuon. Krome vi povas vidi ĉu stilo egalas al la defaŭlta stilo uzata por la ero, kaj agordi ĝin al tio se ne.

Vi rimarkos, ke multaj lumaĵoj enhavas aliajn lumaĵojn reprezentitajn de grupoj en la stillisto. Ekzemple la plej multaj elstaraĵoj importas la Alert-elstaraĵon, kaj multaj fontkodformatoj importas la Doxygen-reliefigon. Redakti kolorojn en tiuj grupoj nur influas la stilojn kiam uzataj en la redaktita elstarigformato.

### Konsiloj & Trukoj

#### Kontrasto de Tekstaj Koloroj

Grava aspekto kiam oni laboras kun koloretosoj estas elekti tekstan kontraston, kiu faciligas la legadon, precipe en kombinaĵo kun la fono.

La aplikaĵo `Kontrast` estas kolorkontrasta kontrolilo. Ĝi diras al vi, ke la tekstkoloro kaj fonkoloro-kombinaĵoj estas legeblaj kaj alireblaj, do ĉi tio estas bonega ilo por helpi vin krei kolorajn etosojn.

Vi povas elŝuti `Kontrast` de la KDE Aplika retejo aŭ de la pako Flatpak sur Flathub (nur en GNU/Linukso) .

La aplikaĵo GNOME `Kontrasto` estas simila. Vi povas elŝuti la Flatpak-pakaĵon sur Flathub (nur en GNU/Linukso).

#### Sugestoj de Kohereco pri Sintaksreliefigo

KSyntaxHighlighting inkluzivas pli ol 300 sintaksajn difinojn, tial estas ideale, ke vi certigu, ke via nova etoso aspektas bone en ĉiuj sintaksreliefigaj difinoj. La enkonstruitaj koloretosoj havas la jenajn similecojn, kiujn rekomendindas (sed ne devige) sekvi por atingi ĝustan montradon de ĉiuj sintaksemfazaj difinoj:

- Uzu grase por la “Keyword” kaj “ControlFlow” tekstaj stiloj.

- Ne uzu fonkoloron en ajna teksta stilo, krom “Alert” kaj “RegionMarker”.

Plej multaj el la sintaksajemfaziloj estas intencitaj aspekti bone en la defaŭltaj etosoj “Breeze Light” kaj “Breeze Dark”, do alia maniero konservi koherecon estas uzi similajn kolorojn en la tekstaj stiloj, kiel verda por “Antaŭprocesoro” kaj “Aliaj”, blua por “Datumtipo” kaj “Atributo”, aŭ purpura por “Funkcio”.

Notu, ke ĉi tiuj rekomendoj ne estas devigaj dum kreado kaj publikigado de etoso.

Skripto per JavaScript
Skripto per JavaScript

## Skripto per JavaScript

La KatePart redaktila komponanto estas facile etendebla skribante skriptojn. La skriptlingvo estas ECMAScript (vaste konata kiel JavaScript). KatePart subtenas du specojn de skriptoj: deŝovajn kaj komandliniajn skriptojn.

### Deŝov-Skriptoj

Deŝovskriptoj - ankaŭ referencitaj kiel indentiloj - aŭtomate deŝovas la fontkodon dum tajpado de teksto. Ekzemple, post frapado de la revenklavo la deŝovnivelo ofte pliiĝas.

La sekvaj sekcioj priskribas paŝon post paŝo kiel krei la skeleton por simpla indentilo. Kiel unua paŝo, kreu novan `*.js` dosieron nomatan ekz. `javascript.js` en la loka hejma dosierujo `$`XDG_DATA_HOME`/katepart5/script/indentation`. En tio, la mediovariablo `XDG_DATA_HOME` kutime vastiĝas al aŭ `~/.local` aŭ `~/.local/share`.

Sur Windows® ĉi tiuj dosieroj troviĝas en `%USERPROFILE%\AppData\Local\katepart5\script\indentation`. `%USERPROFILE%` kutime vastiĝas al `C:\\Uzantoj\\`uzanto``.

#### La Deŝovskripta Kapo

La kaplinio de la dosiero `javascript.js` estas enigita kiel JSON komence de la dokumento jene:

    var katescript = {
        "name": "JavaScript",
        "author": "Ekzempla nomo <example.name@some.address.org>",
        "license": "BSD-Permesilo",
        "revision": 1,
        "kate-version": "5.1",
        "required-syntax-style": "javascript",
        "indent-languages": ["javascript"],
        "priority": 0,
    }; // kate-script-header, devas esti ĉe la komenco de la dosiero sen komentoj

Ĉiu eniro estas klarigita detale nun:

- `nomo` [bezonata]: Ĉi tiu estas la deŝovilnomo, kiu aperas en la menuo Iloj → Deŝovo kaj en la agorda dialogo.

- `aŭtoro` [laŭvola]: La nomo de la aŭtoro kaj kontaktinformoj.

- `licenco` [laŭvola]: Mallonga formo de la permesilo, kiel BSD License aŭ LGPLv3.

- `revizio` [bezonata]: La revizio de la skripto. Ĉi tiu nombro devus esti pliigita kiam ajn la skripto estas modifita.

- `kate-version` [bezonata]: Minimuma bezonata KatePart versio.

- `required-syntax-style` [laŭvola]: La bezonata sintaksa stilo, kiu kongruas kun la specifita `stilo` en sintaks-reliefigaj dosieroj. Ĉi tio estas grava por indentiloj, kiuj dependas de specifaj elstarig-informoj en la dokumento. Se bezonata sintaksa stilo estas specifita, la indentigilo disponeblas nur kiam la taŭga markilo estas aktiva. Ĉi tio malhelpas “nedifinitan konduton” kaŭzitan de uzado de la indentigilo sen la atendata reliefa skemo. Ekzemple, la Ruby-indentigilo uzas ĉi tion en la dosieroj `ruby.js` kaj `ruby.xml`.

- `indent-languages` [laŭvola]: JSON tabelo de sintaksaj stiloj kiujn la indentilo povas ĝuste deŝovi, ekz.: `["c++", "java"]`.

- `prioritato` [laŭvola]: Se pluraj indentigiloj taŭgas por certa reliefigita dosiero, la prioritato decidas kiu indentigilo estas elektita kiel defaŭlta.

#### La Deŝovila Fontkodo

Specifinte la kaplinion, ĉi tiu sekcio klarigas kiel funkcias la indentskripto mem. La baza skeleto de la korpo aspektas jene:

    // bezonataj katepart js-bibliotekoj, ekz. range.js se vi uzas Range
    require ("range.js");

    triggerCharacters = "{}/:;";
    function indent(linio, indentLarĝo, ch)
    {
        // vokita por ĉiu novlinio (ch == '\n') kaj ĉiuj signoj specifitaj en
        // la ĉiea variablo triggerCharacters. Kiam oni vokas Iloj → Formatigi deŝovon
        // la variablo ch estas malplena, t.e. ch == ''.
        //
        // vidu ankaŭ: Scripting API
        return -2;
    }

La funkcio `indent()` havas tri parametrojn:

- `linio` : la linio, kiu devas esti indentigita

- `indentWidth`: la indentlarĝo en nombro da spacoj

- `ch`: ĉu novlinia signo (`ch == '\n'`), la ekigilo specifita en `triggerCharacters` aŭ malplenigi se la uzanto alvokis la agon Iloj → Formatita indentaĵo.

La revena valoro de la `indent()` funkcio specifas kiel la linio estos indentigita. Se la liveraĵo estas simpla entjera nombro, ĝi estas interpretata jene:

- revenvaloro `-2`: faru nenion

- redona valoro `-1`: konservi indentaĵon (serĉas antaŭan nemalplenan linion)

- redonas valoron `0` : nombroj >= 0 precizigas la indentprofundecon en spacoj

Alternative, tabelo de du elementoj povas esti liverita:

- `return [ indent, align ];`

En ĉi tiu kazo, la unua elemento estas la indentprofundo kiel supre kun la sama signifo de la specialaj valoroj. Tamen, la dua elemento estas absoluta valoro reprezentanta kolumnon por “aligno”. Se ĉi tiu valoro estas pli alta ol la indenta valoro, la diferenco reprezentas kelkajn spacojn aldonotajn post la indentaĵo de la unua parametro. Alie, la dua nombro estas ignorita. Uzado de taboj kaj spacoj por indentaĵo estas ofte nomata “miksita reĝimo”.

Konsideru la sekvan ekzemplon: Supozu uzanta tabojn por indentigi, kaj tab-larĝo estas agordita al 4. Ĉi tie, <tab> reprezentas tabon kaj '.' spacon:

    1: <tab><tab>foobar("saluton",
    2: <tab><tab>......."mondo");

Kiam indentlinio 2, la funkcio `indent()` redonas [8, 15]. Kiel rezulto, du taboj estas enmetitaj por deŝovi al kolumno 8, kaj 7 spacoj estas aldonitaj por vicigi la duan parametron sub la unua, tiel ke ĝi restu vicigita se la dosiero estas rigardata kun malsama tab-larĝo.

Defaŭlta KDE instalaĵo sendas KatePart kun pluraj indentiloj. La responda JavaScript fontkodo troviĝas en `$`XDG_DATA_DIRS`/katepart5/script/indentation`.

Sur Windows® ĉi tiuj dosieroj troviĝas en `%USERPROFILE%\AppData\Local\katepart5\script\indentation`. `%USERPROFILE%` kutime vastiĝas al `C:\\Uzantoj\\`uzanto``.

Evoluigi deŝovilon postulas reŝargi la skriptojn por vidi ĉu la ŝanĝoj kondutas taŭge. Anstataŭ rekomenci la aplikaĵon, simple ŝanĝu al la komandlinio kaj alvoku la komandon reload-scripts.

Se vi evoluigas utilajn skriptojn bonvolu konsideri kontribui al la KatePart Projekto per kontaktante la dissendoliston.

### Komandoliniaj Skriptoj

Ĉar estas malfacile kontentigi ĉies bezonojn, KatePart subtenas malgrandajn helpajn ilojn por rapida manipulado de teksto per la enkonstruita komandlinio. Ekzemple, la komando sort estas efektivigita kiel skripto. Ĉi tiu sekcio klarigas kiel krei dosierojn `*.js` por etendi KatePart kun arbitraj helpaj skriptoj.

Komandliniaj skriptoj troviĝas en la sama dosierujo kiel deŝovilaj skriptoj. Do kiel unua paŝo, kreu novan dosieron `*.js` nomitan `myutils.js` en la loka hejma dosierujo `$`XDG_DATA_HOME`/katepart5 /script/commands`. En tio, la mediovariablo `XDG_DATA_HOME` kutime vastiĝas al aŭ `~/.local` aŭ `~/.local/share`.

Sur Windows® ĉi tiuj dosieroj troviĝas en `%USERPROFILE%\AppData\Local\katepart5\script\commands`. `%USERPROFILE%` kutime vastiĝas al `C:\\Users\\`uzanto``.

#### La Komandlinioskripta Kapo

La kaplinio de ĉiu komandlinia skripto estas enigita en JSON komence de la skripto jene:

    var katescript = {
        "author": "Ekzempla nomo <example.name@some.address.org>",
        "license" : "LGPLv2+",
        "revision": 1,
        "kate-version": "5.1",
        "functions": ["sort", " moveLinesDown"],
        "actions": [
           { "function": "sort",
             "name": "Ordigi Elektitan Tekston",
             "category ": "Redaktado",
             "interactive": "false"
           },
           { "function": "moveLinesDown",
             "name": \ "Movi Liniojn Malsupren",
             "category": "Redaktado",
             "shortcut": "Ctrl+Shift+Down",
             "interactive": "false"
           }
        ]
    }; // kate-script-header, devas esti ĉe la komenco de la dosiero sen komentoj

Ĉiu eniro estas klarigita detale nun:

- `aŭtoro` [laŭvola]: La nomo de la aŭtoro kaj kontaktinformoj.

- `licenco` [laŭvola]: Mallonga formo de la permesilo, kiel BSD License aŭ LGPLv2.

- `revizio` [bezonata]: La revizio de la skripto. Ĉi tiu nombro devus esti pliigita kiam ajn la skripto estas modifita.

- `kate-version` [bezonata]: Minimuma bezonata KatePart versio.

- `funkcioj` [bezonata]: JSON tabelo de komandoj en la skripto.

- `agoj` [laŭvola]: JSON Tabelo de JSON objektoj kiuj difinas la agojn kiuj aperas en la aplikaĵa menuo. Detalaj informoj estas provizitaj en la sekcio Ligaj Ŝparvojoj.

Ĉar la valoro de `funkcioj` estas JSON tabelo, ununura skripto kapablas enhavi arbitran nombron da komandliniaj komandoj. Ĉiu funkcio disponeblas per la enkonstruita komandlinio de KatePart.

#### La Skripta Fontkodo

Ĉiuj funkcioj specifitaj en la kaplinio devas esti efektivigitaj en la skripto. Ekzemple, la skriptodosiero de la supra ekzemplo bezonas efektivigi la du funkciojn sort kaj moveLinesDown. Ĉiuj funkcioj havas la sekvan sintakson:

    // postulis katepart js-bibliotekojn, ekz. range.js se vi uzas Range
    require ("range.js");

    function <nomo>(arg1, arg2, ...)
    {
     // ... efektivigo, vidu ankaŭ: Skripta API
    }

Argumentoj en la komandlinio estas transdonitaj al la funkcio kiel `arg1`, `arg2`, ktp. Por provizi dokumentadon por ĉiu komando, simple efektivigu la funkcion '`help`' jene:

    function help(cmd)
    {
        if (cmd == "sort" ) {
            return i18n("Ordigi la elektitan tekston.");
        } else if (cmd == "...") {
            // ...
        }
    }

Efektivigi help sort en la komandlinio tiam vokas ĉi tiun helpfunkcion kun la argumento `cmd` agordita al la donita komando, t.s. `cmd == "sort"`. KatePart tiam prezentas la liveritan tekston kiel dokumentadon al la uzanto. Nepre traduki la ĉenojn.

Disvolvi komandlinian skripton postulas reŝargi la skriptojn por vidi ĉu la ŝanĝoj kondutas taŭge. Anstataŭ rekomenci la aplikaĵon, simple ŝanĝu al la komandlinio kaj alvoku la komandon reload-scripts.

##### Ligantaj Ŝparvojoj

Por igi la skriptojn alireblaj en la aplikaĵa menuo kaj atribui ŝparvojojn, la skripto devas provizi taŭgan skripton. En la ĉi-supra ekzemplo, ambaŭ funkcioj `ordigi` kaj `moveLinesDown` aperas en la menuo pro la sekva parto en la skriptkapo:

    var katescript = {
        ...
        "actions": [
            {   "function": "sort",
                "name": "Ordigi Elektitan Tekston",
                "icon": "",
                "category": "Redaktado",
                "interactive": "false"
            },
            {   "function": "moveLinesDown",
                "name": "Movi Liniojn Malsupren",
                "icon": "",
                "category": "Redaktado",
                "shortcut": "Ctrl+Shift+Down",
                "interactive": "false"
            }
        ]
    };

La kampoj por unu ago estas jenaj:

- `funkcio` [bezonata]: La funkcio kiu devus aperi en la menuo Iloj → Skriptoj.

- `nomo` [bezonata]: La teksto aperas en la skriptmenuo.

- `pikono` [laŭvola]: La piktogramo aperas apud la teksto en la menuo. Ĉiuj KDE piktogramnomoj povas esti uzataj ĉi tie.

- `kategorio` [laŭvola]: Se kategorio estas specifita, la skripto aperas en submenuo.

- `mallongigo` [laŭvola]: La ŝparvojo donita ĉi tie estas la defaŭlta ŝparvojo. Ekzemplo: `Ktrl+Alt+t`. Vidu la Qt™ dokumentado por pliaj detaloj.

- `interaga` [laŭvola]: Se la skripto bezonas enigon de uzanto en la komandlinio, agordu ĉi tion al `true`.

Se vi evoluigas utilajn skriptojn bonvolu konsideri kontribui al la KatePart Projekto per kontaktante la dissendoliston.

### Skripta API

La scripting-API prezentita ĉi tie estas disponebla por ĉiuj skriptoj, t.s. deŝovskriptoj kaj komandliniaj komandoj. La klasoj `Cursor` kaj `Range` estas provizitaj de bibliotekaj dosieroj en `$`XDG_DATA_DIRS`/katepart5/libraries`. Se vi volas uzi ilin en via skripto, kiu bezonas uzi iujn el la funkcioj `Dokumento` aŭ `Vidi`, bonvolu inkluzivi la necesan bibliotekon uzante:

    // postulis katepart js-bibliotekojn, ekz. range.js se vi uzas Range
    require ("range.js");

Por etendi la norman scripting API kun viaj propraj funkcioj kaj prototipoj simple kreu novan dosieron en la loka agorda dosierujo de KDE `$`XDG_DATA_HOME`/katepart5/libraries` kaj enmetu ĝin en vian skripto uzante:

    require ("miaskriptnomoĉitie.js");

Sur Windows® ĉi tiuj dosieroj troviĝas en `%USERPROFILE%\AppData\Local\katepart5\libraries`. `%USERPROFILE%` kutime vastiĝas al `C:\\Users\\`uzanto``.

Por etendi ekzistantajn prototipojn kiel `Cursor` aŭ `Range`, la rekomendinda maniero estas ne modifi la ĉieajn `*.js` dosierojn. . Anstataŭe, ŝanĝu la prototipon `Cursor` en JavaScript post kiam la `cursor.js` estas inkluzivita en vian skripton per `require`.

#### Kursoroj kaj Intervaloj

Ĉar KatePart estas tekstredaktilo, la tuta scripting-API baziĝas sur kursoroj kaj intervaloj kiam ajn eblas. Kursoro estas simpla `(linio, kolumno)` opo reprezentanta tekstopozicion en la dokumento.Intervalo ampleksas tekston de komenca kursora pozicio ĝis fina kursora pozicio. La API estas klarigita detale en la sekvaj sekcioj.

##### La Profilo de Cursor

    Cursor();

  Konstruilo. Liveras Cursor ĉe pozicio `(0, 0)`.

  Ekzemplo: `var cursor = new Cursor();`

    Cursor(int linio, int kolumno);

  Konstruilo. Liveras Cursor ĉe pozicio (linio, kolumno).

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

    Cursor(Cursor alia);

  Kopi-konstruilo. Liveras kopion de la kursoro `alia`.

  Ekzemplo: `var kopio = new Cursor(alia);`

    Cursor Cursor.clone();

  Liveras klonon de la kursoro.

  Ekzemplo: `var clone = cursor.clone();`

    Cursor.setPosition(int linio, int kolumno);

  Agordas la pozicion de la kursoro al `linio` kaj `kolumno`.

  Ekde: KDE 4.11

    bool Cursor.isValid();

  Kontrolu ĉu la kursoro validas. La kursoro estas nevalida, se linio kaj/aŭ kolumno estas agordita al `-1`.

  Ekzemplo: `var valid = cursor.isValid();`

    Cursor Cursor.invalid();

  Liveras novan nevalidan kursoron situantan ĉe `(-1, -1)`.

  Ekzemplo: `var invalidCursor = cursor.invalid();`

    int Cursor.compareTo(Cursor alia);

  Komparas ĉi tiun kursoron kun la kursoro `alia`. Revenoj

  - `-1`, se ĉi tiu kursoro troviĝas antaŭ la kursoro `alia`,

  - `0`, se ambaŭ kursoroj egalas kaj

  - `+1`, se ĉi tiu kursoro troviĝas post la kursoro `alia`.

    bool Cursor.equals(Cursor alia);

  Donas `true`, se ĉi tiu kursoro kaj la kursoro `alia` estas egalaj, alie `false`.

    String Cursor.toString();

  Liveras la kursoron kiel ĉeno de la formo “`Cursor(linio, kolumno)`”.

##### La Range-Prototipo

    Range();

  Konstruilo. Voki `new Range()` liveras Range ĉe (0, 0) - (0, 0).

    Range (Cursor komenco, Cursor fino);

  Konstruilo. Voki `new Range(`komenco`, `fino`)` redonas la Gamon (`komenco`, `fino` ).

    Range(int komencLinio, int startColumn, int endLinio parametro
    >, int endColumn);

  Konstruilo. Voki `new Range(`startLine`, `startColumn`, `endLine`, `endColumn`)` redonas la Gamon de (`komencLinio`, `komencKolumno`) al (`finLinio`, `finKolumno`).

    Range(Range alia);

  Kopi-konstruilo. Resendas kopion de Range `alia`.

    Range Range.clone();

  Liveras klonon de la intervalo.

  Ekzemplo: `var clone = range.clone();`

    bool Range.isEmpty();

  Donas `true`, se la komencaj kaj finaj kursoroj estas egalaj.

  Ekzemplo: `var empty = range.isEmpty();`

  Ekde: KDE 4.11

    bool Range.isValid();

  Donas `true`, se kaj komenca kaj fina kursoro validas, alie `false`.

  Ekzemplo: `var valid = range.isValid();`

    Range Range.invalid();

  Liveras la Range de (-1, -1) al (-1, -1).

    bool Range.contains(Cursor kursoro);

  Donas `true`, se ĉi tiu intervalo enhavas la kursoran pozicion, alie `false`.

    bool Range.contains(Range alia);

  Donas `true`, se ĉi tiu gamo enhavas la Gamon `alia`, alie `false`.

    bool Range.containsColumn(int kolumno);

  Donas `true`, se `kolumno` estas en la duonmalferma intervalo `[komenco.kolumno, fino.kolumno)`, alie `false`.

    bool Range.containsLine(int linio);

  Donas `true`, se `linio` estas en la duonmalferma intervalo `[komenco.linio, fino.linio)`, alie `false`.

    bool Range.overlaps(Range alia);

  Donas `true`, se ĉi tiu intervalo kaj la intervalo `alia` dividas komunan regionon, alie `false`.

    bool Range.overlapsLine(int linio);

  Donas `true`, se `linio` estas en la intervalo `[start.line, end.line]`, alie `false`.

    bool Range.overlapsColumn(int kolumno);

  Donas `true`, se `kolumno` estas en la intervalo `[komenco.kolumno, fino.kolumno]`, alie `false`.

    bool Range.onSingleLine();

  Donas `true`, se la intervalo komenciĝas kaj finiĝas ĉe la sama linio, t.s. if `Range.start.line == Range.end.line`.

  Ekde: KDE 4.9

    bool Range.equals(Range alia);

  Donas `true`, se ĉi tiu gamo kaj la Range `alia` estas egalaj, alie `false`.

    String Range.toString();

  Liveras la intervalon kiel ĉeno de la formo “`Range(Cursor(linio, kolumno), Cursor(linio, kolumno))`”.

#### Ĉieaj Funkcioj

Ĉi tiu sekcio listigas ĉiujn ĉieajn funkciojn.

##### Legado & Inkluzivado de Dosieroj

    String read(String dosiero);

  Serĉos la donitan `dosieron` rilate al la dosierujo `katepart5/script/files` kaj liveros ĝian enhavon kiel ĉenon.

    void require(String dosiero);

  Serĉos la donitan `dosieron` rilate al la dosierujo `katepart5/script/libraries` kaj taksos ĝin. `require` estas interne protektita kontraŭ multoblaj inkludoj de la sama `dosiero`.

  Ekde: KDE 4.10

##### Sencimigado

    void debug(String teksto);

  Presas `tekston` al `stdout` en la konzolo lanĉanta la aplikaĵon.

##### Traduko

Por subteni plenan lokalizon, ekzistas pluraj funkcioj por traduki ĉenojn en skriptoj, nome `i18n`, `i18nc`, `i18np` kaj `i18ncp`. Ĉi tiuj funkcioj kondutas ekzakte kiel la tradukfunkcioj de KDE.

La tradukfunkcioj tradukas la envolvitajn ĉenojn per la traduksistemo de KDE al la lingvo uzata en la aplikaĵo. Ĉenoj en skriptoj evoluantaj en la oficiala KatePart fontoj estas aŭtomate ĉerpitaj kaj tradukeblaj. Alivorte, kiel KatePart programisto vi ne devas ĝeni per eltiro kaj tradukado de mesaĝoj. Notu tamen, ke la traduko funkcias nur ene de la KDE infrastrukturo, t.s., novaj ĉenoj en triaj skriptoj disvolvitaj ekster KDE ne estas tradukitaj. Tial bonvolu konsideri kontribui viajn skriptojn al Kate tia ke taŭga tradukado estas ebla.

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

  Tradukas `tekston` al la lingvo uzata de la aplikaĵo. La argumentoj `arg1`, ..., estas nedevigaj kaj uzataj por anstataŭigi la anstataŭaĵojn `%1`, `%2`, ktp.

    void i18nc(String kunteksto, String teksto, arg1, ...) ;

  Tradukas `tekston` al la lingvo uzata de la aplikaĵo. Aldone, la ĉeno `kunteksto` estas videbla por tradukistoj por ke ili povu provizi pli bonan tradukon. La argumentoj `arg1`, ..., estas nedevigaj kaj uzataj por anstataŭigi la anstataŭaĵojn `%1`, `%2`, ktp.

    void i18np(String unuopa, String pluralo, int nombro, arg1, ...);

  Tradukas aŭ `singularo` aŭ `pluralo` en la lingvon uzatan de la aplikaĵo, depende de la donita `nombro`. La argumentoj `arg1`, ..., estas nedevigaj kaj uzataj por anstataŭigi la anstataŭaĵojn `%1`, `%2`, ktp.

    void i18ncp(String kunteksto , String unuopa, String pluralo, int nombro, arg1, ...);

  Tradukas aŭ `singularo` aŭ `pluralo` en la lingvon uzatan de la aplikaĵo, depende de la donita `nombro`. Aldone, la ĉeno `kunteksto` estas videbla por tradukistoj por ke ili povu provizi pli bonan tradukon. La argumentoj `arg1`, ..., estas nedevigaj kaj uzataj por anstataŭigi la anstataŭaĵojn `%1`, `%2`, ktp.

#### La View API

Kiam ajn skripto estas rulita, ekzistas ĉiea variablo “`vido`” reprezentanta la nunan aktivan redaktan vidon. La sekvanta estas listo de ĉiuj disponeblaj Vidaj funkcioj.

    void view.copy()

  Kopiu la elekton se ekzistas unu, alie la nunan linion se la opcio `[ ] Kopiu/Tranĉi la nunan linion se neniu elekto` estas agordita.

  Ekde: KDE Frameworks 5.79

    void view.cut()

  Tranĉi la elekton se ekzistas unu, alie la aktuala linio se la opcio `[ ] Kopiu/Tranĉi la nunan linion se neniu elekto` estas agordita.

  Ekde: KDE Frameworks 5.79

    void view.paste()

  Algluu la enhavon de la tondujo.

  Ekde: KDE Frameworks 5.79

    Cursor view.cursorPosition()

  Liveras la aktualan kursoran pozicion en la vido.

    void view.setCursorPosition(int linio, int kolumno);
    void view.setCursorPosition(Cursor kursoro);

  Agordu la aktualan kursoron al aŭ (linio, kolumno) aŭ al la donita kursoro.

    Cursor vido.virtualCursorPosition ();

  Resendas la virtualan kursoran pozicion kun ĉiu tabo kalkulanta la respondan kvanton da spacoj depende de la nuna tab-larĝeco.

    void view.setVirtualCursorPosition(int linio, int kolumno);
    void view.setVirtualCursorPosition(Cursor kursoro);

  Agordu la nunan virtualan kursoran pozicion al (linio, kolumno) aŭ al la donita kursoro.

    String view.selectedText();

  Resendas la elektitan tekston. Se neniu teksto estas elektita, la liverita ĉeno estas malplena.

    bool view.hasSelection();

  Redonas `true`, se la vido elektis tekston, alie `false`.

    Range view.selection();

  Redonas la elektitan tekstan gamon. La redonita intervalo estas nevalida se ne estas elektita teksto.

    void view.setSelection(Range gamo);

  Agordu la elektitan tekston al la donita gamo.

    void view.removeSelectedText();

  Forigu la elektitan tekston. Se la vido ne havas ajnan elektitan tekston, tio faras nenion.

    void view.selectAll ();

  Elektas la tutan tekston en la dokumento.

    void vido.clearSelection();

  Purigas la teksto-elekton sen forigi la tekston.

    void view.setBlockSelection(bool on);

  Ŝalti aŭ malŝalti blokan elektoreĝimon.

    bool view.blockSelection();

  Redonas `true`, se blokelekta reĝimo estas ŝaltita, alie `false`.

    void view.align(Range gamo);

  Ĝuste reindentigas liniojn ene de `intervalo` laŭ aktualaj indentagordoj.

    void view.alignOn(Range gamo, String ŝablono = "");

  Vicigas liniojn en `gamo` sur la kolumno donita de la regula esprimo `ŝablono`. Kun malplena `ŝablono` ĝi viciĝos al la unua nemalplena signo defaŭlte. Se la ŝablono havas kapton, ĝi deŝovos sur la kaptita kongruo.

  Ekzemploj:

  `view.alignOn(document.documentRange(), '-');` enmetos spacojn antaŭ la unua `-` de ĉiu linioj por vicigi ilin ĉiujn sur la sama kolumno.

  `view.alignOn(document.documentRange(), ':\\s+(.)');` enmetos spacojn antaŭ la unua nemalplena signo kiu okazas post dupunkto por vicigi ilin ĉiujn. la sama kolumno.

    objekto view.executeCommand(String komando,
     String argoj,
     Range  intervalo);

  Efektigas la komandlinian komandon `komandon` kun la nedevigaj argumentoj `args` kaj la nedeviga `gamo`. La redonita `objekto` havas bulean econ `object.ok` kiu indikas ĉu plenumo de la `komando` sukcesis. En kazo de eraro, la ĉeno `object.status` enhavas erarmesaĝon.

  Ekde: KDE Frameworks 5.50

    Range view.searchText(Range gamo,
                          String ŝablono,
                          bool malantaŭen = false);

  Serĉu la unuan aperon de `ŝablono` en `gamo` kaj liveras la kongruan intervalon. Serĉo estas farita malantaŭen se la laŭvola bulea parametro `malantaŭen` estas agordita al `true`.

  La redonita intervalo estas nevalida (vidu Range.isValid()) se `ŝablono` ne troviĝas en `intervalo`.

  Ekde: KDE Frameworks 5.97

#### La Dokumenta API

Kiam ajn skripto estas rulita, estas ĉiea variablo “`dokumento`” reprezentanta la aktuale aktivan dokumenton. La sekvanta estas listo de ĉiuj disponeblaj Dokumentaj funkcioj.

    String document.fileName();

  Liveras la dosiernomon de la dokumento aŭ malplenan ĉenon por nekonservitaj tekstaj bufroj.

    String document.url();

  Liveras la plenan URL de la dokumento; aŭ malplena ĉeno por nekonservitaj tekstaj bufroj.

    String document.mimeType();

  Liveras la dokumentan MIME-tipon aŭ la MIME-tipon `application/octet-stream` se neniu taŭga MIME-tipo povus esti trovita.

    String document.encoding();

  Redonas la nuntempe uzatan kodigon por konservi la dosieron.

    String document.highlightingMode ();

  Liveras la ĉiean reliefigreĝimon uzatan por la tuta dokumento.

    String document.highlightingModeAt(Cursor pos);

  Redonas la emfazan reĝimon uzatan ĉe la donita pozicio en la dokumento.

    Array document.embeddedHighlightingModes ();

  Liveras tabelon de reliefaj modoj enigitaj en ĉi tiu dokumento.

    bool document.isModified();

  Redonas `true`, se la dokumento havas nekonservitajn ŝanĝojn (modifitajn), alie `false`.

    String document.text();

  Resendas la tutan enhavon de la dokumento en ununura tekstoĉeno. Novlinioj estas markitaj per la novlinia signo “`\n`”.

    String document.text(int deLinio, int deKolumno, int alLinio, int alKolumno);
    String document.text(Cursor de, Cursor al);
    String document.text(Range intervalo);

  Liveras la tekston en la donita gamo. Oni rekomendas uzi la kursoron kaj gamon bazitan version por pli bona legebleco de la fontkodo.

    String document.line(int linio);

  Liveras la donitan tekstlinion kiel ĉenon. La ĉeno estas malplena se la petita linio estas ekster intervalo.

    String document.wordAt(int linio, int kolumno);
    String document.wordAt(Cursor kursoro);

  Liveras la vorton ĉe la donita kursora pozicio.

    Range document.wordRangeAt(int linio, int kolumno);
    Range document.wordRangeAt(Cursor kursoro);

  Redonu la gamon de la vorto ĉe la donita kursora pozicio. La redonita intervalo estas nevalida (vidu Range.isValid()), se la tekstopozicio estas post la fino de linio. Se ne estas vorto ĉe la donita kursoro, malplena gamo estas liverita.

  Ekde: KDE 4.9

    String document.charAt(int linio, int kolumno);
    String document.charAt(Cursor kursoro);

  Liveras la signon ĉe la donita kursora pozicio.

    String document.firstChar(int linio);

  Liveras la unuan signon en la donita `linio` kiu ne estas blankspaco. La unua signo estas ĉe kolumno 0. Se la linio estas malplena aŭ enhavas nur blankspacsignojn, la liverita ĉeno estas malplena.

    String document.lastChar(int linio);

  Liveras la lastan signon en la donita `linio` kiu ne estas blankspaco. Se la linio estas malplena aŭ enhavas nur blankspacsignojn, la liverita ĉeno estas malplena.

    bool document.isSpace(int linio, int kolumno);
    bool document.isSpace(Cursor kursoro);

  Donas `true`, se la signo ĉe la donita kursora pozicio estas blankspaco, alie `false`.

    bool document.matchesAt(int linio, int kolumno, String teksto);
    bool document.matchesAt(Cursor kursoro, String teksto );

  Donas `true`, se la donita `teksto` kongruas ĉe la responda kursora pozicio, alie `false`.

    bool document.startsWith(int linio, String teksto, bool skipWhiteSpaces);

  Donas `true`, se la linio komenciĝas per `teksto`, alie `false`. La argumento `skipWhiteSpaces` kontrolas ĉu gvidaj blankspacoj estas ignoritaj.

    bool document.endsWith(int linio, String teksto, bool skipWhiteSpaces);

  Redonas `true`, se la linio finiĝas per `teksto`, alie `false`. La argumento `skipWhiteSpaces` kontrolas ĉu postaj blankspacoj estas ignoritaj.

    bool document.setText(String teksto);

  Agordas la tutan dokumentan tekston.

    bool document.clear();

  Forigas la tutan tekston en la dokumento.

    bool document.truncate(int linio, int kolumno);
    bool document.truncate(Cursor kursoro);

  Detranĉu la donitan linion ĉe la donita kolumno aŭ kursora pozicio. Redonas `true` je sukceso, aŭ `false` se la donita linio ne estas parto de la dokumento-intervalo.

    bool document.insertText(int linio, int kolumno, String teksto);
    bool document.insertText(Cursor kursoro, String teksto);

  Enmetas la `tekston` ĉe la donita kursora pozicio. Redonas `true` je sukceso, aŭ `false`, se la dokumento estas en nurlegebla reĝimo.

    bool document.removeText(int deLinio, int deKolumno, int alLinio, int alKolumno);
    bool document.removeText(Cursor de, Cursor al);
    bool document.removeText(Range intervalo);

  Forigas la tekston en la donita gamo. Redonas `true` je sukceso, aŭ `false`, se la dokumento estas en nurlegebla reĝimo.

    bool document.insertLine(int linio, String teksto);

  Enmetas tekston en la donita linio. Redonas `true` je sukceso, aŭ `false`, se la dokumento estas en nurlegebla reĝimo aŭ la linio ne estas en la dokumento-intervalo.

    bool document.removeLine(int linio);

  Forigas la donitan tekstan linion. Redonas `true` je sukceso, aŭ `false`, se la dokumento estas en nurlegebla reĝimo aŭ la linio ne estas en la dokumento-intervalo.

    bool document.wrapLine(int linio, int kolumno);
    bool document.wrapLine(Cursor kursoro);

  Envolvas la linion ĉe la donita kursora pozicio. Redonas `true` je sukceso, alie `false`, ekz. if linio < 0.

  Ekde: KDE 4.9

    void document.joinLines(int startLine, int endLine);

  Kunigas la liniojn de `startLine` al `endLine`. Du sekvaj tekstlinioj ĉiam estas apartigitaj per ununura spaco.

    int dokumento.lines();

  Liveras la nombron da linioj en la dokumento.

    bool document.isLineModified(int linio);

  Donas `true`, se `linio` nuntempe enhavas nekonservitajn datumojn.

  Ekde: KDE 5.0

    bool document.isLineSaved(int linio);

  Donas `true`, se `linio` estis ŝanĝita, sed la dokumento estis konservita. Tial, la linio nuntempe ne enhavas iujn ajn nekonservitajn datumojn.

  Ekde: KDE 5.0

    bool document.isLineTouched(int linio);

  Donas `true`, se `linio` nuntempe enhavas nekonservitajn datumojn aŭ estis ŝanĝita antaŭe.

  Ekde: KDE 5.0

    bool document.findTouchedLine(int startLinio, bool malsupren);

  Serĉu la sekvan tuŝitan linion komencante ĉe `linio`. La serĉo estas farita aŭ supren aŭ malsupren laŭ la serĉdirekto specifita en `malsupren`.

  Ekde: KDE 5.0

    int dokumento.length();

  Liveras la nombron da signoj en la dokumento.

    int dokumento.lineLength(int linio);

  Liveras la longon de la `linio`.

    void dokumento.editBegin();

  Lanĉas redaktan grupon por malfari/refari grupigon. Certiĝu ĉiam voki `editEnd()` tiom ofte kiom vi vokas `editBegin()`. Voki `editBegin()` interne uzas referencan nombrilon, t.s., ĉi tiu voko povas esti nestita.

    void dokumento.editEnd();

  Finas redaktan grupon. La lasta alvoko de `editEnd()` (t.s. tiu por la unua voko de `editBegin()`) finas la redaktan paŝon.

    int dokumento.unuaKolumno(int linio);

  Liveras la unuan ne-blankspackolumnon en la donita `linio`. Se estas nur blankspacoj en la linio, la liveraĵo estas `-1`.

    int dokumento.lastKolumno(int linio);

  Liveras la lastan ne-blankspackolumnon en la donita `linio`. Se estas nur blankspacoj en la linio, la liveraĵo estas `-1`.

    int document.prevNonSpaceColumn(int linio, int kolumno);
    int document.prevNonSpaceColumn(Cursor kursoro);

  Redonas la kolumnon kun ne-blankspaca signo komencanta ĉe la donita kursora pozicio kaj serĉanta malantaŭen.

    int document.nextNonSpaceColumn(int linio, int kolumno);
    int document.nextNonSpaceColumn(Cursor kursoro);

  Redonas la kolumnon kun ne-blankspaca signo komencanta ĉe la donita kursora pozicio kaj serĉante antaŭen.

    int document.prevNonEmptyLine(int linio);

  Liveras la sekvan nemalplenan linion enhavantan ne-blankspacsignojn serĉantajn malantaŭen.

    int dokumento.nextNonEmptyLine(int linio);

  Liveras la sekvan nemalplenan linion enhavantan ne-blankspacsignojn serĉantajn antaŭen.

    bool document.isInWord(String signo, int atributo);

  Donas `true`, se la donita `signo` kun la donita `atributo` povas esti parto de vorto, alie `false`.

    bool document.canBreakAt(String signo, int atributo);

  Donas `true`, se la donita `signo` kun la donita `atributo` taŭgas por envolvi linion, alie `false`.

    bool document.canComment(int startAtribute, int endAttribute);

  Donas `true`, se intervalo komencanta kaj finiĝanta per la donitaj atributoj taŭgas por esti komentita, alie `false`.

    String document.commentMarker(int atributo);

  Liveras la komentmarkilon por unuliniaj komentoj por donita `atributo`.

    String document.commentStart(int atributo);

  Liveras la komentmarkilon por la komenco de plurliniaj komentoj por donita `atributo`.

    String document.commentEnd(int atributo);

  Redonas la komentan markilon por la fino de plurliniaj komentoj por donita `atributo`.

    Range document.documentRange();

  Liveras gamon, kiu ampleksas la tutan dokumenton.

    Cursor documentEnd();

  Liveras kursoron poziciigitan ĉe la lasta kolumno de la lasta linio en la dokumento.

    bool isValidTextPosition(int linio, int kolumno);
    bool isValidTextPosition(Cursor kursoro );

  Donas `true`, se la donita kursora pozicio estas poziciigita ĉe valida tekstopozicio. Teksta pozicio validas nur se ĝi situas ĉe la komenco, en la mezo aŭ la fino de valida linio. Plue, tekstpozicio estas malvalida se ĝi troviĝas en Unikoda anstataŭaĵo.

  Ekde: KDE 5.0

    int document.attribute(int linio, int kolumno);
    int document.attribute(Cursor kursoro);

  Liveras la atributon ĉe la donita kursora pozicio.

    bool document.isAttribute(int linio, int kolumno, int atributo);
    bool document.isAttribute(Cursor kursoro, int atributo);

  Donas `true`, se la atributo ĉe la donita kursora pozicio egalas `atributo`, alie `false`.

    String document.attributeName(int linio, int kolumno);
    String document.attributeName(Cursor kursoro);

  Donas la atributan nomon kiel homlegebla teksto. Ĉi tio estas egala al la nomo `itemData` en la sintaksa reliefaj dosieroj.

    bool document.isAttributeName(int linio, int kolumno, String nomo);
    bool document.isAttributeName(Cursor kursoro, String nomo);

  Redonas `true`, se la atributnomo ĉe certa kursorpozicio kongruas kun la donita `nomo`, alie `false`.

    String document.variable(String klavo);

  Liveras la valoron de la petita dokumentvariablo `ŝlosilo`. Se la dokumentvariablo ne ekzistas, la liveraĵo estas malplena ĉeno.

    void document.setVariable(String ŝlosilo, String valoro);

  Agordu la valoron de la petita dokumentvariablo `ŝlosilo`.

  Vidu ankaŭ: Kate-dokumentvariabloj

  Ekde: KDE 4.8

    int dokumento.unuaVirtualaKolumno(int linio);

  Liveras la virtualan kolumnon de la unua ne-spaco en la donita linio aŭ `-1`, se la linio estas malplena aŭ enhavas nur blankspacsignojn.

    int dokumento.lastVirtualColumn(int linio);

  Liveras la virtualan kolumnon de la lasta ne-spaco en la donita linio aŭ `-1`, se la linio estas malplena aŭ enhavas nur blankspacsignojn.

    int document.toVirtualColumn(int linio, int kolumno);
    int document.toVirtualColumn(Cursor kursoro);
    Cursor document.toVirtualCursor(Cursor kursoro);

  Konvertas la donitan “realan” kursoran pozicion al virtuala kursora pozicio, ĉu liverante int aŭ Cursor-objekton.

    int document.fromVirtualColumn(int linio, int virtualaKolumno);
    int document.fromVirtualColumn(Cursor virtualaKursoro);
    Cursor document.fromVirtualCursor(Cursor virtualaKursoro);

  Konvertas la donitan virtualan kursoran pozicion al “reala” kursora pozicio, ĉu liverante int aŭ Cursor-objekton.

    Cursor document.anchor(int linio, int kolumno, Char signo);
    Cursor document.anchor(Cursor kursoro, Signo signo);

  Serĉas malantaŭen la donitan signon komencante de la donita kursoro. Ekzemple, se '(' estas pasigita kiel signo, ĉi tiu funkcio redonos la pozicion de la malfermaĵo '('. Ĉi tiu referenca nombrado, t.s. aliaj '(...)' estas ignoritaj.

    Cursor document.rfind(int linio, int kolumno, String teksto, int atributo = -1);
    Cursor document.rfind(Cursor kursoro, String teksto, int atributo = -1);

  Trovu serĉante malantaŭen la donitan tekston kun la taŭga `atributo`. La argumento `atributo` estas ignorata se ĝi estas agordita al `-1`. La redonita kursoro estas nevalida, se la teksto ne troviĝis.

    int document.defStyleNum(int linio, int kolumno);
    int document.defStyleNum(Cursor kursoro);

  Liveras la defaŭltan stilon uzatan ĉe la donita kursora pozicio.

    bool document.isCode(int linio, int kolumno);
    bool document.isCode(Cursor kursoro);

  Redonas `true`, se la atributo ĉe la donita kursora pozicio ne egalas al ĉiuj jenaj stiloj: `dsComment`, `dsString`, `dsRegionMarker` , `dsChar`, `dsOthers`.

    bool document.isComment(int linio, int kolumno);
    bool document.isComment(Cursor kursoro);

  Redonas `true`, se la eco de la signo ĉe la kursora pozicio estas `dsComment`, alie `false`.

    bool document.isString(int linio, int kolumno);
    bool document.isString(Cursor kursoro);

  Redonas `true`, se la atributo de la signo ĉe la kursora pozicio estas `dsString`, alie `false`.

    bool document.isRegionMarker(int linio, int kolumno);
    bool document.isRegionMarker(Cursor kursoro);

  Redonas `true`, se la eco de la signo ĉe la kursora pozicio estas `dsRegionMarker`, alie `false`.

    bool document.isChar(int linio, int kolumno);
    bool document.isChar(Cursor kursoro);

  Redonas `true`, se la eco de la signo ĉe la kursora pozicio estas `dsChar`, alie `false`.

    bool document.isOthers(int linio, int kolumno);
    bool document.isOthers(Cursor kursoro);

  Donas `true`, se la eco de la signo ĉe la kursora pozicio estas `dsOthers`, alie `false`.

    void document.indent(Range intervalo, int ŝanĝo);

  Indentigas ĉiujn liniojn en `intervalo` per `ŝanĝo` taboj aŭ `ŝanĝo` oble `tabSize` spacoj depende de la preferoj de la uzantoj. La parametro `ŝanĝo` povas esti negativa.

#### La Redaktilo API

Krom la dokumento kaj vido API, ekzistas ĝenerala redaktilo API kiu disponigas funkciojn por ĝenerala redaktilo skriptfunkcio.

    String editor.clipboardText();

  Liveras la tekston kiu nuntempe estas en la ĉiea tondujo.

  Ekde: KDE Frameworks 5.50

    String editor.clipboardHistory();

  La redaktilo tenas historion de tondujo kiu enhavas ĝis 10 enskribojn de tondujo. Ĉi tiu funkcio liveras ĉiujn enskribojn kiuj nuntempe estas en la tondujohistorio.

  Ekde: KDE Frameworks 5.50

    void editor.setClipboardText(String teksto);

  Agordu la enhavon de la tondujo al `teksto`. La `teksto` estos aldonita al la historio de la tondujo.

  Ekde: KDE Frameworks 5.50

Ĉapitro 7. Agordi KatePart
Agordi KatePart

# Ĉapitro 7. Agordi KatePart

Elektante Agordojn → Agordi `Aplikon`... el la menuo aperas la dialogokeston Agordi. Ĉi tiu dialogo povas esti uzata por ŝanĝi kelkajn malsamajn agordojn. La agordoj disponeblaj por ŝanĝo varias laŭ kia kategorio la uzanto elektas el vertikala listo ĉe la maldekstra flanko de la dialogo. Per tri butonoj laŭ la fundo de la skatolo la uzanto povas kontroli la procezon.

Vi povas alvoki la sistemon Helpo, akcepti la aktualajn agordojn kaj fermi la dialogon per la butono OK aŭ Nuligi la procezon. La kategorioj Aspekto, Tiparoj & Koloroj, Redaktado, Malfermi/Konservi kaj Etendoj estas detalaj sube.

## La Redaktora Komponenta Agordo

Ĉi tiu grupo enhavas ĉiujn paĝojn rilatajn al la redaktilo de KatePart. La plej multaj el la agordoj ĉi tie estas defaŭltaj, ili povas esti anstataŭitaj per difinado de dosiertipo, per Dokumentaj Variabloj aŭ ŝanĝante ilin per dokumento dum redakta seanco.

### Aspekto

#### Ĝenerala

Tiparo de la redaktilo

  Ĉi tie vi povas elekti la tiparon de la redaktila teksto. Vi povas elekti el iu ajn tiparo disponebla en via sistemo, kaj agordi defaŭltan grandecon. Ekzempla teksto estas montrata malsupre de la dialogo, do vi povas vidi la efikon de viaj elektoj.

  Por pliaj informoj pri elektado de tiparo, vidu la sekcion Elekti tiparojn de la KDE Fundamentaj dokumentado.

Montri blankspacajn indikilojn
  Neniam

    La redaktilo neniam montros punktojn por indiki la ĉeeston de blankspaco.

  Ĉe la fino de linio

    La redaktilo montros punktojn por indiki la ĉeeston de kroma blankspaco ĉe la fino de linioj.

  Ĉiam

    La redaktilo ĉiam montros punktojn por indiki la ĉeeston de blankspaco.

Blankspaca indikilo grandeco

  Uzu la glitilon por ŝanĝi la grandecon de la videbla indikilo.

Montri tabajn indikilojn

  Kiam ĝi estas kontrolita, la redaktilo montros » simbolon por indiki la ĉeeston de tabo en la teksto.

Montri fokusan kadron ĉirkaŭ redaktilo

  Se kontrolite, la redaktilo montras fokusan kadron ĉirkaŭ la ĉeffontoteksta kontrolo.

Kongruo de krampo

  Emfazi gamon inter elektitaj krampoj

    Se ĉi tio estas ebligita, la intervalo inter la elektitaj kongruaj krampoj estos reliefigita.

  Montri antaŭrigardon de kongrua malferma krampo

    Kiam ĝi estas ebligita, la redaktilo montros konsileton de la kongrua malferma krampo.

  Ekbrili kongruan krampon kiam kursoro moviĝas al alia krampo duope

    Se enŝaltite, moviĝo sur la krampoj ({, [, ], }, ( aŭ )) rapide ekbrilos la kongruan krampon.

Montri deŝovliniojn

  Se ĉi tio estas markita, la redaktilo montros vertikalajn liniojn por helpi identigi deŝovliniojn.

Kalkuloj

  Montri vortkalkulon

    Montras la nombron da vortoj kaj signoj en la dokumento kaj en la nuna elekto en la statusbreto. Ĉi tiu opcio ankaŭ haveblas en la kunteksta menuo de statusbreto.

  Montri liniokalkulon

    Montras la nombron da tutaj linioj en la dokumento en la statusbreto. Ĉi tiu opcio ankaŭ haveblas en la kunteksta menuo de statusbreto.

Faldi la unuan linion

  Se ebligita, la unua linio estas faldita, se eble. Ĉi tio estas utila, se la dosiero komenciĝas per komento, kiel kopirajto

Dinamika Vortvolvaĵo

  Se ĉi tiu opcio estas markita, la tekstaj linioj estos envolvitaj ĉe la vidobordo sur la ekrano.

  Envolvu dinamike ĉe senmova vortvolva markilo

    Kiam ĝi estas kontrolita, redaktilo envolvas liniojn dinamike ĉe la senmova vortvolva pozicio.

  Nekonsideri vortlimojn por dinamika envolvado

    Kiam ĝi estas kontrolita, la redaktilo ne konsideras vortlimojn kiam envolvas tekstliniojn.

Dinamikaj vortvolvaj indikiloj

  Elektu kiam la Dinamikaj vortvolvaj indikiloj estu montrataj, ĉu Malŝaltita, Sekvi Linionombrojn aŭ Ĉiam ŝaltita.

Indentvolvitaj linioj

  Aldone, ĉi tio ebligas al vi agordi maksimuman larĝon de la ekrano, kiel procento, post kiu dinamike envolvitaj linioj ne plu estos vertikale vicigitaj. Ekzemple, ĉe 50%, linioj kies indentniveloj estas pli profundaj ol 50% de la larĝo de la ekrano ne havos vertikalan vicigon aplikita al postaj envolvitaj linioj.

Linia Alteco Multiplikisto

  Ĉi tiu valoro estos multobligita per la defaŭlta linio alteco de la tiparo. Valoro de 1.0 signifas, ke la defaŭlta alteco estos uzata.

#### Limoj

Kodbloko faldebla
  Montri sagojn por kolapsigi kodblokojn

    Se ĉi tiu opcio estas markita, la nuna vido montros markojn por kodfaldado, se kodfaldado estas disponebla.

  Montri antaŭrigardon de falditaj blokoj dum ŝvebado

    Se markite, ŝvebi super faldita regiono montras antaŭrigardon de la faldita teksto en ŝprucfenestro.

Faldeblaj sagoj videbleco

  Ŝanĝi la faldeblajn sagojn inter Montri sur Ŝvebi kaj Montri Ĉiam.

Maldekstra flanko
  Montri markojn

    Se ĉi tio estas markita, vi vidos piktograman randon maldekstre. La piktograma rando montras legosignsignojn ekzemple.

  Montri linionombrojn

    Se ĉi tio estas markita, vi vidos linionumeroj maldekstre.

  Emfazi ŝanĝitajn kaj nekonservitajn liniojn

    Se ĉi tio estas markita, liniaj modifmarkoj estos videblaj. Por pliaj informoj, vidu la sekcio nomata “Linia Modifa Indikiloj”.

Rulumbaroj
  Montri markojn

    Se ĉi tiu opcio estas markita, la nuna vido montros markojn sur la vertikala rulumbreto. Ĉi tiuj markoj ekzemple montros legosignojn.

  Montri antaŭrigardon dum ŝvebo super rulumbreto

    Se ĉi tiu opcio estas markita, kaj vi ŝvebas la rulumbreton per la muskursoro, malgranda teksta antaŭrigardo kun pluraj linioj de la nuna dokumento ĉirkaŭ la kursora pozicio estos montrata. Ĉi tio permesas vin rapide ŝanĝi al alia parto de la dokumento.

Minimapo
  Montri minimapon

    Se ĉi tiu opcio estas markita, ĉiu nova vido montros minimapon de la dokumento sur la vertikala rulumbreto.

    Por pliaj informoj pri la rulumbreto-minimapo, vidu la sekcio nomata “La Rulumbreta Minimapo”.

  Minimapo Larĝo

    Alĝustigas la larĝon de la rulbreto mini-mapo, difinita en pikseloj.

  Scrollbars videbleco

    Ŝalti, malŝalti la rulumbreton aŭ montri la rulumbreton nur kiam necesas. Klaku per la musbutono maldekstra sur la blua rektangulo por montri la linionumeran gamon de la dokumento montrita sur la ekrano. Konservu la musbutono maldekstra premita ekster la blua rektangulo por aŭtomate rulumi tra la dokumento.

Menuo por ordigi legosignojn
  Laŭ dato kreita

    Ĉiu nova legosigno estos aldonita al la fundo, sendepende de kie ĝi estas metita en la dokumenton.

  Per linionumero

    La legosignoj estos ordigitaj laŭ la linionumeroj ĉe kiuj ili estas metitaj.

### Koloraj Etosoj

Ĉi tiu sekcio de la dialogo ebligas al vi agordi ĉiujn kolorojn en iu ajn koloretoso, kiun vi havas, kaj krei novajn etosojn, forigi ekzistantajn aŭ simple Sekvi Sisteman Kolorskemon. Ĉiu skemo havas agordojn por koloroj kaj normalaj kaj emfazitaj tekstostiloj.

KatePart antaŭelektos la nuntempe aktivan etoson por vi, se vi volas labori pri malsama etoso komencu elektante tion el la kombinujo Elektu etoson. Per la butonoj Kopii kaj Forigi vi povas krei novan etoson (kopiante ekzistantan) aŭ forigi ekzistantajn.

Ĉi tio estas detale priskribita en la sekcio nomata “La Koloraj Etosoj GUI”.

### Redaktado

#### Ĝenerala

Vortvolvaĵo

  Vortvolvado estas funkcio, kiu igas la redaktilon aŭtomate komenci novan linion de teksto kaj movi (envolvi) la kursoron al la komenco de tiu nova linio. KatePart aŭtomate komencos novan linion de teksto kiam la nuna linio atingos la longon specifitan per la opcio Envolvi vortojn ĉe:.

  Volvi vortojn ĉe fiksa kolumno

    Enŝaltas aŭ malŝaltas senmovan vorton.

  Desegni vertikalan linion ĉe la vortvolva kolumno

    Se ĉi tiu opcio estas markita, vertikala linio estos desegnita ĉe la vortvolva kolumno kiel difinita en la Agordoj → Agordi Redaktilon... en la Redakta langeto. Bonvolu noti, ke la vortvolva markilo estas desegnita nur se vi uzas fiksan tonaltiparo.

  Envolvi vortojn ĉe:

    Se la opcio Envolvi vortojn ĉe fiksa kolumno estas elektita ĉi tiu eniro determinas la longon (en signoj) je kiu la redaktilo aŭtomate komencos novan linion.

Defaŭlta eniga reĝimo

  La elektita eniga reĝimo estos ebligita dum malfermo de nova vido. Vi ankoraŭ povas ŝalti/malŝalti la vi-enigreĝimon por aparta vido en la menuo Redakti.

Krampoj

  Se la opcio Aŭtomate fermi krampojn dum malfermado de krampo estas tajpita estas elektita kiam la uzanto tajpas maldekstran krampon ([, (, aŭ {) KatePart aŭtomate enigas la dekstran krampon (}, ), aŭ ]) dekstre de la kursoro.

Enfermante signojn

  Eblas elekti la enmetitajn signojn uzante la respondan falliston.

  Kiam teksto estas elektita, tajpi unu el ĉi tiuj signoj envolvas la elektitan tekston.

Kopii kaj alglui
  Movi elektitan tekston kiam trenite

    Ĉi tiu opcio ebligas trenadon kaj faligon de la elektita teksto en la fenestro de la redaktilo.

  Kopii/tondi la nunan linion se alvokite sen ia teksto elektita

    Se ĉi tiu opcio estas ebligita kaj la tekstoelekto estas malplena, kopio kaj tranĉo ago estas farita por la linio de teksto ĉe la efektiva kursoro pozicio.

  Ne movi la tekstan kursoron dum algluado per muso

    Se ĉi tiu opcio estas ebligita kaj vi algluas iun tekston en la redaktilo fenestro kun la musbutono meza klakante, KatePart ne movos la tekstan kursoron al la klakita pozicio.

#### Teksta Navigado

Teksta Kursora Movado
  Saĝa hejmo kaj inteligenta fino

    Kiam oni elektas, premante la hejman klavon igos la kursoron preterpasi blankan spacon kaj iros al la komenco de la teksto de linio.

  PageSup/PageDown movas kursoron

    Ĉi tiu opcio ŝanĝas la konduton de la kursoro kiam la uzanto premas la PgUp aŭ PgDn ŝlosilo. Se neelektita la tekstkursoro konservos sian relativan pozicion ene de la videbla teksto en KatePart ĉar nova teksto iĝas videbla kiel rezulto de la operacio. Do se la kursoro estas en la mezo de la videbla teksto kiam la operacio okazas, ĝi restos tie (krom kiam oni atingas la komencon aŭ finon.) Kun ĉi tiu opcio elektita, la unua klavo premo igos la kursoron moviĝi al la supro. aŭ malsupro de la videbla teksto kiam nova paĝo de teksto montriĝas.

  Ebligi movon de la kursoro de kamelo-kamelo

    Ĉi tiu opcio ŝanĝas la konduton de la kursoro kiam la uzanto premas la Ctrl+Maldekstra sago aŭ Ctrl+Dekstra sago ŝparvojo. Se neelektita, la tekstokurso transsaltas la plenajn vortojn. Kun ĉi tiu opcio elektita, la kursoraj saltoj rompas ĉe kamelkazaj ĝiboj.

  Aŭtocentra kursoro:

    Agordas la nombron da linioj por konservi videbla super kaj sub la kursoro kiam eblas.

Teksta Elekta Reĝimo
  Normala

    Elektoj estos anstataŭitaj de tajpita teksto kaj perdiĝos ĉe la movo de la kursoro.

  Persistenta

    Elektoj restos eĉ post movo kaj tajpado de la kursoro.

  Permesi rulumadon preter la fino de la dokumento

    Ĉi tiu opcio ebligas al vi rulumi preter la fino de la dokumento. Ĉi tio povas esti uzata por vertikale centri la fundon de la dokumento, aŭ meti ĝin sur la nuna vido.

  Retroklavo forigas la bazon de signo kun siaj diakritaj signoj

    Se elektitaj, kunmetitaj signoj estas forigitaj per siaj diakritaj signoj anstataŭ nur forigado de la baza signo. Ĉi tio estas utila por hindaj lokoj.

Plurkursora modifilo

  Ĉi tiu opcio ebligas al vi agordi la modifilon kiu estos uzata por krei plurajn kursorojn per musbutono maldekstra klaku. Vi devas premi la modifilojn kaj klaki musbutono maldekstra por krei kursoron ĉe la dezirata loko. Vidu Kreante plurajn kursorojn por malkovri aliajn manierojn krei plurajn kursorojn.

#### Indentaĵo

Defaŭlta indentreĝimo:

  Elektu la aŭtomatan indentreĝimon, kiun vi volas uzi defaŭlte. Estas forte rekomendite uzi `Neniu` aŭ `Normala` ĉi tie, kaj uzi dosiertipajn agordojn por agordi aliajn indentreĝimojn por tekstformatoj kiel C/C++-kodo aŭ XML.

Indent uzante
  Tabeliloj

    Kiam tio estas ebligita la redaktilo enmetos tabelsignojn kiam vi premas la Tab klavo aŭ uzu aŭtomatan indentaĵon.

  Spacoj

    Kiam ĉi tio estas ebligita, la redaktilo enmetos kalkulitan nombron da spacoj laŭ la pozicio en la teksto kaj la agordo `tab-width` kiam vi premas la Tab klavo aŭ uzas aŭtomatan deŝovon.

  Tabuliloj kaj Spacoj

    Kiam ĉi tio estas ebligita, la redaktilo enmetos spacojn kiel priskribite supre kiam deŝovas aŭ premas Tab je la komenco de linio, sed enigu tabulantojn kiam la Tab klavo estas premata meze aŭ fino de linio.

  Larĝo de tabo:

    Ĉi tio agordas la nombron da spacoj, kiuj estas montrataj anstataŭ tabeliga signo.

  Indentlarĝo:

    La indentlarĝo estas la nombro da spacoj, kiu estas uzata por deŝovi linion. Se agordite por indentigi uzante tabeligilojn, tabulatora signo estas enigita se la indentaĵo estas dividebla per la klapeta larĝo.

Indentaj Propraĵoj
  Konservi kromajn spacojn

    Se ĉi tiu opcio estas malŝaltita, ŝanĝi la indentnivelon vicigas linion al oblo de la larĝo specifita en Larĝo de indentaĵo.

  Alĝustigi deŝovon de teksto gluita el la tondujo

    Se ĉi tiu opcio estas elektita, teksto algluita el la tondujo estas indentigita. Ekfunkciigi la agon Malfari forigas la indentaĵon.

Deŝov-Agoj
  Backspace klavo en gvidaj malplenaj malstrekoj

    Se ĉi tiu opcio estas elektita, la Retropaŝo klavo malpliigas la indentnivelon se la kursoro troviĝas en la ĉefa malplena spaco de linio.

  Tabula klava ago (se neniu elekto ekzistas)

    Se vi volas Tab por vicigi la nunan linion en la nuna kodbloko kiel en Emacs, igu Tab ŝparvojon al la ago Formati Deŝovon.

    Ĉiam antaŭeniru al la sekva klapeta pozicio

      Se ĉi tiu opcio estas elektita, la Tab klavo ĉiam enmetas blankan spacon tiel ke la sekva klapeta pozicio estas atingita. Se la opcio Enmeti spacojn anstataŭ tabelilojn en la langeto Ĝenerala en la paĝo Redaktado estas ebligita, spacoj estas enmetitaj; alie, unuopa tabelilo estas enmetita.

    Ĉiam pliigi deŝovnivelon

      Se ĉi tiu opcio estas elektita, la Tab klavo ĉiam indentigas la aktualan linion per la nombro da signopozicioj specifitaj en Indentlarĝo.

    Pliigi deŝovnivelon se en gvida malplena spaco

      Se ĉi tiu opcio estas elektita, la Tab klavo aŭ indentigas la nunan linion aŭ antaŭeniras al la sekva klapopozicio. Se la enmetpunkto estas ĉe aŭ antaŭ la unua nespaca signo en la linio, aŭ se estas elekto, la nuna linio estas indentigita per la nombro da signopozicioj specifitaj en Indentlarĝo. Se la enmetopunkto troviĝas post la unua nespaca signo en la linio kaj ne estas elekto, blanka spaco estas enmetita tiel ke la sekva tabula pozicio estas atingita: se la opcio Enmeti spacojn anstataŭ tabelilojn sur la langeto Ĝenerala en la paĝo Redaktado estas ebligita, spacoj estas enmetitaj; alie, unuopa tabelilo estas enmetita.

#### Aŭtomata Kompletigo

Ĝenerala
  Ebligi aŭtomatan kompletigon

    Se ĝi estas ebligita, aŭtomate aperas vortkompletiga skatolo dum tajpado montrante liston de tekstaj enskriboj por kompletigi la aktualan tekston sub la kursoro.

  Aŭtomate elekti la unuan kompletigan eniron

    Se ĝi estas ebligita, la unua aŭtomata kompletigo estas ĉiam antaŭelektita por ke vi povu enmeti ĝin per Enigu. Se vi ne volas tian konduton, ekz. se vi volas premi Enigu por nur enmeti novlinion, tiam malŝalti ĉi tiun eron.

Minimuma vortlongo por kompletigi

  Dum tajpado de teksto, la vortkompletigo serĉas vortojn en la dokumento komencante per la jam tajpita teksto. Ĉi tiu opcio agordas la minimuman kvanton da signoj, kiuj necesas por aktivigi la vortkompletigon kaj aperigi kompletigan skatolon.

Forigi la voston komplete

  Forigi la voston de antaŭa vorto kiam la kompletigo estas elektita el listo.

Ŝlosilvort-kompletigo

  Se ebligita, la enkonstruita aŭtomata kompletigo uzas la ŝlosilvortojn difinitajn per la sintaksa reliefigo.

#### Literumkontrolo

Ĉi tiuj agordaj opcioj estas priskribitaj en la dokumentado por la Sistemargordoj modulo Literuma Kontrolilo.

#### Vi Eniga Reĝimo

Ĝenerala
  Lasi Vi-komandojn superregi la ŝparvojojn de Kate

    Se elektitaj, Vi-komandoj anstataŭigos la enkonstruitajn komandojn de KatePart. Ekzemple: Ctrl+R refaros, kaj anstataŭigos la norman agon (montrante la serĉan kaj anstataŭigu dialogon).

  Montri relativajn linionombrojn

    se tio estas ebligita, la nuna linio ĉiam rilatas al linio 0. Linioj supre kaj malsupre pliigas la linionumeron relative.

Klava Mapado

  Klavmapado estas uzata por ŝanĝi la signifon de tajpitaj klavoj. Ĉi tio permesas movi komandojn al aliaj klavoj aŭ fari specialajn klavpremojn por fari serion de komandoj.

  Ekzemplo:

  F2 -> `I--` Esc

  Ĉi tio antaŭmetos `IN--` al linio kiam premas F2.

### Malfermi/Konservi

#### Ĝenerala

Dosiera Formato
  Kodigado

    Ĉi tio difinas la norman kodigon uzi por malfermi/konservi dosierojn, se ne ŝanĝita en la malferma/konservi dialogo aŭ uzante komandlinian opcion.

  Kodiga Detektado

    Elektu eron el la falbutono, ĉu por malŝalti aŭtomatan detekton aŭ uzi Universala por ebligi aŭtomatan detekton por ĉiuj kodigoj. Sed ĉar ĉi tio verŝajne nur detektos utf-8/utf-16, elekti regionon uzos proprajn heŭristikojn por pli bonaj rezultoj. Se nek la kodigo elektita kiel norma supre, nek la kodigo specifita en la malferma/konservi dialogo, nek la kodigo specifita sur komandlinio kongruas kun la enhavo de la dosiero, ĉi tiu detekto estos rulita.

  Fallback-Kodado

    Ĉi tio difinas la rezervan kodigon provi por malfermi dosierojn se nek la kodigo elektita kiel norma supre, nek la kodigo specifita en la malferma/konserva dialogo, nek la kodigo specifita sur komandlinio kongruas kun la enhavo de la dosiero. Antaŭ ol ĉi tio estas uzata, oni provos determini la kodigon por uzi serĉante bajtan ordomarkon ĉe la komenco de dosiero: se oni trovas unu, la ĝusta unikoda kodado estos elektita; alie koda detekto funkcios, se ambaŭ malsukcesas kodigo de kodado estos provita.

  Fino de linio

    Elektu vian preferatan linioreĝimon por via aktiva dokumento. Vi havas la elekton inter UNIX®, DOS/Windows® aŭ Makintoŝo.

  Aŭtomata fino de linio-detekto

    Kontrolu ĉi tion se vi volas, ke la redaktilo aŭtomate detektu la finon de liniotipo. La unua trovita fino de linio tipo estos uzata por la tuta dosiero.

  Ebligi bajtan ordomarkon (BOM)

    La bajta ordomarko estas speciala sekvenco komence de unikodaj koditaj dokumentoj. Ĝi helpas redaktistojn malfermi tekstajn dokumentojn kun la ĝusta unikoda kodado. Por pliaj informoj vidu Byte Order Mark.

  Linio Longa Limo

    Bedaŭrinde, pro mankoj en Qt™, KatePart spertas malbonan rendimenton kiam laboras kun ekstreme longaj linioj. Tial, KatePart aŭtomate envolvos liniojn kiam ili estas pli longaj ol la nombro da signoj specifita ĉi tie. Por malŝalti ĉi tion, agordu ĉi tion al `0`.

Aŭtomataj Purigadoj je Konservado
  Forigi postajn spacojn

    La redaktilo aŭtomate forigos kromajn spacojn ĉe la finoj de linioj de teksto dum konservado de la dosiero. Vi povas elekti Neniam por malŝalti ĉi tiun funkcion, Sur Modifitaj Linioj por fari tion nur sur linioj kiujn vi modifis ekde kiam vi laste konservis la dokumenton, aŭ En Tuta Dokumento por forigi ilin senkondiĉe el la tuta dokumento.

  Aldoni novlinion ĉe la fino de dosiero dum konservado

    La redaktilo aŭtomate aldonos novlinion al la fino de la dosiero se oni ne jam ĉeestas post konservado de la dosiero.

Ebligi Aŭtomatan Konservadon (nur lokaj dosieroj)

  Kontrolu ĉi tion se vi volas, ke la redaktilo aŭtomate konservu dokumentojn dum vi laboras pri ili.

  Aŭtomate konservu dokumenton kiam fokuso forlasas la redaktilon

    La redaktilo aŭtomate konservos dokumentojn kiam vi ŝanĝas al io ekster la redaktilo, ekz., la fina panelo en Kate.

  Aŭtomata konserva intervalo

    Vi povas determini la aŭtomatan konservan intervalon en sekundoj ĉi tie. Se la intervalo estas 0, la dokumento ne estos aŭtomate konservita post intervaloj.

#### Altnivela

Skribi rezervan dosieron pri konservi por

  Sekurkopio dum konservado kaŭzos KatePart kopii la diskdosieron (la antaŭe konservitan version de la dosiero) al <prefikso><dosiernomo><sufikso> antaŭ konservi la novajn ŝanĝojn. Rezerva dosiero povas helpi vin reakiri laboron se io misfunkcias dum konservado aŭ se vi poste volas reakiri la antaŭan version de la dosiero. La sufikso defaŭlte estas ~ kaj prefikso estas malplena defaŭlte.

  Lokaj dosieroj

    Kontrolu ĉi tion se vi volas sekurkopiojn de lokaj dosieroj dum konservado.

  Foraj dosieroj

    Kontrolu ĉi tion se vi volas sekurkopiojn de foraj dosieroj dum konservado.

  Prefikso por rezervaj dosieroj

    Enigu la prefikson por antaŭmeti al la rezervaj dosiernomoj.

  Sufikso por rezervaj dosieroj

    Enigu la sufikson por aldoni al la rezervaj dosiernomoj.

  Ŝanĝi dosierreĝimon

    KatePart kapablas reakiri (plej) nekonservitan laboron en kazo de paneo aŭ elektropaneo. Interŝanĝa dosiero (.&dosiernomo".kate-swp) estas kreita kiam dokumento estas redaktita. Se la uzanto ne konservas la ŝanĝojn kaj KatePart paneas, la interŝanĝdosiero restas sur la disko. Kiam oni malfermas dosieron, KatePart kontrolas ĉu ekzistas interŝanĝa dosiero por la dokumento kaj se ĝi estas, ĝi demandas la uzanton ĉu li volas reakiri la perditajn datumojn aŭ ne. La uzanto ankaŭ havas la eblecon vidi la diferencojn inter la originala dosiero kaj la reakirita. La interŝanĝa dosiero estas forigita post ĉiu konservado kaj ĉe normala eliro.

    KatePart sinkronigas la interŝanĝajn dosierojn sur la disko ĉiujn 15 sekundojn, sed nur se ili ŝanĝiĝis ekde la lasta sinkronigo. La uzanto povas malŝalti la interŝanĝajn dosierojn se li volas, elektante Malŝalti, sed tio povas kaŭzi pli da datumperdo.

    Kiam la interŝanĝa dosiero estas ebligita, eblas ŝanĝi inter du reĝimoj, nome Ebligita, Konservado en Defaŭlta Dosierujo kaj Ebligita, Konservado en Propra Dosierujo.

  Konservi interŝanĝajn dosierojn

    Defaŭlte, la interŝanĝaj dosieroj estas konservitaj en la sama dosierujo kiel la dosiero. Kiam Ebligita, Konservi en Propra Dosierujo estas elektita por la interŝanĝa dosierreĝimo, interŝanĝaj dosieroj estas kreitaj en la specifita dosierujo. Ĉi tio estas utila por retaj dosiersistemoj por eviti nenecesan retan trafikon.

  Konservi interŝanĝajn dosierojn ĉiu

    KatePart sinkronigas la interŝanĝajn dosierojn sur la disko ĉiujn 15 sekundojn, sed nur se ili ŝanĝiĝis ekde la lasta sinkronigo. Vi povas ŝanĝi la sinkronigan intervalon laŭplaĉe.

#### Reĝimoj & Dosierspecoj

Ĉi tiu paĝo ebligas al vi anstataŭi la defaŭltan agordon por dokumentoj de specifita MIME tipoj. Kiam la redaktilo ŝargas dokumenton, ĝi provos ĉu ĝi kongruas kun la dosiermaskoj aŭ MIME tipoj por unu el la difinitaj dosiertipoj, kaj se jes apliki la difinitajn variablojn. Se pli da dosiertipoj kongruas, tiu kun la plej alta prioritato estos uzata.

Dosiertipo:

  La dosiertipo kun la plej alta prioritato estas tiu montrata en la unua falkesto. Se pli da dosiertipoj estis trovitaj, ili ankaŭ estas listigitaj.

  Nova

    Ĉi tio estas uzata por krei novan dosiertipon. Post kiam vi alklakas ĉi tiun butonon, la subaj kampoj malpleniĝas kaj vi povas plenigi la ecojn, kiujn vi volas por la nova dosiertipo.

  Forigi

    Por forigi ekzistantan dosiertipon, elektu ĝin el la falkesto kaj premu la butonon Forigi.

Propraĵoj de `nuna dosiertipo`

  La dosiertipo kun la plej alta prioritato estas tiu montrata en la unua falkesto. Se pli da dosiertipoj estis trovitaj, ili ankaŭ estas listigitaj.

  Nomo:

    La nomo de la dosiertipo estos la teksto de la responda menuero. Ĉi tiu nomo estas montrata en la menuo Iloj → Dosiertipoj.

  Sekcio:

    La sekcionomo estas uzata por organizi la dosiertipojn en menuoj. Ĉi tio ankaŭ estas uzata en la menuo Iloj → Dosiertipoj.

  Variabloj:

    Ĉi tiu ĉeno permesas al vi agordi la agordojn de KatePart por la dosieroj elektitaj de ĉi tiu MIME-tipo uzante KatePart variabloj. Vi povas agordi preskaŭ ajnan agordan opcion, kiel reliefigon, indent-reĝimon, ktp.

    Premu Redakti por vidi liston de ĉiuj disponeblaj variabloj kaj iliaj priskriboj. Elektu la markobutonon maldekstre por ebligi apartan variablon kaj poste agordi la valoron de la variablo dekstre. Iuj variabloj disponigas falskatolon por elekti eblajn valorojn dum aliaj postulas, ke vi enigu validan valoron permane.

    Por kompletaj informoj pri ĉi tiuj variabloj, vidu Agordo per Dokumentaj Variabloj.

  Emfazado:

    Se vi kreas novan dosiertipon, ĉi tiu falkesto ebligas al vi elekti dosiertipon por reliefigi.

  Indenta reĝimo:

    La falkesto specifas la indentreĝimon por novaj dokumentoj.

  Dosieraj etendoj:

    La masko de ĵokeroj permesas elekti dosierojn laŭ dosiernomo. Tipa masko uzas asteriskon kaj la dosier-etendon, ekzemple `*.txt; *.teksto`. La ĉeno estas punktokomo-disigita listo de maskoj.

  MIME-tipoj:

    Montras asistanton kiu helpas vin facile elekti MIME tipoj.

  Prioritato:

    Agordas prioritaton por ĉi tiu dosiertipo. Se pli ol unu dosiertipo elektas la saman dosieron, tiu kun la plej alta prioritato estos uzata.

Agordo kun Dokumentaj Variabloj
Agordo kun Dokumentaj Variabloj

## Agordo kun Dokumentaj Variabloj

KatePart variables estas la efektivigo de dokumentvariabloj de KatePart, simila al Emacs kaj vi modelines. En katepart, la linioj havas la jenan formaton: `kate: VARIABLENAME VALUE; [ VARIABLENAME VALUE; ... ]` La linioj povas kompreneble esti en komento, se la dosiero estas en formato kun komentoj. Variaj nomoj estas unuopaj vortoj (sen blankspaco), kaj ĉio ĝis la sekva punktokomo estas la valoro. La punktokomo estas postulata.

Jen ekzempla varia linio, deviganta indentajn agordojn por C++, Java™ aŭ JavaScript dosiero:

    // kate: replace-tabs on; indent-width 4; indent-mode cstyle;

### Rimarko

Nur la unuaj kaj lastaj 10 linioj estas serĉataj por variaj linioj.

Aldone, dokumentvariabloj povas esti metitaj en dosieron nomitan `.kateconfig` en iu ajn dosierujo, kaj la agorditaj agordoj estos aplikitaj kvazaŭ la modellinioj estus enigitaj en ĉiu dosiero en la dosierujo kaj ĝiaj subdosierujoj. Dokumentvariabloj en `.kateconfig` uzas la saman sintakson kiel en modellinioj, sed kun plilongigitaj opcioj.

Estas variabloj por subteni preskaŭ ĉiujn agordojn en KatePart, kaj aldone kromaĵojn povas uzi variablojn, tiukaze ĝi devus esti dokumentita en la dokumentaro de la kromprogramo.

KatePart havas subtenon por legi agordojn de `.editorconfig` dosieroj, kiam la editorconfig biblioteko estas instalita. KatePart aŭtomate serĉas `.editorconfig` kiam ajn vi malfermas dosieron. Ĝi tamen donas prioritaton al dosieroj `.kateconfig`.

### Kiel KatePart uzas Variaĵojn

Legante agordon, katepart rigardas en la sekvaj lokoj (en tiu ordo):

- La ĉiea agordo.

- Laŭvolaj seancaj datumoj.

- La agordo "Dosierotipo".

- Dokumentvariabloj en `.kateconfig`.

- Dokumentvariabloj en la dokumento mem.

- Agordoj faritaj dum redaktado el menuo aŭ komandlinio.

Kiel vi povas vidi, dokumentaj variabloj estas nur anstataŭitaj de ŝanĝoj faritaj ĉe rultempo. Kiam ajn dokumento estas konservita, la dokumentvariabloj estas relegitaj, kaj anstataŭigos ŝanĝojn faritajn per menueroj aŭ la komandlinio.

Ajna variablo ne listigita malsupre estas konservita en la dokumento kaj povas esti pridemandita de aliaj objektoj kiel kromaĵojn, kiuj povas uzi ilin por sia propra celo. Ekzemple, la varia indentreĝimo uzas dokumentvariablojn por sia agordo.

La variabloj listigitaj ĉi tie dokumentas KatePart versio 5.38. Pli da variabloj povas esti aldonitaj estonte. Estas 3 eblaj specoj de valoroj por variabloj, kun la sekvaj validaj esprimoj:

- BOOL - on|off|true|false|1|0

- INTEGER - ajna entjera nombro

- STRING - io alia

### Disponeblaj Variabloj

aŭtomate krampoj [BOOL]

  Ebligi aŭtomatan enmeton de krampoj.

aŭtomatcentraj linioj [INT]

  Agordi la nombron da aŭtocentraj linioj.

background-color [STRING]

  Agordu la fonkoloron de la dokumento. La valoro devas esti io taksebla al valida koloro, ekzemple `#ff0000`.

backspace-indents [BOOL]

  Ebligi aŭ malŝalti maldeŝovadon kiam Retropaŝo estas premita.

block-selection [BOOL]

  Ŝalti aŭ malŝalti blok-elekton.

bom | byte-order-mark | byte-order-marker [BOOL]

  Ebligu/malŝaltu la bajtan ordomarkon (BOM) dum konservado de dosieroj en Unikoda formato (utf8, utf16, utf32).

  Ekde: Kate 3.4 (KDE 4.4)

bracket-highlight-color [STRING]

  Agordu la koloron por la krampo elstara. La valoro devas esti io taksebla al valida koloro, ekzemple `#ff0000`.

current-line-color [STRING]

  Agordu la koloron por la nuna linio. La valoro devas esti io taksebla al valida koloro, ekzemple `#ff0000`.

defaŭlta vortaro [STRING]

  Agordas la defaŭltan vortaron uzatan por literumkontrolo.

  Ekde: Kate 3.4 (KDE 4.4)

dynamic-word-wrap [BOOL]

  Enŝaltas aŭ malŝaltas dinamikan vortvolvadon.

eol | end-of-line [STRING]

  Agordu la finon de linio-reĝimo. Validaj agordoj estas `unikso`, `mac` kaj `dos`.

faldeblaj markiloj [BOOL]

  Ŝalti aŭ malŝalti la montradon de faldmarkiloj.

folding-preview [BOOL]

  Ebligi faldeblan antaŭrigardo en la redaktora rando.

font-size [INT]

  Agordi la punktograndon de la dokumenttiparo.

font [STRING]

  Agordi la tiparon de la dokumento. La valoro estu valida tiparonomo, ekzemple `kuristo`.

hl | syntax [STRING]

  Agordi la sintaksan reliefigon. Validaj ĉenoj estas ĉiuj nomoj disponeblaj en la menuoj. Ekzemple, por C++ simple skribu `C++`.

icon-bar-color [STRING]

  Agordi la koloron de la piktogramo. La valoro devas esti io taksebla al valida koloro, ekzemple `#ff0000`.

icon-border [BOOL]

  Ŝalti aŭ malŝalti la montradon de la piktolimo.

indent-mode [STRING]

  Agordi la aŭtomatan indentan reĝimon. La opcioj `neniu`, `normala`, `cstyle`, `haskell`, `lilypond`, `lisp`, `python`, `ruby` kaj `xml` estas rekonitaj. Vidu la sekcion la sekcio nomata “Uzado de aŭtomata deŝovo” por detaloj.

indent-pasted-text [BOOL]

  Ebligi/malŝalti ĝustigi indentaĵon de teksto gluita el la tondujo.

  Ekde: Kate 3.11 (KDE 4.11)

indent-width [INT]

  Agordu la deŝovolarĝon.

keep-extra-spaces [BOOL]

  Agordu ĉu konservi kromajn spacojn dum kalkulado de deŝovolarĝo.

line-numbers [BOOL]

  Ŝaltu aŭ malŝaltu la montradon de linionumeroj.

newline-at-eof [BOOL]

  Aldonu malplenan linion ĉe la fino de la dosiero (EOF) dum konservado de la dokumento.

  Ekde: Kate 3.9 (KDE 4.9)

overwrite-mode [BOOL]

  Ŝaltu aŭ malŝaltu anstataŭigan reĝimon.

persistent-selection [BOOL]

  Ŝaltu aŭ malŝaltu daŭran elekton.

replace-tabs-save [BOOL]

  Agordu tabon al spackonverto sur konservado aŭ malŝaltita.

replace-tabs [BOOL]

  Ŝaltu aŭ malŝaltu dinamikan tabon al spaca konvertiĝo.

remove-trailing-spaces [STRING]

  Forigas postajn spacojn dum konservado de la dokumento. Validaj opcioj estas:

  - `neniu`, `-` aŭ `0`: neniam forigu postajn spacojn.

  - `modifita`, `mod`, `+` aŭ `1`: forigi postajn spacojn nur en modifitaj linioj. La modifitaj linioj estas markitaj per la liniomodifsistemo.

  - `ĉiuj`, `*` aŭ `2`: forigu postajn spacojn en la tuta dokumento.

scrollbar-minimap [BOOL]

  Montru rulumbren minimapon.

scrollbar-preview [BOOL]

  Montru antaŭrigardon de rulumbreto.

scheme [STRING]

  Agordu la kolorskemon. La ĉeno devas esti la nomo de kolorskemo kiu ekzistas en via agordo por havi ajnan efikon.

selection-color [STRING]

  Agordu la elektan koloron. La valoro devas esti io taksebla al valida koloro, ekzemple `#ff0000`.

show-tabs [BOOL]

  Ŝaltu aŭ malŝaltu la vidan tabon.

inteligenta hejmo [BOOL]

  Ŝaltu aŭ malŝaltu inteligentan hejman navigadon.

tab-indents [BOOL]

  Agordu Tab-klavan deŝovon ŝaltita aŭ malŝaltita.

tab-width [INT]

  Agordu la montritan larĝon de tab-signo.

undo-steps [INT]

  Agordu la nombron da malfaraj paŝoj por memori.

  Noto: Malrekomendita ekde Kate 3 en KDE4. Ĉi tiu variablo estas ignorita. La maksimuma nombro de malfari paŝoj estas senlima.

word-wrap-column [INT]

  Agordu la larĝon de senmova vortvolvaĵo.

word-wrap-marker-color [STRING]

  Agordu la vortvolvaĵan markilon. La valoro devas esti io taksebla al valida koloro, ekzemple `#ff0000`.

word-wrap [BOOL]

  Ŝaltu aŭ malŝaltu statikan vortvolvadon.

### Plilongigitaj Opcioj en dosieroj `.kateconfig`

KatePart ĉiam serĉu dosieron `.kateconfig` por lokaj dosieroj (ne foraj dosieroj). Krome, eblas agordi opciojn bazitajn sur ĵokeroj (dosieraj etendoj) jene:

    kate: tab-width 4; indent-width 4; replace-tabs on;
    kate-wildcard(*.xml): indent-width 2;
    kate-wildcard(Makefile): replace-tabs off;

En ĉi tiu ekzemplo, ĉiuj dosieroj uzas klapeton-larĝon de 4 spacoj, indent-larĝon de 4 spacoj, kaj taboj estas anstataŭigitaj vastigitaj al spacoj. Tamen, por ĉiuj dosieroj `*.xml`, la indentlarĝo estas agordita al 2 spacoj. Kaj Makefiles uzas tabojn, t.s. taboj ne estas anstataŭigitaj per spacoj.

Ĵokkartoj estas punktokomo apartigitaj, t.s. vi ankaŭ povas specifi plurajn dosier-etendojn jene:

    kate-wildcard(*.json;*.xml): indent-width 2;

Plue, vi povas ankaŭ uzi la MIME-tipon por kongrui kun certaj dosieroj, ekz. por indentigi ĉiujn C++ fontdosierojn kun 4 spacoj, vi povas skribi:

    kate-mimetype(text/x-c++src): indent-width 4;

### Rimarko

Apud la subteno en dosieroj `.kubeconfig`, ĵokero kaj MIME; tipo dependaj dokumentvariabloj ankaŭ estas subtenataj en la dosieroj mem kiel komentoj.

Ĉapitro 8. Kreditoj kaj Permesilo
Kreditoj kaj Permesilo

# Ĉapitro 8. Kreditoj kaj Permesilo

KatePart kaj KWrite Kopirajto 2001-2022 de la Kate-teamo.

Surbaze de la originala KWrite, kiu estis Kopirajto 2000 de Jochen Wilhelmy `(digisnap AT cs.tu-berlin.de)`

Kontribuoj:

- Christoph Cullmann `(cullmann AT kde.org)`

- Michael Bartl `(michael.bartl1 AT chello.at)`

- Phlip `(phlip_cpp AT my-deja.com)`

- Anders Lund `(anders AT alweb.dk)`

- Matt Newell `(newellm AT proaxis.com)`

- Joseph Wenninger `(kde AT jowenn.at)`

- Jochen Wilhelmy `(digisnap AT cs.tu-berlin.de)`

- Michael Koch `(koch AT kde.org)`

- Christian Gebauer `(gebauer AT kde.org)`

- Simon Hausmann `(hausmann AT kde.org)`

- Glen Parker `(glenebob AT nwlink.com)`

- Scott Manson `(sdmanson AT altel.net)`

- John Firebaugh `(jfirebaugh AT kde.org)`

- Nibaldo González `(nibgonz AT gmail.com)`

La KatePart dokumentado baziĝas sur la originala KWrite dokumentado, modifita por esti rilata al ĉiuj KatePart konsumantoj.

La originala KWrite dokumentaro estis verkita de Thad McGinnis `(ctmcginnis AT compuserve.com)`, kun multaj modifoj de Christian Tibirna `(tibirna AT kde.org)`. Konvertite al docbook/pruvlegado de Lauri Watts `(lauri AT kde.org)` kaj ĝisdatigita de Anne-Marie Mahfouf `(annma AT kde.org)` kaj Anders Lund `(anders AT alweb.dk)`

La aktuala KatePart dokumentaro estas konservita de T.C. Hollingsworth `(tchollingsworth AT gmail.com)`. Bonvolu sendi komentojn aŭ sugestojn al la KatePart disvolva dissendolisto ĉe `(kwrite-devel AT kde.org)` aŭ prezentu cimon en la KDE Cimspura Sistemo.

Traduko Oliver Kellogg `(okellogg AT users.sf.net)`

Ĉi tiu dokumentaro estas licencata sub la kondiĉoj de la Permesilo de Dokumentado Libera GNU.

Ĉi tiu programo estas licencata sub la kondiĉoj de la GNUa Ĝenerala Publika Licenco.

Ĉapitro 9. La VI Eniga Reĝimo
La VI Eniga Reĝimo

# Ĉapitro 9. La VI Eniga Reĝimo

Erlend Hamberg `<ehamberg@gmail.com>`

Translation: Oliver Kellogg

## VI Eniga Reĝimo

La celo de la VI-reĝimo estas ne esti kompleta anstataŭaĵo por Vim kaj subteni ĉiujn funkciojn de Vim. Ĝia celo estas disponigi la “Vim-manieron” de tekstoredaktado - kaj la lernitajn Vim-kutimojn - por programoj uzantaj la KatePart tekstredaktilon kiel ilia interna redaktilo.

La VI-reĝimo celas integriĝi bele kun la programo kaj devii de la konduto de Vim kie ĝi havas sencon. Ekzemple, `:w` malfermos konservan dialogon en la VI-reĝimo de KatePart.

Por ebligi la VI-Enigan Reĝimon por ĉiuj novaj vidoj, iru al Agordoj → Agordi KatePart...+Redaktado → VI-Enigo Reĝimo. Sur ĉi tiu langeto vi povas agordi opciojn por la VI Enigo-Reĝimo kaj difini kaj redakti la klavmapadon en ĉi tiu reĝimo. VI-Eniga Reĝimo ankaŭ povas esti ŝanĝita per la agordo VI-Eniga Reĝimo en la menuo Redakti. (La defaŭlta fulmoklavo estas Meta+Ctrl+V - kie Meta kutime estas la klavo Vindozo).

### Rimarko

Multaj Vi-Reĝimaj klavarkomandoj estas usklecdistingaj, male al plej multaj KDE klavaraj ŝparvojoj. Tio signifas, ke `y` kaj `Y` estas malsamaj ordonoj. Por enigi la komandon `y` (jank), certigu, ke Majuskloj estas malŝaltita kaj premu Y. Por enigi la komandon `Y` (tiri al fino de linio), Majuskligo+Y.

Ĉi tio ne validas por komandoj kiuj uzas la Ctrl klavo, kiu povas esti enigita sendepende de Majuskloj reĝimo kaj sen premado de Majuskligo. Tamen, iuj komandoj postulas la uzon de Ctrl-klava kombinaĵo sekvita de alia klavo kiu distingas usklecon. Ekzemple, por enigi “Ctrl+W, `h`” (ŝanĝu al dividita vido dekstre) certigu, ke Majuskloj estas malŝaltita, premu Ctrl+W, maltenu, kaj poste premu H.

### Nekongruoj kun Vim

Estas nur kelkaj funkcioj de la VI-reĝimo de KatePart kiuj estas nekongruaj kun Vim (sen kalkuli aferojn mankantajn). Ili estas listigitaj malsupre kune kun la respektivaj kialoj.

- KatePart: Ambaŭ `U` kaj Ctrl+R estas refari.

  Vim: Ctrl+R estas normala refari, U estas uzata por malfari ĉiujn lastajn ŝanĝojn sur unu linio.

  La kialo por ke U agas kiel refari en la VI-reĝimo de KatePart estas ke la ŝparvojo Ctrl+R defaŭlte estas prenita de la anstataŭiga funkcio de KatePart (serĉi kaj anstataŭigi). Defaŭlte, la VI-reĝimo ne anstataŭigos la ŝparvojojn de KatePart (ĉi tio povas esti agordita en Agordoj → Agordu KatePart...+Redaktado → Vi Eniga Reĝimo), tial refara ago ankaŭ devas esti disponebla kiel “regula” klavopremo. Cetere, la konduto de la komando `U` en Vim ne bone mapas al la interna malfara sistemo de KatePart, do estus ne bagatela subteni ĉiukaze.

- KatePart: `print` montras la dialogon Presi.

  Vim: `print` presas la liniojn de la donita gamo kiel ĝia avo ed.

  Komandoj kiel `:print` estas disponeblaj ne nur en la VI-reĝimo sed ankaŭ por uzantoj uzantaj “regula” KatePart - tial la `:print` komando malfermas la presitan dialogon - sekvante la principon de malplej surprizo anstataŭ imiti la konduton de Vim.

- KatePart: `Y` tiras al la fino de linio.

  Vim: `Y` tiras tutan linion, same kiel `y` `y`.

  La konduto de VI por la komando `Y` estas praktike cimo. Por kaj ŝanĝi kaj forigi komandojn, `c` `c`/ `d` `d` faros sian agon sur la nuna linio kaj `C`/`D` funkcios de la kursora kolumno ĝis la fino de la linio. Tamen, kaj `y` `y` kaj `Y` tiras la nunan linion. En la VI-Reĝimo de KatePart `Y` ektiros ĝis la fino de la linio. Ĉi tio estas priskribita kiel “pli logika” en la Vim-dokumentado.

- KatePart: `O` kaj `o` malfermas [`kalkuli`] novajn liniojn kaj metas vin en enmetan reĝimon.

  Vim: `O` kaj `o` malfermas novan linion kaj enmetas tekston [`nombro`] fojojn kiam oni forlasas enmetreĝimon.

  Ĉi tio estas plejparte farita kiel konsekvenco de vidi ke multaj homoj estas konfuzitaj de ĉi tiu konduto sur vim IRC-kanalo (#vim sur Libera Chat).

### Ŝanĝado de Reĝimoj

- Normala Reĝimo permesas vin enigi komandojn por navigi aŭ redakti dokumenton, kaj estas la defaŭlta reĝimo. Vi povas reveni al ĝi de iu ajn alia reĝimo premante Esc.

- Vida Reĝimo permesas vin reliefigi tekston en dokumento. Plej multaj normalaj komandoj ankaŭ validas en ĉi tiu reĝimo. Vi povas enigi ĝin premante `v` por elekti signojn aŭ `V` por elekti liniojn.

- Enmeta Reĝimo permesas rekte redakti la dokumenton. Vi povas enigi ĝin premante `i` aŭ unu el pluraj aliaj komandoj listigitaj sube.

- Komanda Reĝimo alvokas la komandlinion de KatePart, permesante al vi ruli multajn komandojn disponeblajn en Vi-efektivigoj same kiel iujn specifajn por KatePart. Por pliaj informoj pri ĉi tiuj komandoj, vidu la sekcio nomata “La Redaktilkomponanta Komandlinio”. Por uzi ĝin, premu :, enigu la komandon, kaj premu Enigu.

### Integriĝo kun trajtoj de Kate

- Vida Reĝimo estas enirita aŭtomate kiam teksto estas elektita per la muso. Ĝi ankaŭ estas enigita kiam oni uzas funkciojn de Kate kiuj elektas tekston, kiel Elekti Ĉion (ĉu el la menuo aŭ per Ctrl+A.)

- Vi markoj kaj Kate legosignoj estas integritaj. Kiam marko estas kreita en Vi Mode, responda Kate legosigno estas kreita kaj aperas en la menuo Legosignoj. Male, kiam Kate legosigno estas kreita, responda Vi-marko ĉe la 0 kolumno ankaŭ estas kreita.

### Subtenataj normalaj/vidaj reĝimaj komandoj

`a` | Eniri Enmetan Reĝimon; aldoni post kursoro
`A` | Eniri Enmetan Reĝimon; aldoni post linio
`i` | Eniri Enmetan Reĝimon; enmeti antaŭ kursoro
Ins | Eniri Enmetan Reĝimon; enmeti antaŭ kursoro
`I` | Eniri Enmetan Reĝimon; enmeti antaŭ la unua nemalplena signo en linio
`gi` | Eniri Enmetan Reĝimon; enmeti antaŭ loko, kie lasante la lastan enmetreĝimon
`v` | Eniri Vidan Reĝimon; elekti signojn
`V` | Eniri Vidan Reĝimon; elekti liniojn
Ctrl+v | Eniri Vidan Reĝimon; elekti blokojn
`gb` | Eniri Vidan Reĝimon; elekti la lastan elekton
`o` | Malfermi novan linion sub la nuna linio
`O` | Malfermi novan linion super la nuna linio
`J` | Kunigi liniojn
`c` | Ŝanĝo: sekvi movon por forigi kaj eniri Enmetan reĝimon
`C` | Ŝanĝi al fino de linio: Forigi al fino de linio kaj eniri Enmetan Reĝimon
`cc` | Ŝanĝi linion: Forigi linion kaj eniri Insert Mode
`s` | Anstataŭigi signon
`S` | Anstataŭigi linion
`dd` | Forigi linion
`d` | Sekvi per movo por forigi
`D` | Forigi ĝis fino de linio
`x` | Forigi signon dekstre de kursoro
Del | Forigi signon dekstre de kursoro
`X` | Forigi signon maldekstre de la kursoro
`gu` | Sekvi per movo por fari minusklojn
`guu` | Igi la nunan linion minuskla
`gU` | Sekvi per movo por fari majusklojn
`gUU` | Igi la nunan linion majuskla
`y` | Sekvi per movo por “tiri” (kopii)
`yy` | Yank (kopii) linion
`Y` | Yank (kopii) linion
`p` | Alglui post kursoro
`P` | Alglui antaŭ kursoro
`]p` | Alglui post kursoro indentigita
`[p` | Alglui antaŭ la kursoro indentigita
`r` | Sekvi per signo por anstataŭigi la signon post la kursoro
`R` | Eniri Anstataŭigan Reĝimon
`:` | Eniri Komandan Reĝimon
`/` | Serĉi
`u` | Malfari
Ctrl+R | Refari
`U` | Refari
`m` | Agordi markon (povas esti uzata per movoj poste)
`n` | Trovi sekvan
`N` | Trovi antaŭan
`>>` | Deŝovi linion
`<<` | Maldeŝovi linion
`>` | Deŝovi liniojn
`<` | Maldeŝovi liniojn
Ctrl+F | Paĝon malsupren
Ctrl+B | Paĝon supren
`ga` | Presi la ASCII-valoron de la signo
`.` | Ripeti la lastan ŝanĝon
`==` | komandoAlignLine
`=` | komandoAlignLines
`~` | Ŝanĝi usklecon de aktuala signo
Ctrl+S | Dividi vidon horizontale
Ctrl+V | Dividi vidon vertikale
Ctrl+W, `w` | Cikli al la sekva dividita fenestro
Ctrl+W, `h` Ctrl+W Left | Iri al maldekstra dividita fenestro
Ctrl+W, `l` Ctrl+W Right | Iri al dekstra dividita fenestro
Ctrl+W, `k` Ctrl+W Up | Iri al la supra dividita fenestro
Ctrl+W, `j` Ctrl+W Down | Iri al la malsupra dividita fenestro

### Subtenataj movoj

Ĉi tiuj povas esti uzataj por movi dokumenton en Normala aŭ Vida reĝimo, aŭ kune kun unu el la supraj komandoj. Ili povas esti antaŭitaj de kalkulo, kiu indikas kiom da la taŭgaj movoj fari.

`h` | Maldekstre
Left | Maldekstre
Retropaŝo | Maldekstre
`j` | Suben
Down | Suben
`k` | Supren
Up | Supren
`l` | Dekstren
Right | Dekstren
Spaceto | Dekstren
`$` | Fino de linio
End | Fino de linio
`0` | Unua signo de linio (Kolumno 0)
Home | Unua signo de linio
`^` | Unua nemalplena signo de linio
`f` | Sekvi per signo por movi dekstren de la kursoro
`IF` | Sekvi per signo por movi maldekstren de la kursoro
`t` | Sekvi per signo por movi dekstren de kursoro, metante la kursoron sur signon antaŭ ĝi
`T` | Sekvi per signo por movi maldekstren de kursoro, metante la kursoron sur signon antaŭ ĝi
`gg` | Unua linio
`G` | Lasta linio
`w` | Sekva Vorto
`W` | Sekva vorto apartigita per blankspaco
`b` | Antaŭa vorto
`B` | Antaŭa vorto apartigita per blankspaco
`e` | Fino de vorto
`E` | Fino de vorto apartigita per blankspaco
`ge` | Fino de antaŭa vorto
`gE` | Fino de antaŭa vorto apartigita per blankspaco
`|` | Sekvi kolumnon por moviĝi al tiu kolumno
`%` | Sekvi eron por moviĝi al tiu aĵo
``` | Marki
`‘` | Unua ne-blankspaco de la linio, sur kiu la marko estas
`[[` | Antaŭa malferma krampo
`]]` | Sekva malferma krampo
`[]` | Antaŭa ferma krampo
`][` | Sekva ferma krampo
Ctrl+I | Salti al la sekva loko
Ctrl+O | Salti al antaŭa loko
`H` | Iri al la unua linio de ekrano
`M` | Iri al meza linio de ekrano
`L` | Iri al la lasta linio de ekrano
`%`procento`` | Iri al specifita procento de la dokumento
`gk` | Iri unu vicon vide (kiam vi uzas dinamikan vortvolvaĵon)
`gj` | Iri unu linion malsupren vide (kiam vi uzas dinamikan vortvolvaĵon)
Ctrl+Left | Movi unu vorton maldekstren
Ctrl+Right | Movi unu vorton dekstren

### Subtenataj tekstaj objektoj

Ĉi tiuj povas esti uzataj por elekti iujn partojn de dokumento.

`se` | Interna vorto: vorto inkluzive de blankspaco
`kiel` | Vorto: vorto ekskludante blankspacon
`en"` | Antaŭa citilo (`"`) al sekva duobla citilo, inkluzive de citiloj
`a”` | Antaŭa citilo (`"`) al sekva duobla citilo, krom citiloj
`en'` | Antaŭa unucitilo (`'`) al la sekva unucitilo, inkluzive de citiloj
`a'` | Antaŭa unucitilo (`'`) al la sekva unucitilo, krom citiloj
`en(` | Antaŭa malferma krampo [`(`] al sekva ferma krampo [`)`], inkluzive de la krampo
`a(` | Antaŭa malferma krampo [`(`] al sekva ferma krampo [`)`], ekskludante la krampon
`en[` | Antaŭa malferma kvadrata krampo (`[`) al venonta ferma kvadrata krampo (`]`), inkluzive de la krampoj
`a[` | Antaŭa malferma kvadrata krampo (`[`) al la sekva ferma kvadrata krampo (`]`), ekskludante la krampojn
`i{` | Antaŭa malferma buklokrampo (`{`) al sekva ferma krampo (`}`), inkluzive de la krampoj
`a{` | Antaŭa malferma krampo (`{`) al venonta ferma krampo (`}`), ekskludante la krampojn
`i<` | Antaŭa malferma angula krampo (`<`) al venonta ferma angula krampo (`>`), inkluzive de la krampoj
`a<` | Antaŭa malferma angula krampo (`<`) al la sekva ferma kvadrata krampo (`>`), ekskludante la krampojn
`en`` | Antaŭa retromarko (```) al sekva malantaŭa markilo, inkluzive de la malantaŭo
`a`` | Antaŭa retromarko (```) al sekva malantaŭa markilo, ekskludante la malantaŭajn markojn

### Subtenataj enmetaj reĝimaj komandoj

Ctrl+D | Unindent
Ctrl+T | Indent
Ctrl+E | Enigi de malsupre
Ctrl+Y | Forigi vorton
Ctrl+W | Forigi vorton
Ctrl+U | Forigi linion
Ctrl+J | Nova linio
Ctrl+H | Forigi char malantaŭen
Ctrl+Home | Movi al la unua signo en la dokumento
Ctrl+R `n` | Enmeti la enhavon de registro `n`
Ctrl+O, `komando` | Enigu normalan reĝimon nur por unu komando
Ctrl+A | Pliigi aktuale elektitan nombron
Ctrl+X | Malpliigi aktuale elektitan nombron

### La Koma Tekstobjekto

Ĉi tiu objekto mankas en Vim. La koma tekstobjekto faciligas modifi parametrajn listojn en C-similaj lingvoj kaj aliaj komo-disigitaj listoj. Ĝi estas esence la areo inter du komoj aŭ inter komo kaj krampo. En la linio montrita en la ilustraĵo, la tri intervaloj kiujn ĉi tiu tekstobjekto povas etendi estas elstarigitaj.

Koma teksto-objektaj gamoj. Se la kursoro estas super ekz. `arg2`, premante `ci`, (“ŝanĝi internan komon”) forigus `duoblan arg2` kaj metus la kursoron inter la du komojn en enmeta reĝimo. Tre oportuna maniero ŝanĝi la parametrojn de funkcio.

### Mankantaj Trajtoj

Kiel dirite antaŭe, la celo de la VI-Reĝimo de KatePart estas ne subteni 100% de la funkcioj de Vim.

Apendico A. Regulaj Esprimoj
Regulaj Esprimoj

# Apendico A. Regulaj Esprimoj

Anders Lund `<anders@alweb.dk>`

Translation: Oliver Kellogg

    Ĉi tiu Apendico enhavas mallongan sed espereble sufiĉan kaj
    kovrantan enkondukon al la mondo de regulaj
    esprimoj. Ĝi dokumentas regulajn esprimojn en la formo
    havebla ene de KatePart, kiu ne kongruas kun la regulaj
    esprimoj de perl, nek kun tiuj de ekzemple
    grep.

## Enkonduko

Regulaj Esprimoj provizas al ni manieron priskribi iujn eblajn enhavojn de teksta ĉeno en maniero komprenita de malgranda programaro, por ke ĝi povu esplori ĉu teksto kongruas, kaj ankaŭ en la kazo de altnivelaj aplikoj kun la rimedoj por konservi pecojn aŭ la kongruan tekston.

Ekzemplo: Diru, ke vi volas serĉi tekston por alineoj, kiuj komenciĝas per iu el la nomoj “Henrik” aŭ “Pernille” sekvata de iu formo de la verbo “diri”.

Kun normala serĉo, vi komencus serĉi la antaŭnomon, “Henrik” eble sekvata de “dir” tiel: `Henrik dir`, kaj dum serĉado por kongruoj, vi devus forĵeti tiujn, kiuj ne estas la komenco de alineo, same kiel tiujn, en kiuj la vorto komencanta per la literoj “dir” ne estis aŭ “diras”, “diris” aŭ tiel. Kaj poste kompreneble ripetu ĉion tion kun la sekva nomo...

Kun Regulaj Esprimoj, tiu tasko povus esti plenumita per ununura serĉo, kaj kun pli granda grado da precizeco.

Por atingi ĉi tion, Regulaj Esprimoj difinas regulojn por esprimi en detaloj ĝeneraligo de ĉeno kongrua. Nia ekzemplo, kiun ni laŭvorte esprimus tiel: “Linio komencanta per aŭ ‘Henrik’ aŭ ‘Pernille’ (eble sekvante ĝis 4 malplenajn aŭ tabulajn signojn) sekvata de Blanka spaco sekvata de ‘dir’ kaj tiam aŭ ‘as’ aŭ ‘is’” povus esti esprimita per la sekva regula esprimo:

`^[ \t]{0,4}(Henrik|Pernille) dir(as|is)`

La supra ekzemplo montras ĉiujn kvar ĉefajn konceptojn de modernaj Regulaj Esprimoj, nome:

- Ŝablonoj

- Asertoj

- Kvantigiloj

- Retroreferencoj

La kamero (`^`) komencanta la esprimon estas aserto, estante vera nur se la sekva kongrua ĉeno estas ĉe la komenco de linio.

La ĉenoj `[ \t]` kaj `(Henrik|Pernille) dir(as|is)` estas ŝablonoj. La unua estas signa klaso kiu kongruas aŭ kun malplena aŭ (horizontala) tabula signo; la alia ŝablono enhavas unue subŝablon kongruantan aŭ `Henrik` aŭ `Pernille`, poste pecon kongruantan kun la ĝusta ĉeno `dir` kaj fine subŝablono kongruanta aŭ `as` aŭ `is`

La ĉeno `{0,4}` estas kvantigilo diranta “ie ajn de 0 ĝis 4 el la antaŭa”.

Ĉar regulesprima programaro subtenanta la koncepton de retroreferencoj ŝparas la tutan kongruan parton de la ĉeno kaj ankaŭ sub-ŝablonojn enfermitajn inter krampoj, donitaj iujn rimedojn por aliro al tiuj referencoj, ni povus meti niajn manojn aŭ al la tuta kongruo (serĉante tekstdokumenton en redaktilo kun regula esprimo, kiu estas ofte markita kiel elektita) aŭ aŭ la trovita nomo, aŭ al la lasta parto de la verbo.

Tute kune, la esprimo kongruos kie ni volis ĝin, kaj nur tie.

La sekvaj sekcioj priskribos detale kiel konstrui kaj uzi ŝablonojn, signojn klasojn, asertojn, kvantigilojn kaj retroreferencojn, kaj la fina sekcio donos kelkajn utilajn ekzemplojn.

Ŝablonoj
Ŝablonoj

## Ŝablonoj

Ŝablonoj konsistas el laŭvortaj ĉenoj kaj signoklasoj. Ŝablonoj povas enhavi sub-ŝablonojn, kiuj estas ŝablonoj enfermitaj en krampoj.

### Eskapantaj signoj

En ŝablonoj same kiel en signo klasoj, kelkaj signoj havas specialan signifon. Por laŭvorte kongrui kun iu ajn el tiuj signoj, ili devas esti markitaj aŭ eskapitaj por sciigi al la regula esprimo programaro ke ĝi devus interpreti tiajn signojn en sia laŭvorta signifo.

Ĉi tio estas farita antaŭmetante la signon per malantaŭa oblikvo (`\`).

La regula esprimo programaro silente ignoros eskapi signon kiu ne havas specialan signifon en la kunteksto, do eskapi ekzemple “j” (`\j`) estas sekura. Se vi dubas, ĉu signo povus havi specialan signifon, vi do povas eviti ĝin sekure.

Eskapo kompreneble inkluzivas la inversan oblikvan signon mem, por laŭvorte kongrui kun tia, vi skribus `\\`.

### Signaj klasoj kaj mallongigoj

signa klaso estas esprimo kiu kongruas kun unu el difinita aro de signoj. En Regulaj esprimoj, signoklasoj estas difinitaj metante la laŭleĝajn signojn por la klaso en kvadrataj krampoj, `[]`, aŭ uzante unu el la mallongigitaj klasoj priskribitaj malsupre.

Simplaj signoklasoj enhavas nur unu aŭ plurajn laŭvortajn signojn, ekzemple `[abc]` (kongruas kun ĉiu el la literoj “a”, “b” aŭ “ c”) aŭ `[0123456789]` (kongruante kun iu ajn cifero).

Ĉar literoj kaj ciferoj havas logikan ordon, vi povas mallongigi tiujn specifante intervalojn de ili: `[a-c]` estas egala al `[abc]` kaj `[0-9 ]` estas egala al `[0123456789]`. Kombini ĉi tiujn konstrukciojn, ekzemple `[a-fynot1-38]` estas tute laŭleĝa (la lasta kongruus, kompreneble, ĉu de “a”,“b”,“c”,“d”,“e”,“f”, “y”,“n”,“o”,“t”, “1”,“2”,“3” aŭ “8”).

Ĉar majuskloj estas malsamaj signoj de siaj ne-majusklaj ekvivalentoj, por krei senmajusklan signoklason kongruan kun “a” aŭ “b”, ĉiukaze vi devas skribi ĝin `[aAbB]`.

Kompreneble eblas krei “negativan” klasan kongruon kiel “io ajn krom” Por fari tion metu signon (`^`) ĉe la komenco de la klaso :

`[^abc]` kongruos kun ajna signo sed “a”, “b” aŭ “c”.

Krom laŭvortaj signoj, kelkaj mallongigoj estas difinitaj, farante la vivon ankoraŭ iom pli facila:

`\a`

  Ĉi tio kongruas kun la ASCII sonorilsigno (BEL, 0x07).

`\f`

  Ĉi tio kongruas kun la ASCII formo-flua signo (FF, 0x0C).

`\n`

  Ĉi tio kongruas kun la ASCII signo de linio (LF, 0x0A, Unix-novlinio).

`\r`

  Ĉi tio kongruas kun la ASCII kaleŝorevena signo (CR, 0x0D).

`\t`

  Ĉi tio kongruas kun la ASCII horizontala klapeta signo (HT, 0x09).

`\v`

  Ĉi tio kongruas kun la ASCII vertikala klapeta signo (VT, 0x0B).

`\xhhhh`

  Ĉi tio kongruas kun la Unikoda signo responda al la deksesuma nombro hhhh (inter 0x0000 kaj 0xFFFF). \0ooo (t.s., \zero ooo) kongruas kun la signo ASCII/Latin-1 responda al la okta nombro ooo (inter 0 kaj 0377).

`.` (punkto)

  Ĉi tio kongruas kun ajna signo (inkluzive de novlinio).

`\d`

  Ĉi tio kongruas kun cifero. Egala al `[0-9]`

`\D`

  Ĉi tio kongruas kun necifero. Egala al `[^0-9]` aŭ `[^\d]`

`\s`

  Ĉi tio kongruas kun blankspaco. Praktike egala al `[ \t\n\r]`

`\S`

  Ĉi tio kongruas kun neblankspaco. Praktike egala al `[^ \t\r\n]`, kaj egala al `[^\s]`

`\w`

  Kongruas kun ajna “vorta signo” - ĉi-kaze ajna litero, cifero aŭ substreko. Egala al `[a-zA-Z0-9_]`

`\W`

  Kongruas kun ajna nevorta signo - io ajn krom literoj, ciferoj aŭ substreko. Egala al `[^a-zA-Z0-9_]` aŭ `[^\w]`

La POSIX-notacio de klasoj, `[:<class name>:]` ankaŭ estas subtenataj. Ekzemple, `[:cifero:]` estas ekvivalenta al `\d`, kaj `[:space:]` al `\s`. Vidu la plenan liston de POSIX signoklasoj ĉi tie.

La mallongigitaj klasoj povas esti enmetitaj ene de propra klaso, ekzemple por kongrui kun vorta signo, spaceto aŭ punkto, vi povus skribi `[\w \.]`

#### Signoj kun specialaj signifoj ene de signoklasoj

La sekvaj signoj havas specialan signifon ene de la signo klaskonstruaĵo “[]”, kaj devas esti eskapitaj por esti laŭvorte inkluditaj en klaso:

`]`

  Finas la signoklason. Devas esti eskapata krom se ĝi estas la unua signo en la klaso (povas sekvi neeskapitan signon).

`^` (marko)

  Indikas negativan klason, se ĝi estas la unua signo. Devas esti eskapata por kongrui laŭvorte se ĝi estas la unua signo en la klaso.

`-` (streketo)

  Indikas logikan intervalon. Devas ĉiam esti eskapata ene de signoklaso.

`\` (malantaŭa oblikvo)

  La eskapa signo. Oni devas ĉiam eskapi.

### Alternativoj: kongrui “unu el”

Se vi volas kongrui kun unu el aro de alternativaj ŝablonoj, vi povas apartigi tiujn per `|` (vertikala streketo).

Ekzemple por trovi aŭ “Johano” aŭ “Harry” vi uzus esprimon `Johano|Harry`.

### Subŝablonoj

Subŝablonoj estas ŝablonoj enfermitaj en krampoj, kaj ili havas plurajn uzojn en la mondo de regulaj esprimoj.

#### Specifante alternativojn

Vi povas uzi subŝablon por grupigi aron da alternativoj en pli granda ŝablono. La alternativoj estas apartigitaj per la signo “|” (vertikala stango).

Ekzemple por kongrui kun iu ajn el la vortoj “int”, “float” aŭ “double”, vi povus uzi la ŝablonon `int|float|double`. Se vi volas trovi nur unu se ĝi estas sekvata de iom da blankspaco kaj poste kelkaj literoj, metu la alternativojn ene de subŝablono: `(int|float|double)\s+\w+`.

#### Kaptante kongruan tekston (retroreferencoj)

Se vi volas uzi retroreferencon, uzu subŝablonon `(PATTERN)` por ke la dezirata parto de la ŝablono memoru. Por eviti ke la subŝablono estu memorita, uzu ne-kaptan grupon `(?:PATTERN)`.

Ekzemple, se vi volas trovi du aperon de la sama vorto apartigitaj per komo kaj eble iom da blankspaco, vi povus skribi `(\w+),\s*\1`. La subŝablono `\w+` trovus pecon da vortsignoj, kaj la tuta esprimo kongruus se tiuj estus sekvataj de komo, 0 aŭ pli da blankspaco kaj tiam egala parto de vortsignoj. (La ĉeno `\1` referencas al la unua subŝablono enfermita inter krampoj.)

### Rimarko

Por eviti ambiguaĵojn kun uzado de `\1` kun kelkaj ciferoj malantaŭ ĝi (ekz. `\12` povas esti 12-a subŝablono aŭ nur la unua subŝablono kun `2`) ni uzas `\{12}` kiel sintakson por plurciferaj subŝablonoj.

Ekzemploj:

- `\{12}1` estas “uzu subŝablon 12”

- `\123` estas “uzi kapton 1 tiam 23 kiel la normalan tekston”

#### Lookahead-Asertoj

Antaŭrigarda aserto estas subŝablono, komencanta aŭ `?=` aŭ `?!`.

Ekzemple por kongrui kun la laŭvorta ĉeno “Bill” sed nur se ne sekvata de “ Gates”, vi povus uzi ĉi tiun esprimon: `Bill(?! Gates)`. (Ĉi tio trovus “Bill Clinton” same kiel “Billy the kid”, sed silente ignorus la aliajn kongruojn.)

Subaj ŝablonoj uzataj por asertoj ne estas kaptitaj.

Vidu ankaŭ Asertoj.

#### Lookbehind Asertoj

Malantaŭa aserto estas subŝablono, komencante aŭ `?<=` aŭ `?<!`.

Rigardu malantaŭen havas la saman efikon kiel la rigardo antaŭen, sed funkcias malantaŭen. Ekzemple por kongrui kun la laŭvorta ĉeno “fruit” sed nur se ne antaŭita de “grape”, vi povus uzi ĉi tiun esprimon: `(?<!grape)fruit`.

Subaj ŝablonoj uzataj por asertoj ne estas kaptitaj.

Vidu ankaŭ Asertoj

### Signoj kun speciala signifo ene de ŝablonoj

La sekvaj signoj havas signifon ene de ŝablono, kaj devas esti eskapitaj se vi volas laŭvorte kongrui kun ili:

`\` (malantaŭa oblikvo)

  La eskapa signo.

`^` (marko)

  Asertas la komencon de la ĉeno.

`$`

  Asertas la finon de ĉeno.

`()` (maldekstra kaj dekstra krampoj)

  Indikas subajn ŝablonojn.

`{}` (maldekstre kaj dekstraj buklaj krampoj)

  Indikas nombrajn kvantorojn.

`[]` (maldekstre kaj dekstraj kvadrataj krampoj)

  Indikas signoklasojn.

`|` (vertikala stango)

  logika AŬ. Apartigas alternativojn.

`+` (plus-signo)

  Kvantigilo, 1 aŭ pli.

`*` (asterisko)

  Kvantigilo, 0 aŭ pli.

`?` (demandosigno)

  Nedeviga signo. Povas esti interpretita kiel kvantigilo, 0 aŭ 1.

Kvantigiloj
Kvantigiloj

## Kvantigiloj

Kvantigiloj permesas al regula esprimo kongrui kun difinita nombro aŭ gamo de nombroj de aŭ signo, signoklaso aŭ subŝablono.

Kvantigiloj estas enfermitaj en krampoj (`{` kaj `}`) kaj havas la ĝeneralan formon `{[minimum-okazoj][,[maksimum-okazoj]]}`

La uzado estas plej bone klarigita per ekzemplo:

`{1}`

  Ĝuste 1 okazo

`{0,1}`

  Nulo aŭ 1 okazoj

`{,1}`

  La sama, kun malpli da laboro ;)

`{5,10}`

  Almenaŭ 5 sed maksimume 10 okazoj.

`{5,}`

  Almenaŭ 5 okazoj, neniu maksimumo.

Aldone, estas kelkaj mallongigoj:

`*` (asterisko)

  simile al `{0,}`, trovi ajnan nombron da aperoj.

`+` (plus-signo)

  simila al `{1,}`, almenaŭ 1 okazo.

`?` (demandosigno)

  simila al `{0,1}`, nulo aŭ 1 okazo.

### Avideco

Kiam oni uzas kvantigilojn sen maksimumo, regulaj esprimoj defaŭlte kongruas kiel eble plej multe de la serĉata ĉeno, ofte konata kiel avida konduto.

Moderna regula esprimo programaro disponigas la rimedojn por “malŝalti avidecon”, kvankam en grafika medio dependas de la interfaco provizi al vi aliron al ĉi tiu funkcio. Ekzemple serĉa dialogo provizanta serĉon de regula esprimo povus havi markobutonon etikeditan “Minimuma kongruo” same kiel ĝi devus indiki ĉu avideco estas la defaŭlta konduto.

### En kunteksto ekzemploj

Jen kelkaj ekzemploj de uzado de kvantigiloj:

`^\d{4,5}\s`

  Kongruas kun la ciferoj en “1234 go” kaj “12345 nun”, sed nek en “567 dekunu” nek en “223459 ie”.

`\s+`

  Kongruas kun unu aŭ pluraj blankspacsignoj.

`(bla){1,}`

  Kongruas ĉiujn “blablabla” kaj la “bla” en “merlo” aŭ “tabla”.

`/?>`

  Kongruas “/>” en “<closeditem/>” same kiel “>” en “<penitem>”.

Asertoj
Asertoj

## Asertoj

Asertoj permesas al regula esprimo kongrui nur sub certaj kontrolitaj kondiĉoj.

Aserto ne bezonas signon por egali, ĝi prefere esploras la ĉirkaŭon de ebla kongruo antaŭ agnoski ĝin. Ekzemple la aserto vortlimo ne provas trovi nevortan signon kontraŭ vorto unu ĉe ĝia pozicio, anstataŭe ĝi certigas, ke ne estas vorta signo. Tio signifas, ke la aserto povas kongrui kie ne estas signo, t.s. ĉe la finoj de serĉata ĉeno.

Iuj asertoj efektive ja havas ŝablonon por kongrui, sed la parto de la ĉena kongruo kiu ne estos parto de la rezulto de la kongruo de la plena esprimo.

Regulaj Esprimoj kiel dokumentite ĉi tie subtenas la sekvajn asertojn:

`^` (marko: komenco de ĉeno)

  Kongruas kun la komenco de la serĉita ĉeno.

  La esprimo `^Peter` kongruos ĉe “Petro” en la ĉeno “Petro, he!” sed ne en “He, Petro!”

`$` (fino de ĉeno)

  Kongruas kun la fino de la serĉita ĉeno.

  La esprimo `you\?$` kongruos ĉe la lasta vi en la ĉeno “You didn't do that, did you?” sed nenie en “You didn't do that, right?”

`\b` (vortlimo)

  Kongruas se estas vortsigno ĉe unu flanko kaj ne vortsigno ĉe la alia.

  Ĉi tio utilas por trovi vortfinaĵojn, ekzemple ambaŭ finaĵojn por trovi tutan vorton. La esprimo `\bin\b` kongruos ĉe la aparta “in” en la ĉeno “He came in through the window”, sed ne ĉe la “in” en “window”.

`\B` (ne vortlimo)

  Kongruas kie ajn “\b” ne faras.

  Tio signifas, ke ĝi kongruos ekzemple ene de vortoj: La esprimo `\Bin\B` kongruos en “window” sed ne en “integer” aŭ “I'm in love”.

`(?=PATTERN)` (Pozitiva antaŭrigardo)

  Antaŭrigarda aserto rigardas la parton de la ĉeno sekvanta ebla kongruo. La pozitiva antaŭrigardo malhelpos la ĉenon kongrui se la teksto sekvanta la ebla kongruo ne kongruas kun la PATTERN de la aserto, sed la teksto kongrua per tio ne estos inkluzivita en la rezulto.

  La esprimo `handy(?=\w)` kongruos ĉe “handy” en “handyman” sed ne en “That came in handy!”

`(?!PATTERN)` (Negativa antaŭrigardo)

  La negativa antaŭrigardo malhelpas ebla kongruo esti agnoskita se la sekva parto de la serĉita ĉeno ja kongruas kun sia PATTERN.

  La esprimo `konst \w+\b(?!\s*&)` kongruos ĉe “const char” en la ĉeno “const char* foo” dum ĝi ne povas kongrui kun “const QString” en “const QString& bar” ĉar la “&” kongruas kun la negativa antaŭrigarda aserta ŝablono.

`(?<=PATTERN)` (Pozitiva rigardo malantaŭe)

  Rigardu malantaŭen havas la saman efikon kiel la rigardo antaŭen, sed funkcias malantaŭen. Malantaŭrigardo rigardas la parton de la ĉeno antaŭ ebla kongruo. La pozitiva postrigardo kongruos kun ĉeno nur se ĝi estas antaŭita de la PATTERN de la aserto, sed la teksto kongrua per tio ne estos inkluzivita en la rezulto.

  La esprimo `(?<=cup)cake` kongruos ĉe “cake” se ĝi estas sekvata de “cup” (en “cake” sed ne en “cheesecake” aŭ en “cake” sole).

`(?<!PATTERN)` (Negativa postrigardo)

  La negativa postrigardo malhelpas ebla kongruo esti agnoskita se la antaŭa parto de la serĉita ĉeno ja kongruas kun sia PATTERN.

  La esprimo `(?<![\w\.])[0-9]+` kongruos ĉe “123” en la ĉenoj “=123” kaj “-123” dum ĝi ne povas kongrui kun “123” en “.123” aŭ “vorto123”.

`(ŜABLONO)` (Kaptanta grupo)

  La subŝablono ene de la krampoj estas kaptita kaj memorita, tiel ke ĝi povas esti uzata en retroreferencoj. Ekzemple, la esprimo `(&quot;+)[^&quot;]*\1` kongruas kun `""""text""""` kaj `"teksto"`.

  Vidu la sekcion Kapti kongruan tekston (retroreferencoj) por pliaj informoj.

`(?:PATTERN)` (Ne-kapta grupo)

  La subŝablono ene de la krampoj ne estas kaptita kaj ne estas memorita. Estas preferinde ĉiam uzi nekaptajn grupojn, se la kaptoj ne estos uzataj.