summaryrefslogtreecommitdiffstats
path: root/tde-i18n-et/docs/tdebase/kate/advanced.docbook
blob: d7aa2d0e33ab9041658d2843f0b99288ef328211 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
<chapter id="advanced-editing-tools">
<chapterinfo>
<authorgroup>
<author>&Anders.Lund; &Anders.Lund.mail;</author>
<author>&Dominik.Haumann; &Dominik.Haumann.mail;</author>
<othercredit role="translator"><firstname>Marek</firstname><surname>Laane</surname><affiliation><address><email>bald@starman.ee</email></address></affiliation><contrib>Tõlge eesti keelde</contrib></othercredit> 
</authorgroup>
</chapterinfo>
<title>Täiustatud redigeerimisvahendid</title>

<sect1 id="advanced-editing-tools-comment">

<title>Kommentaari lisamine/eemaldamine</title>

<para>Käsud 'Lisa kommentaar' ja 'Eemalda kommentaar', mida saab kasutada menüüst <guimenu>Tööriistad</guimenu>, võimaldavad lisada valitud tekstiosale või kui midagi ei ole valitud, siis parajasti aktiivsele reale kommentaarimärgid või need sealt eemaldada. Seda muidugi juhul, kui parajasti redigeeritava teksti vorming kommentaare üldse kasutada lubab.</para>

<para>Reeglid, mil moel kommentaar välja näeb, on määratud süntaksi definitsioonis, nii et kui süntaksi esiletõstu ei kasutata, ei ole võimalik ka kommentaarimärke lisada või eemaldada. </para>

<para>Mõned vormingud defineerivad ühe rea kommentaarimärgid, mõned lubavad kommenteerida mitut rida korraga ja mõned mõlemat. Kui mitme rea kommentaarimärke ei ole saadaval, siis ei ole võimalik kommenteerida valikut, mille viimane rida ei ole valitud tervikuna.</para>

<para>Kui saadaval on ühe rea kommentaarimärgid, on võimaluse korral mõttekas kommenteerida üksikuid ridasid - nii saab ära hoida näiteks "kommentaari kommentaari sees".</para>

<para>Kommentaarimärkide eemaldamisel ei tohi olla valitud kommenteerimata teksti. Valikult mitmerealise kommentaarimärgistuse eemaldamisel eiratakse iga tühikut väljaspool kommentaarimärgistust.</para>

<para><indexterm><primary>kommentaar</primary></indexterm> Kommentaarimärkide lisamiseks kasuta menüükäsku <menuchoice><guimenu>Tööriistad</guimenu><guimenuitem>Kommentaar</guimenuitem></menuchoice> või vastavat kiirklahvikombinatsiooni, mis vaikimisi on <keycombo action="simul">&Ctrl;<keycap>D</keycap></keycombo>.</para>

<para><indexterm><primary>kommentaari eemaldamine</primary></indexterm> Kommentaarimärkide eemaldamiseks kasuta menüükäsku <menuchoice><guimenu>Tööriistad</guimenu><guimenuitem>Kommentaari eemaldamine</guimenuitem></menuchoice> või vastavat kiirklahvikombinatsiooni, mis vaikimisi on <keycombo action="simul">&Ctrl;&Shift;<keycap>D</keycap></keycombo>.</para>

</sect1>

<sect1 id="advanced-editing-tools-commandline">
<title>Redaktori käsureakomponent</title>

<para>Kate redaktorikomponent kasutab seesmist käsurida, mis võimaldab minimaalse GUI-ga väga mitmesuguseid toiminguid ette võtta. Käsurida on terminal redaktori allosas, mille saab nähtavaks muuta menüükäsuga <menuchoice><guimenu>Vaade</guimenu><guimenuitem>Lülitu käsureale</guimenuitem></menuchoice> või kiirklahviga (vaikimisi <keycombo action="simul"><keycap>F7</keycap></keycombo>). Redaktor pakub omalt poolt välja rea käske, mida tutvustatakse allpool, pluginad võivad neile veelgi lisa pakkuda.</para>

<para>Käsu käivitamiseks vajuta klahvi Enter. Käsurida annab märku, kas täitmine õnnestus ning näitab vajaduse korral teadet. Kui avasid käsurea klahviga <keycap>F7</keycap>, peidetakse see automaatselt mõne sekundi pärast. Teate eemaldamiseks ja uue käsu sisestamiseks vajuta uuesti klahvi <keycap>F7</keycap>.</para>

<para>Käsureal on omaenda abisüsteem, mille käivitamiseks anna käsk <command>help</command>. Kõigi võimalike käskude nägemiseks anna käsk <command>help list</command>, mõne konkreetse käsu abi nägemiseks käsk <command>help <replaceable>käsk</replaceable></command>.</para>

<para>Käsureal on ka omaenda mälu ehk ajalugu, mis võimaldab uuesti kasutada juba varem antud käske. Ajaloos saab liikuda klahvidega <keycap>Nool üles</keycap> ja <keycap>Nool alla</keycap>. Varasemate käskude näitamisel valitakse selle argument, mis võimaldab neid kergesti asendada.</para>

<sect2 id="advanced-editing-tools-commandline-commands">
<title>Standardsed käsureakäsud</title>

<sect3 id="advanced-editing-tools-commandline-commands-configure">
<title>Redaktori seadistamise käsud</title>

<para>Neid käske võimaldab kasutada redaktorikomponent ja need on mõeldud ainult aktiivse dokumendi ja vaate seadistamiseks. See on mugav juhul, kui sa ei soovi mingil põhjusel kasutada vaikeseadistusi (näiteks soovid teistmoodi treppida). </para>

<variablelist>
<title>Argumenditüübid</title>

<varlistentry>
<term>TÕEVÄÄRTUS</term>
<listitem><para>Seda kasutatakse käskude puhul, millega saab midagi sisse või välja lülitada. Väärtusteks võivad olla <userinput>on</userinput> ('sees'), <userinput>off</userinput> ('väljas'), <userinput>true</userinput> ('tõene'), <userinput>false</userinput> ('väär'), <userinput>1</userinput> või <userinput>0</userinput>.</para></listitem>
</varlistentry>

<varlistentry>
<term>TÄISARV</term>
<listitem><para>Täisarv</para></listitem>
</varlistentry>

<varlistentry>
<term>SÕNE</term>
<listitem><para>String</para></listitem>
</varlistentry>

</variablelist>

<variablelist>

<varlistentry>
<term><cmdsynopsis><command>set-tab-width</command><arg>TÄISARV laius</arg></cmdsynopsis></term>
<listitem><para>Määrab tabelduskoha laiuseks arvu <userinput>laius</userinput></para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-indent-width</command><arg>TÄISARV laius</arg></cmdsynopsis></term>
<listitem><para>Määrab taande laiuseks arvu <userinput>laius</userinput>. Ainult sel juhul, kui trepitakse tühikutega.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-word-wrap-column</command><arg>TÄISARV laius</arg></cmdsynopsis></term>
<listitem><para>Määrab sõnamurdmise korral rea laiuseks arvu <userinput>laius</userinput>. Ainult siis, kui teksti automaatne murdmine on sisse lülitatud.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-icon-border</command><arg>TÕEVÄÄRTUS enable</arg> </cmdsynopsis></term>
<listitem><para>Ikoonipiirde näitamine.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-folding-markers</command><arg>TÕEVÄÄRTUS enable</arg></cmdsynopsis></term>
<listitem><para>Voltimismärkide paneeli näitamine.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-line-numbers</command><arg>TÕEVÄÄRTUS enable</arg></cmdsynopsis></term>
<listitem><para>Reanumbrite paneeli näitamine.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-replace-tabs</command><arg>TÕEVÄÄRTUS enable</arg></cmdsynopsis></term>
<listitem><para>Sisselülitamisel asendatakse tabeldusmärgid kirjutamise ajal tühimärkidega. </para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-remove-trailing-space</command><arg>TÕEVÄÄRTUS enable</arg></cmdsynopsis></term>
<listitem><para>Sisselülitamisel eemaldatakse rea lõpus seisvad tühimärgid kohe pärast seda, kui kursor lahkub realt.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-show-tabs</command><arg>TÕEVÄÄRTUS enable</arg></cmdsynopsis></term>
<listitem><para>Sisselülitamisel näidatakse tabeldusmärke ja rea lõpus seisvaid tühimärke väikeste punktidena.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-indent-spaces</command><arg>TÕEVÄÄRTUS enable</arg></cmdsynopsis></term>
<listitem><para>Sisselülitamisel trepib redaktor igal treppimistasemel <option>indent-width</option>'iga määratud tühikutega, mitte aga tabeldusmärgiga.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-mixed-indent</command><arg>TÕEVÄÄRTUS enable</arg></cmdsynopsis></term>
<listitem><para>Sisselülitamisel kasutab Kate treppimisel tabeldus- ja tühimärkide segu. Iga treppimistase on laiusega <option>indent-width</option> ning täiendavaid treppimistasemeid optimeeritakse nii paljude tabeldusmärkide kasutamisega kui võimalik.</para>
<para>Käivitamisel rakendab see käsk ka treppimise tühikumärkidega ning kui taande laius ei ole määratud, määratakse see täitmise ajal kogu dokumendile poole <option>tab-width</option> väärtusele.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-word-wrap</command><arg>TÕEVÄÄRTUS enable</arg></cmdsynopsis></term>
<listitem><para>Dünaamilise reamurdmise sisselülitamine vastavalt <userinput>enable</userinput> väärtusele.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-replace-tabs-save</command><arg>TÕEVÄÄRTUS enable </arg></cmdsynopsis></term>
<listitem><para>Sisselülitamisel asendatakse tabeldusmärgid dokumendi salvestamisel tühimärkidega.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-remove-trailing-space-save</command><arg>TÕEVÄÄRTUS enable</arg></cmdsynopsis></term>
<listitem><para>Sisselülitamisel eemaldatakse dokumendi salvestamisel ridade lõpust tühikud.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-indent-mode</command><arg>nimi</arg></cmdsynopsis></term>
<listitem><para>Määrab automaatse treppimise režiimiks väärtuse <userinput>nimi</userinput>. Kui <userinput>nimi</userinput> pole tuntud, on režiimiks 'none' ehk 'puudub'. Sobivad režiimid on 'cstyle', 'csands', 'xml', 'python', 'varindent' ja 'none'.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>set-highlight</command><arg>esiletõst</arg></cmdsynopsis></term>
<listitem><para>Määrab dokumendi süntaksi esiletõstmise süsteemi. Argument peab olema kehtiv esiletõstu nimi, nagu seda näeb näiteks menüüs <menuchoice><guimenu>Tööriistad</guimenu><guisubmenu>Esiletõstmine</guisubmenu></menuchoice>. Käsk võimaldab argumendi lisamisel kasutada automaatset lõpetamist.</para></listitem>
</varlistentry>

</variablelist>

</sect3>

<sect3 id="advanced-editing-tools-commandline-commands-edit">
<title>Redigeerimiskäsud</title>

<para>Nende käskudega saab muuta aktiivset dokumenti.</para>

<variablelist>
<varlistentry>
<term><cmdsynopsis><command>indent</command></cmdsynopsis></term>
<listitem><para>Trepib valitud read või aktiivse rea.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>unindent</command></cmdsynopsis></term>
<listitem><para>Eemaldab valitud ridade või aktiivse rea treppimise.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>cleanindent</command></cmdsynopsis></term>
<listitem><para>Puhastab valitud ridade või aktiivse rea treppimise vastavalt dokumendi treppimisseadistustele. </para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>comment</command></cmdsynopsis></term>
<listitem><para>Lisab kommentaarimärgid, millega muuta valik või valitud read või aktiivne rida kommentaariks vastavalt tekstivormindusele, mille määrab dokumendi süntaksi esiletõstu definitsioon.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>uncomment</command></cmdsynopsis></term>
<listitem><para>Eemaldab kommentaarimärgid valikult või valitud ridadelt või aktiivselt realt vastavalt tekstivormindusele, mille määrab dokumendi süntaksi esiletõstu definitsioon.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>kill-line</command></cmdsynopsis></term>
<listitem><para>Kustutab aktiivse rea.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>replace</command><arg>muster</arg><arg>asendus</arg></cmdsynopsis></term>
<listitem><para>Asendab teksti, mille määrab <userinput>muster</userinput>, tekstiga, mille määrab <userinput>asendus</userinput>. Kui soovid, et <userinput>muster</userinput> sisaldaks tühimärki, tuleb nii <userinput>muster</userinput> kui ka <userinput>asendus</userinput> muuta ühe- või kahekordsete jutumärkidega tsitaadiks. Kui argumendid pole tsiteeritud, arvab käsk, et esimene sõna on <userinput>muster</userinput> ja ülejäänud <userinput>asendus</userinput>. Kui <userinput>asendus</userinput> andmata jätta, eemaldatakse kogu tekst, kus esineb <userinput>muster</userinput>.</para>
<para>Otsingule võib lisada lippe, milleks kirjuta koolon ja selle järele vajalik täht või tähed, nii et käsk võtab kuju <userinput>replace:võtmed muster asendus</userinput>. Kasutada saab järgmisi võtmeid: <variablelist>

<varlistentry>
<term><userinput>b</userinput></term>
<listitem><para>Otsing tagasisuunas</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>c</userinput></term>
<listitem><para>Otsing alates kursori asukohast.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>e</userinput></term>
<listitem><para>Otsing ainult valikus.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>r</userinput></term>
<listitem><para>Regulaaravaldise otsing. Selle korral võid anda <userinput>\N</userinput>, kus N on arv, mis tähistab asendusstringi hõivet.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>s</userinput></term>
<listitem><para>Tõstutundlik otsing.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>p</userinput></term>
<listitem><para>Loa küsimine iga asenduse korral.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>w</userinput></term>
<listitem><para>Ainult täissõnade sobivus.</para></listitem>
</varlistentry>

</variablelist>

</para>
</listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>date</command><arg>vorming</arg></cmdsynopsis></term>
<listitem><para>Kuupäeva/kellaajastring lisamine kujul, nagu selle määrab <userinput>vorming</userinput> või kui seda pole antud, siis kujul <quote>yyyy-MM-dd hh:mm:ss</quote>. Argument <userinput>vorming</userinput> võib esineda järgmisel kujul: <informaltable> <tgroup cols="2"> <tbody>
<row><entry><literal>d</literal></entry><entry>Päev arvuna ilma alustava nullita (1-31).</entry></row>
<row><entry><literal>dd</literal></entry><entry>Päev arvuna alustava nulliga (01-31).</entry></row>
<row><entry><literal>ddd</literal></entry><entry>Lühendatud ja lokaliseeritud päevanimi (nt. 'Esm', 'Püh').</entry></row>
<row><entry><literal>dddd</literal></entry><entry>Pikk ja lokaliseeritud päevanimi (nt. 'Esmaspäev', 'Pühapäev').</entry></row>
<row><entry><literal>M</literal></entry><entry>Kuu arvuna ilma alustava nullita (1-12).</entry></row>
<row><entry><literal>MM</literal></entry><entry>Kuu arvuna alustava nulliga (01-12).</entry></row>
<row><entry><literal>MMM</literal></entry><entry>Lühendatud ja lokaliseeritud kuunimi (nt. 'Jaan', 'Dets').</entry></row>
<row><entry><literal>yy</literal></entry><entry>Aasta kahekohalise arvuna (00-99).</entry></row>
<row><entry><literal>yyyy</literal></entry><entry>Aasta neljakohalise arvuna (1752-8000).</entry></row>
<row><entry><literal>h</literal></entry><entry>Tunnid ilma alustava nullita (0-23 või 1-12, kui näidatakse AM/PM).</entry></row>
<row><entry><literal>hh</literal></entry><entry>Tunnid alustava nulliga (00-23 või 01-12, kui näidatakse AM/PM).</entry></row>
<row><entry><literal>m</literal></entry><entry>Minutid ilma alustava nullita (0-59).</entry></row>
<row><entry><literal>mm</literal></entry><entry>Minutid alustava nulliga (00-59).</entry></row>
<row><entry><literal>s</literal></entry><entry>Sekundid ilma alustava nullita (0-59).</entry></row>
<row><entry><literal>ss</literal></entry><entry>Sekundid alustava nulliga (00-59).</entry></row>
<row><entry><literal>z</literal></entry><entry>Millisekundid ilma alustava nullita (0-999).</entry></row>
<row><entry><literal>zzz</literal></entry><entry>Millisekundid alustava nulliga (000-999).</entry></row>
<row><entry><literal>AP</literal></entry><entry>AM/PM kasutamine. AP asemele pannakse kas "AM" või "PM".</entry></row>
<row><entry><literal>ap</literal></entry><entry>am/pm kasutamine. ap asemele pannakse kas "am" või "pm".</entry></row>

</tbody>
</tgroup>
</informaltable>

</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>char</command><arg>identifikaator</arg></cmdsynopsis></term>
<listitem>
<para>See võimaldab sisestada tähemärke nende numbrilise koodi kaudu kümnend-, kaheksand- või kuueteistkümnendvormis. Selle kasutamiseks käivita redigeerimiskäsu dialoog, kirjuta sisendikasti <userinput>char: [number]</userinput> ja klõpsa nupule <guibutton>OK</guibutton>.</para>

<example>
<title><command>char</command> näited</title>

<para>Sisend: <userinput>char:234</userinput></para>
<para>Väljund: <computeroutput>&#234;</computeroutput></para>
<para>Sisend: <userinput>char:0x1234</userinput></para>
<para>Väljund: <computeroutput>&#x1234;</computeroutput></para>
</example>

</listitem>
</varlistentry>

<varlistentry>
<term>
<indexterm><primary>Asendamine sed-stiilis</primary>
<secondary>Otsimine sed-stiilis</secondary></indexterm>
<command>s///[ig]</command> <command>%s///[ig]</command></term>

<listitem>
<para>See käsk käivitab sedi-sarnase otsi/asenda-operatsiooni aktiivsel real või kogu failis (<command>%s///</command>).</para>

<para>Nii otsitakse tekst läbi, et leida sobivused <emphasis>otsingumustriga</emphasis>, st esimese ja teise kaldkriipsu vahele jääva regulaaravaldisega. Kui sobivus leitakse, asendatakse sobiv tekstiosa avaldisega stringi keskmise ja viimase kaldkriipsu vahel. Sulud otsingumustris tekitavad <emphasis>tagasiviidad</emphasis>, see tähendab, et käsk peab meeles, milline osa sobivusest vastas sulgudes olnule; neid stringe saab otsingumustris uuesti kasutada, viidates neile esimese sulukombinatsiooni puhul kui <userinput>\1</userinput>, teise puhul kui <userinput>\2</userinput> jne.</para>

<para>Otsimaks märki <literal>(</literal> või <literal>)</literal>, tuleb need <emphasis>varjestada</emphasis> längkriipsu kasutades: <userinput>\(\)</userinput></para>

<para>Kui kirjutada avaldise lõppu <userinput>i</userinput>, ei arvestata sobivuse juures tõstu ehk tähesuurust. Kui kirjutada lõppu <userinput>g</userinput>, asendatakse kõik mustri sobivused, muidu asendatakse ainult esimene sobivus.</para>

<example>

<title>Teksti asendamine aktiivses reas</title>

<para>Armas arvuti katkestas just äsja töö ja teatas, et lähtefaili real 3902 mainitud klass <classname>myClass</classname> ei ole defineeritud.</para>

<para>&quot;Neetud!&quot; mõtled sina: aga muidugi peab see olema <classname>MyClass</classname>. Lähed siis reale 3092 ja selle asemel, et püüda tekstist sõnakest üles leida, käivitad redigeerimiskäsu dialoogi, sisestad seal <userinput>s/myclass/MyClass</userinput>, vajutad nupule <guibutton>OK</guibutton>, salvestad faili ja kompileerid selle &ndash; edukalt ja ilma vigadeta.</para>

</example>

<example>
<title>Teksti asendamine kogu failis</title>

<para>Kujuta ette, et sul on fail, kus esineb mitu korda <quote>preili Maasikas</quote>, ja siis tuleb keegi, kes ütleb, et too neiu äsja abiellus ja kannab nüüd nime <quote>proua Vaarikas</quote>. On päris mõistetav, et sind tabab võitmatu iha kirjutada kõikjal tekstis <quote>preili Maasikas</quote> asemele <quote>proua Vaarikas</quote>.</para>

<para>Selleks käivita käsurida, anna käsk <userinput>%s/preili Maasikas/proua Vaarikas/</userinput>, vajuta klahvi Enter - ja asendused ongi tehtud.</para>

</example>

<example>
<title>Nõudlikum näide</title>

<para>See näide selgitab <emphasis>tagasiviidete</emphasis> ja <emphasis>märgiklasside</emphasis> kasutamist (kui sa ei tea, mis need on, vaata selgitusi edaspidi viidatud dokumentides).</para>

<para>Oletame, et sul on selline rida: <programlisting>void MyClass::DoStringOps( String      &amp;foo, String &amp;bar String *p, int  &amp;a, int &amp;b )</programlisting>
</para>
<para>Äkki taipad, et see pole mitte kõige kaunim kood, ja otsustad kasutada võtit <constant>const</constant> kõigi <quote>aadressiargumentide</quote> puhul (need on need, mille puhul argumendi ees seisab operaator &amp;). Ühtlasi tahad ühtlustada tühikute kasutamist, nii et iga sõna vahel oleks vaid üks tühik.</para>

<para>Käivita redigeerimiskäsu dialoog ja sisesta sinna: <userinput>s/\s+(\w+)\s+(&amp;)/ const \1 \2/g</userinput> ning vajuta nuppu <guibutton>OK</guibutton>. Avaldise lõpus paiknev <userinput>g</userinput> annab regulaaravaldisele korralduse rekompileerida iga sobivus <emphasis>tagasiviidete</emphasis> säilitamiseks.</para>

<para>Väljund: <computeroutput>void MyClass::DoStringOps( const String &amp;foo, const String &amp;bar String *p, const int &amp;a, const int &amp;b )</computeroutput></para>

<para>Ja ongi valmis! Mis siis tegelikult juhtus? Juhtus see, et me otsisime tühikut (<literal>\s+</literal>), millele järgneks üks või enam tähte (<literal>\w+</literal>), millele omakorda järgneks tühik (<literal>\s+</literal>) ja sellele omakorda ja-märk. Otsingu käigus salvestasime tähekombinatsioonid ja ja-märgid edasiseks kasutamiseks asendusoperatsioonis. Seejärel asendasime sobinud kohad tühikuga, millele järgneb <quote>const</quote>, millele järgneb tühik, millele järgneb meelde jäetud tähekombinatsioon (<literal>\1</literal>, millele järgneb tühik, millele järgneb meelde jäetud ja-märk (<literal>\2</literal>). Lihtne, eks ju?</para>

<para>Pane tähele, et mõnel juhul oli täheühendiks <quote>String</quote>, mõnel juhul aga <quote>int</quote>, nii et märgiklassi <literal>\w</literal> ja kvantori <literal>+</literal> kasutamine oli väga mõistlik tegu.</para>

</example>

</listitem>

</varlistentry>

</variablelist>

</sect3>

<sect3 id="advanced-editing-tools-commandline-commands-navigation">
<title>Liikumiskäsud</title>

<variablelist>

<varlistentry>
<term><cmdsynopsis><command>goto</command><arg>TÄISARV rida</arg></cmdsynopsis></term>
<listitem><para>Selle käsuga saab liikuda määratud reale.</para></listitem>
</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>find</command><arg>muster</arg></cmdsynopsis></term>
<listitem><para>Selle käsuga saab liikuda sinna, kus esimest korda esineb <userinput>muster</userinput>. Selle järgmisi esinemisi saab leida menüükäsuga <menuchoice><guimenu>Redigeerimine</guimenu><guimenuitem>Otsi järgmine</guimenuitem></menuchoice> (vaikimisi kiirklahv <keycap>F3</keycap>).</para>
<para>Otsimiskäsku saab täiendavalt seadistada, kui lisada koolon ja selle järele mõni võti, nii et käsk võtab kuju <userinput>find:võtmed muster</userinput>. Kasutada saab järgmisi võtmeid: <variablelist>

<varlistentry>
<term><userinput>b</userinput></term>
<listitem><para>Otsing tagasisuunas</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>c</userinput></term>
<listitem><para>Otsing alates kursori asukohast.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>e</userinput></term>
<listitem><para>Otsing ainult valikus.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>r</userinput></term>
<listitem><para>Regulaaravaldise otsing. Selle korral võid anda <userinput>\N</userinput>, kus N on arv, mis tähistab asendusstringi hõivet.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>s</userinput></term>
<listitem><para>Tõstutundlik otsing.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>w</userinput></term>
<listitem><para>Ainult täissõnade sobivus.</para></listitem>
</varlistentry>

</variablelist>

</para>

</listitem>

</varlistentry>

<varlistentry>
<term><cmdsynopsis><command>ifind</command><arg>muster</arg></cmdsynopsis></term>
<listitem><para>See käsk võimaldab otsimist <quote>lennult</quote>, see tähendab, otse kirjutamise ajal. Selle käitumist või otsingut saab seadistada käsule koolonit ja selle järele mõnda võtit lisades, nii et käsk võtaks kuju <userinput>ifind:võtmed muster</userinput>. Kasutada saab järgmisi võtmeid <variablelist>
<varlistentry>
<term><userinput>b</userinput></term>
<listitem><para>Otsing tagasisuunas</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>r</userinput></term>
<listitem><para>Regulaaravaldise otsing.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>s</userinput></term>
<listitem><para>Tõstutundlik otsing.</para></listitem>
</varlistentry>

<varlistentry>
<term><userinput>c</userinput></term>
<listitem><para>Otsing alates kursori asukohast.</para></listitem>
</varlistentry>

</variablelist>
</para></listitem>
</varlistentry>

</variablelist>

</sect3>

</sect2>

</sect1>

<sect1 id="advanced-editing-tools-code-folding">
<title>Koodi voltimise kasutamine</title>

<para>Koodi voltimine võimaldab peita redaktoris dokumendi osi, muutes nii eriti suured dokumendid lihtsamini jälgitavaks. &kate; arvutab voltimispiirkondi välja süntaksi esiletõstu definitsioonides antud reeglite põhjal, mistõttu see on kasutatav ainult teatud vormingutes - tavaliselt lähtekoodis, XML-märkekeeles ja muude selliste failide korral. Enamik koodivoltimist toetavaid esiletõstu definitsioone lubab ka kasutajal endal määrata voltimispiirkondi, mida tavaliselt tähistavad võtmesõnad <userinput>BEGIN</userinput> ja <userinput>END</userinput>.</para>

<para>Koodivoltimise kasutamiseks lülita sisse voltimismärgid käsuga <menuchoice><guimenu>Vaade</guimenu><guimenuitem>Voltimismärkide näitamine</guimenuitem></menuchoice>. Voltimismärkide paneel vasakus servas näitab graafiliselt voltimispiirkondi, märgid +/- osutavad antud piirkonnas võimalikele toimingutele: - tähendab, et piirkond on avatud ning märgil - klõpsamine suleb piirkonna, kusjuures - asendub märgiga +.</para>

<para>Voltimispiirkondades saab kasutada nelja käsku, mida tutvustab lähemalt <link linkend="view-code-folding">menüükäskude ülevaade</link>. </para>

<para>Kui sa ei soovi koodivoltimist kasutada, võid eemaldada märke valiku <guilabel>Voltimismärkide näitamine (kui võimalik)</guilabel> eest <link linkend="config-dialog-editor-appearance">redaktori seadistuste välimuse leheküljel</link>.</para>

</sect1>

<sect1 id="advanced-editing-tools-scripting">

<title>Skriptid redaktoris ja JavaScript</title>

<sect2 id="advanced-editing-tools-scripting-introduction">

<title>Sissejuhatus</title>

<para>Alates versioonist 2.5 toetab &kate; redaktorikomponent skripte, täpsemalt ECMA skriptikeelt, mida tuntakse ka JavaScripti nime all.</para>

<para>Skripte saab kasutada ainult <link linkend="advanced-editing-tools-commandline">sisseehitatud käsurea</link> vahendusel. Eelduseks on see, et skript asuks kataloogis, kust &kate; oskab selle üles leida, samuti võiks selle juurde kuuluda .desktop-fail, mis defineerib skripti omadused. Sobiv kataloog on &kate; andmekataloogide hulka kuuluv <filename>katepart/scripts</filename>. Andmekataloogid leiab käsuga <command>tde-config <option>--path</option> <parameter>data</parameter></command>. Tavaliselt on vähemalt süsteemi ja personaalne andmekataloog. Süsteemi andmekataloogi skriptid on mõistagi kättesaadavad kõigile süsteemi kasutajatele, personaalses kataloogis asuvad skriptid aga ainult vastavale kasutajale.</para>

<note><para>See võimalus on eksperimentaalne ja võib tulevikus üle elada mitmesuguseid muudatusi.</para>
<para>Me teame, et paljud pettuvad, kuna ei saa lisada oma skripte menüüsse ega omistada neile kiirklahve. Me vabandame ja loodame, et see saab kunagi võimalikuks.</para>
<para>Praegu ei ole ka võimalik edastada skriptidele mingeid argumente. Ole kannatlik ja ühel ilusal päeval saab ka see võimalikuks.</para>
</note>

</sect2>

<sect2 id="advanced-editing-tools-scripting-reference">

<title>Kate JavaScripti API</title>

<para>Me toome siin ära kõik funktsioonid ja omadused, mis on saadaval objektidele <type>document</type> ja <type>view</type>. Lisaks saab kasutada mõistagi kõiki standardseid objekte nagu <type>Math</type>, <type>String</type>, <type>Regex</type> ja nii edasi.</para>

<para>Skripti käivitamisel on <classname>document</classname> objekt aktiivne dokument ja <classname>view</classname> objekt akiivne vaade.</para>

<note><para>Argumentide tüübid ei ole loomulikult praegu JavaSrciptis kasutusel, need osutavad ainult sellele, millist laadi väärtust funktsioonid ootavad.</para></note>

<variablelist id="advanced-editing-tools-scripting-global">
<title>Globaalsed funktsioonid</title>
<varlistentry>
<term><function>debug( <parameter><replaceable>string</replaceable></parameter>) [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>string</parameter> string väljundile</para>
</listitem>
</itemizedlist>
<para>Saadab stringi standardveaväljundisse <acronym>STDERR</acronym> <function>kdDebug()</function> vahendusel. Väljundiks kasutatakse spetsiaalset väljundipiirkonda, mille prefiks on <computeroutput>Kate (KJS Scripts):</computeroutput> </para>
</listitem>
</varlistentry>
</variablelist>

<variablelist id="advanced-editing-tools-scripting-document">
<title><classname>document</classname> API</title>

<varlistentry>
<term><function>document.attribute( <parameter><replaceable>rida</replaceable> </parameter>, <parameter><replaceable>veerg</replaceable></parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>uint rida</parameter> rida, millele atribuut leitakse.</para></listitem>
<listitem><para><parameter>uint veerg</parameter> veerg, millele atribuut leitakse.</para></listitem>
</itemizedlist>
<para>Tagastab atribuudi arvulise ID dokumendi asukohas [<parameter>rida</parameter>,<parameter>veerg</parameter>]. Atribuut tähistab visuaalset välimust või teksti stiili, seda kasutatakse ka teksti spetsiifilise osa süntaksi esiletõstu arvutamisel sellistes segavormingutes nagu HTML või PHP.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.canBreakAt( <parameter>Char c</parameter>, <parameter>uint atribuut</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>c</parameter> testitav märk</para></listitem>
<listitem><para><parameter>atribuut</parameter> atribuut <parameter>c</parameter> asukohas</para></listitem>
</itemizedlist>
<para>Tagastab, kas rida on lubatud murda märgi c juures atribuudiga atribuut. Tulemus saadakse esiletõstu uurides, millele kuulub atribuut, ja selgitades, milliste märkide korral on reamurdmine lubatud.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.canComment( <parameter>uint algus_atribuut</parameter>, <parameter>uint lõpp_atribuut</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>algus_atribuut</parameter> atribuut kommentaariks muudetava vahemiku alguses.</para></listitem>
<listitem><para><parameter>lõpp_atribuut</parameter> atribuut kommentaariks muudetava vahemiku lõpus.</para></listitem>
</itemizedlist>
<para>Tagastab, kas algus_atribuut ja lõpp_atribuut kuuluvad samasse süntaksi esiletõstu süsteemi. Kui kuuluvad, on kõik korras. </para>
<example>
<title>canComment kasutamine</title>
<programlisting>if ( document.canComment( document.attribute(1,0), document.attribute(5,0) ) ) {
    // 1,0 ja 5,0 kuuluvad samasse süntaksi esiletõstu süsteemi
}
</programlisting>
</example>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.clear(); [function]</function></term>
<listitem><para>Puhastab dokumendi.</para></listitem>
</varlistentry>

<varlistentry>
<term><function>document.commentStart( <parameter>uint atribuut</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>atribuut</parameter> teksti atribuut, millele hangitakse commentStart string.</para></listitem>
</itemizedlist>
<para>Tagastab stringi, mis on nõutav mitmerealise kommentaari alustamiseks antud atribuudiga tekstile või tühja stringi, kui antud teksti korral ei ole mitmerealised kommentaarid toetatud.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.commentMarker( <parameter>uint atribuut</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>atribuut</parameter> teksti atribuut, millele hangitakse commentMarker string.</para></listitem>
</itemizedlist>
<para>Tagastab stringi, mida kasutatakse ülejäänud rea märkimiseks kommentaarina antud atribuudiga tekstis või tühja stringi, kui antud teksti korral ei ole üherealised kommentaarid toetatud.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.commentEnd( <parameter>uint atribuut</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>atribuut</parameter> eksti atribuut, millele hangitakse commentEnd string.</para></listitem>
</itemizedlist>
<para>Tagastab stringi, mis on nõutav mitmerealise kommentaari lõpetamiseks antud atribuudiga tekstile või tühja stringi, kui antud teksti korral ei ole mitmerealised kommentaarid toetatud.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.editBegin(); [function]</function></term>
<listitem>
<para>Redigeerimisgrupi algus. Kõik toimingud, mis tehakse kuni väljakutseni editEnd(), rühmitatakse ühe tagasivõtmistoimingu alla.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.editEnd(); [function]</function></term>
<listitem>
<para>Redigeerimisgrupi lõpp.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.highlightMode; [property:read only]</function></term>
<listitem>
<para>Dokumendi esiletõstu režiimi nimi, näiteks JavaScript või C++. Kui dokumendile pole süntaksi esiletõstu määratud, väärtus puudub (None). Pane tähele, et sul tuleb kasutada ingliskeelset nime juhul, kui see erineb tõlgitud nimest.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.indentMode; [property:read only]</function></term>
<listitem>
<para>Dokumendi treppimise režiim, näiteks <literal>normal</literal> või <literal>cstyle</literal>. Pane tähele, et kui treppimise režiimi pole määratud, väärtus puudub (<literal>none</literal>). </para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.indentWidth; [property:read only]</function></term>
<listitem>
<para>Dokumendi taande laius. Seda kasutatakse siis, kui sisse on lülitatud treppimine tühikutega.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.insertLine( <parameter>uint rida</parameter>, <parameter>string tekst</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>rida</parameter> dokumendi reanumber</para>
</listitem>
<listitem><para><parameter>tekst</parameter> lisatav tekst</para></listitem>
</itemizedlist>
<para>Lisab uue rea tekstiga <parameter>tekst</parameter> reale <parameter>rida</parameter>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.insertText( <parameter>uint rida</parameter>, <parameter>uint veerg</parameter>, <parameter>string tekst</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>rida</parameter> reanumber</para></listitem>
<listitem><para><parameter>veerg</parameter> veerg</para></listitem>
<listitem><para><parameter>tekst</parameter> lisatav tekst</para></listitem>
</itemizedlist>
<para>Lisab teksti <parameter>tekst</parameter> reale <parameter>rida</parameter> ja veergu <parameter>veerg</parameter>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>document.length(); [function]</term>
<listitem>
<para>Tagastab dokumendi suuruse baitides.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.lines(); [function]</function></term>
<listitem>
<para>Tagastab dokumendi ridade arvu.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>document.mixedIndent; [property:read only]</term>
<listitem>
<para>Tõeväärtus, mis teatab, kas dokumendis on lubatud segastiilis treppimine. Kui on, siis on treppimine optimeeritud, et võimaldada tabeldusmärkide ja tühikute kasutamist segiläbi, nagu näiteks redaktor Emacs.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>document.removeLine( <parameter>uint rida</parameter> ); [function]</term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>rida</parameter> reanumber</para></listitem>
</itemizedlist>
<para>Kustutab dokumendis rea rida.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.removeText( <parameter>uint algusRida</parameter>, <parameter>uint algusVeerg</parameter>, <parameter>uint lõppRida</parameter>, <parameter>uint lõppVeerg</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>algusRida</parameter> määrab algusrea</para></listitem>
<listitem><para><parameter>algusVeerg</parameter> määrab algusveeru</para></listitem>
<listitem><para><parameter>lõppRida</parameter> määrab lõpprea</para></listitem>
<listitem><para><parameter>lõppVeerg</parameter> määrab lõppveeru</para></listitem>
</itemizedlist>
<para>Eemaldab teksti alates reast <parameter>algusRida</parameter> ja veerust <parameter>algusVeerg</parameter> kuni reani <parameter>lõppRida</parameter> jaa veeruni <parameter>lõppVeerg</parameter>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.setText( <parameter>string tekst</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>tekst</parameter> dokumendi tekst</para></listitem>
</itemizedlist>
<para>Määrab kogu dokumendi sisuks teksti <parameter>tekst</parameter>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.spaceIndent; [property:read only]</function></term>
<listitem>
<para>Tõeväärtus, mis teatab, kas dokumendis on lubatud treppimine tühikutega. Kui on, trepitakse dokumendis indentWidth arvu tühikutega taseme kohta, vastasel juhul ühe tabeldusmärgiga taseme kohta.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.textFull(); [function]</function></term>
<listitem>
<para>Tagastab dokumendi kogu teksti. Kui see on mitmel real, eristab ridu reavahetusmärk <constant>\n</constant>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.textLine( uint rida ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>rida</parameter> reanumber</para></listitem>
</itemizedlist>
<para>Tagastab teksti real <parameter>rida</parameter>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>document.textRange( <parameter>uint algusRida</parameter>, <parameter>uint algusVeerg</parameter>, <parameter>uint lõppRida</parameter>, <parameter>uint lõppVeerg</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>algusRida</parameter> määrab algusrea</para></listitem>
<listitem><para><parameter>algusVeerg</parameter> määrab algusveeru</para></listitem>
<listitem><para><parameter>lõppRida</parameter> määrab lõpprea</para>
</listitem>
<listitem><para><parameter>lõppVeerg</parameter> määrab lõppveeru</para></listitem>
</itemizedlist>
<para>Tagastab teksti määratud vahemikus. Kui see on mitmel real, eristab ridu reavahetusmärk <constant>\n</constant>.</para>
</listitem>
</varlistentry>

</variablelist><!--/ document API -->

<variablelist id="advanced-editing-tools-scripting-view">
<title><classname>view</classname> API</title>

<varlistentry>
<term><function>view.clearSelection(); [function]</function></term>
<listitem>
<para>Tühistab kogu teksti valimise.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.cursorColumn(); [function]</function></term>
<listitem>
<para>Tagastab kursori asukohaveeru (tabeldusmärgid laiendatakse).</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.cursorColumnReal(); [function]</function></term>
<listitem>
<para>Tagastab reaalse kursori asukohaveeru (tabeldusmärgid lähevad ühe ette).</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.cursorLine(); [function]</function></term>
<listitem>
<para>Tagastab kursori asukoharea.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.hasSelection(); [function]</function></term>
<listitem>
<para>Tagastab <constant>true</constant> (tõene), kui vaade sisaldab valitud teksti, vastasel juhul <constant>false</constant> (väär).</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.removeSelectedText(); [function]</function></term>
<listitem>
<para>Eemaldab valitud teksti, kui vaates on tekst valitud.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.selectAll(); [function]</function></term>
<listitem>
<para>Valib kogu teksti.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.selection(); [function]</function></term>
<listitem>
<para>Tagastab valitud teksti. Kui see on mitmel real, eristab ridu reavahetusmärk <constant>\n</constant>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.selectionEndColumn; [property:read only]</function></term>
<listitem>
<para>Tagastab valiku lõppveeru.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.selectionEndLine; [property:read only]</function></term>
<listitem>
<para>Tagastab valiku lõpprea.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.selectionStartColumn; [property:read only]</function></term>
<listitem>
<para>Tagastab valiku algusveeru.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.selectionStartLine; [property:read only]</function></term>
<listitem>
<para>Tagastab valiku algusrea.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.setCursorPosition( <parameter>uint rida</parameter>, <parameter>uint veerg</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>rida</parameter> määrab kursori rea.</para></listitem>
<listitem><para><parameter>veerg</parameter> määrab kursori veeru.</para></listitem>
</itemizedlist>
<para>Seab kursori vaates asukohta [<parameter>rida</parameter>, <parameter>veerg</parameter>]. See määrab kursori asukoha visuaalselt, mis tähendab, et tabeldusmärki arvestatakse vastavalt <replaceable>TAB laiusele</replaceable> sõltuvalt positsioonist reas. Kursori asukoht tuuakse nähtavale. Nii rida kui veergu hakatakse lugema nullist.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.setCursorPositionReal( <parameter>uint rida</parameter>, <parameter>uint veerg</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>rida</parameter> määrab kursori rea.</para></listitem>
<listitem><para><parameter>veerg</parameter> määrab kursori veeru.</para></listitem>
</itemizedlist>
<para>Seab kursori asukohta [<parameter>rida</parameter>, <parameter>veerg</parameter>]. See määrab kursori asukoha stringis, mis tähendab, et tabeldusmärki arvestatakse ühe ette. Kursori asukoht tuuakse nähtavale. Nii rida kui veergu hakatakse lugema nullist.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><function>view.setSelection( <parameter>uint algusRida</parameter>, <parameter>uint algusVeerg</parameter>, <parameter>uint lõppRida</parameter>, <parameter>uint lõppVeerg</parameter> ); [function]</function></term>
<listitem>
<itemizedlist>
<title>Parameetrid</title>
<listitem><para><parameter>algusRida</parameter> määrab algusrea</para></listitem>
<listitem><para><parameter>algusVeerg</parameter> määrab algusveeru</para></listitem>
<listitem><para><parameter>lõppRida</parameter> määrab lõpprea</para></listitem>
<listitem><para><parameter>lõppVeerg</parameter> määrab lõppveeru</para></listitem>
</itemizedlist>
<para>Määrab valiku alates reast <parameter>algusRida</parameter> ja veerust <parameter>algusVeerg</parameter> kuni reani <parameter>lõppRida</parameter> ja veeruni <parameter>lõppVeerg</parameter>.</para>
</listitem>
</varlistentry>

</variablelist>

<example id="advanced-editing-tools-scripting-example">

<title>Näidisskript</title>
<para>Me loome näidisena väikese skripti, mis muudab valiku suurtäheliseks. On selge, et kõigepealt tuleb kontrollida, kas valik on olemas. Kui on, hangime teksti, muudame selle tõstu ja asendame siis uuega. Teostus näeb välja selline:</para>

<programlisting>if ( view.hasSelection() )
{
  // uppercase selection
  column = view.selectionStartColumn;
  line = view.selectionStartLine;

  selection = view.selection().toUpperCase();

  document.editBegin();
  view.removeSelectedText();
  document.insertText( line, column, selection );
  document.editEnd();
}
</programlisting>

<para>Selle toimingu grupeerimiseks, et neid saaks tagasi võtta üheainsa käsuga <guimenuitem>Võta tagasi</guimenuitem>, tuleb kapseldada read <programlisting>view.removeSelectedText()</programlisting> ja <programlisting>document.insertText()</programlisting> järgmiste ridade vahele: <programlisting>document.editBegin()</programlisting> ja <programlisting>document.editEnd()</programlisting>.</para>

</example>

<example id="advanced-editing-tools-desktop-example">
<title><filename>.desktop</filename>-faili näidis</title>

<para>Toome siin eeltoodud skriptiga kaasneva .desktop-faili näidise.</para>

<programlisting># Example of a .desktop file
[Desktop Entry]
Encoding=UTF-8
Name=Kate Part JavaScript Uppercase
Comment=Script to uppercase the selection
X-Kate-Command=uppercase-selection
X-Kate-Help=&lt;p&gt;Usage: &lt;code&gt;uppercase-selection&lt;/code&gt;&lt;/p&gt;
</programlisting>

<para>Nagu näed, saad määrata kodeeringu, nime, kommentaari, abiteksti (X-Kate-Help) ning käsureanime (X-Kate-Command). Kirjed Name, Comment ja X-Kate-Help tõlgitakse automaatselt teistesse keeltesse, kui failid on KDE SVN-hoidlas, kus tõlkemeeskonnad saavad neile tõlked luua.</para>

</example>

<sect3>
<title>Kokkuvõte</title>

<para>&kate; otsib skriptikataloogidest (vaata <link linkend="advanced-editing-tools-scripting-introduction">eespool</link>) <filename>*.js</filename>-faile. Iga faili korral kontrollitakse, kas sellega kaasneb <filename>.desktop</filename>-fail: näiteks uppercase.js korral otsitakse faili uppercase.desktop. </para>
<para>Kui <filename>.desktop</filename>-faili ei leita, registreerib Kate komponendi käsurida skripti failinimega ilma laiendita .js, mis meie näite korral oleks lihtsalt <literal>uppercase</literal>. Kui selline nimi sobib ning sul pole vaja lisavõimalusi, mida pakub <filename>.desktop</filename>-fail, siis ei ole ka vajadust <filename>.desktop</filename>-faili luua. </para>
<para>Kui <filename>.desktop</filename>-fail on olemas, loeb Kate komponent nime, mille all skript registreerida .desktop-kirjest X-Kate-Command (meie näites X-Kate-Command=uppercase-selection).</para>

</sect3>

</sect2>

</sect1>

</chapter>