summaryrefslogtreecommitdiffstats
path: root/doc/de/autogen/user/weechat_commands.adoc
blob: bdecb1668ae52ccb81e99107279bd24a8a07d1b2 (plain) (blame)
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
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
[[command_weechat_away]]
* `+away+`: Abwesenheitsstatus setzen oder entfernen

----
/away  [-all] [<message>]

   -all: Abwesenheitsstatus auf allen verbundenen Server setzen oder entfernen
message: Abwesenheitsnachricht (ohne Angabe einer Nachricht wird der Abwesenheitszustand entfernt)
----

[[command_weechat_bar]]
* `+bar+`: Infobars verwalten

----
/bar  list|listfull|listitems
      add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
      default [input|title|status|nicklist]
      del <name>|-all
      set <name> <option> <value>
      hide|show|toggle <name>
      scroll <name> <window> <scroll_value>

         list: zeigt alle Infobars an
     listfull: zeigt eine detaillierte Liste aller Infobars an (ausführlich)
    listitems: zeigt alle Items an, die in den Infobars genutzt werden
          add: füge eine neue Infobar hinzu
         name: Name der Infobar (muss einmalig sein)
         type:   root: außerhalb eines Fensters,
               window: innerhalb eines Fensters, mit optionalen Bedingungen (siehe unten)
   conditions: Bedingungen für eine Infobar:
                 active: in einem aktiven Fenster
               inactive: in einem inaktiven Fenster
               nicklist: in Fenstern mit einer Benutzerliste
               weitere mögliche Bedingungen: siehe /help weechat.bar.xxx.conditions und /help eval
               ohne Angabe von Bedingungen wird die Infobar immer angezeigt
     position: bottom (unten), top (oben), left (links) oder right (rechts)
         size: Größe der Infobar (in Zeichen)
    separator: 1 um eine Trennlinien zu zeichnen, bei 0 oder ohne eine Angabe, wird keine Trennlinien gezeichnet
    item1,...: Items die in der Infobar genutzt werden sollen (Items können durch Kommata oder Leerzeichen getrennt werden ("+" (verbindet Items))
      default: erstellt standardisierte Infobars
          del: entfernt eine Infobar (alle Infobars können mit dem Argument "-all" entfernt werden).
          set: setzt einen Wert für Infobar
       option: Option, die verändert werden soll (für eine Liste aller möglichen Optionen bitte folgenden Befehl nutzen: /set weechat.bar.<barname>.*)
        value: neuer Wert für Option
         hide: Infobar wird ausgeblendet
         show: zeigt eine ausgeblendete Infobar an
       toggle: zeigt/versteckt eine Infobar
       scroll: scrollt Infobar hoch/runter
       window: Nummer des Fensters (nutze '*' für aktuelles Fenster oder für die Root-Bars)
 scroll_value: Werte für Scroll-Funktion: 'x' oder 'y' (optional), gefolgt von '+', '-', 'b' (Beginn) oder 'e' (Ende), Wert (für +/-), und optional % (zum scrollen der Breite/Höhe in %, ansonsten wird dieser Wert als Anzahl der Zeichen interpretiert um die gescrollt werden soll)

Beispiele:
  erstellt eine Infobar mit den Items: time, buffer number + name, und Vervollständigung:
    /bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
  versteckt die Infobar (meinebar):
    /bar hide meinebar
  scrollt die Benutzerliste im aktuellen Buffer um 10 Zeilen nach unten:
    /bar scroll nicklist * y+10
  scrollt zum Ende der Nicklist im aktuellen Buffer:
    /bar scroll nicklist * ye
----

[[command_weechat_buffer]]
* `+buffer+`: Buffer verwalten

----
/buffer  list
         add [-free] [-switch] <name>
         clear [<number>|<name>|-merged|-all [<number>|<name>...]]
         move <number>|-|+
         swap <number1>|<name1> [<number2>|<name2>]
         cycle <number>|<name> [<number>|<name>...]
         merge <number>|<name>
         unmerge [<number>|-all]
         hide [<number>|<name>|-all [<number>|<name>...]]
         unhide [<number>|<name>|-all [<number>|<name>...]]
         renumber [<number1> [<number2> [<start>]]]
         close [<n1>[-<n2>]|<name>...]
         notify <level>
         localvar [<number>|<name>]
         set <property> [<value>]
         get <property>
         <number>|-|+|<name>

    list: alle geöffneten Buffer werden aufgelistet (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
     add: öffnet einen neuen Buffer (dieser kann mit "/buffer close" oder "q" in der Eingabezeile, beendet werden)
   clear: leert den Inhalt des Buffers (entweder durch Angabe der entsprechenden Nummer des Buffers oder "-merged " für zusammengefügte Buffer oder "-all" für alle Buffer. Ohne Angabe eines Arguments wird der aktuelle Buffer gelöscht)
    move: Buffer in der Liste verschieben (kann auch relativ sein, z.B. -1); "-" = auf erste Position verschieben, "+" = auf letzte Position + 1 verschieben
    swap: tauscht zwei Buffer miteinander aus (bei Angabe von nur einem Buffer (Buffernummer/-name), wird der aktuelle Buffer mit dem angegebenen Buffer getauscht)
   cycle: springt in einer Schleife von einem Buffer zum nächsten, die in einer Liste angegeben werden
   merge: fügt den aktuellen Buffer mit einem anderen Buffer zusammen (bei einem Chat-Buffer werden zwei Buffer zusammengefügt
         (Bei der Standardtastenbelegung wird mittels "CTRL-x" zwischen zusammengefügten Buffern umgeschaltet)
 unmerge: trennt Buffer wieder voneinander, falls zwei Buffer die selbe Nummer teilen
    hide: versteckt einen Buffer
  unhide: macht Buffer wieder sichtbar
renumber: Buffer werden umnummeriert (Einstellung weechat.look.buffer_auto_renumber muss deaktiviert sein)
   close: Buffer schließen (Nummer oder Bereich ist optional)
  notify: setzt den Status der Benachrichtigung für den aktuellen Buffer. Folgende Möglichkeiten bestimmen den Grad der Benachrichtigung und ob der Buffer in der Hotlist angezeigt wird:
            none: keine Benachrichtigung
       highlight: Benachrichtigung bei hervorgehobenen Nachrichten (Highlights)
         message: Benachrichtigung bei Nachrichten von Usern + Highlights
             all: Benachrichtigung bei allen Nachrichten
           reset: Benachrichtigung auf Standardwert zurück setzen (all)
localvar: zeigt die lokalen Variablen für den aktuellen Buffer an
     set: setzt eine Eigenschaft für den aktuellen Buffer
     get: zeigt eine Eigenschaft für den aktuellen Buffer an
  number: wechselt von einem Buffer zu einem anderen, mögliche Optionen:
          '+': relativer Sprung um 'n'-Buffer
          '-': relativer Sprung, um 'n'-Buffer
          '*': wechselt zum Buffer mit der Nummer 'n'; nutzt die interne Einstellung "weechat.look.jump_current_to_previous_buffer"
       -: springt zum ersten Buffer
       +: springt zum letzten Buffer
    name: wechselt zum Buffer mit dem angegebenen Namen (Name muss nicht vollständig sein!)

Beispiele:
  leert den aktuellen Buffer:
    /buffer clear
  verschiebt Buffer auf Position 5:
    /buffer move 5
  tauscht Buffer 1 und 3:
    /buffer swap 1 3
  tauscht Buffer #weechat und den aktuellen Buffer:
    /buffer swap #weechat
  springt in einer Schleife zu den Buffern #chan1, #chan2, #chan3:
    /buffer cycle #chan1 #chan2 #chan3
  verbindet Buffer mit dem Core-Buffer:
    /buffer merge 1
  verbindet Buffer mit #weechat buffer:
    /buffer merge #weechat
  trennt Buffer voneinander:
    /buffer unmerge
  schließt aktuellen Buffer:
    /buffer close
  schließt Buffer 5 bis 7:
    /buffer close 5-7
  springt zum Buffer: #weechat:
    /buffer #weechat
  springt zum nächsten Buffer:
    /buffer +1
  springt zum letzten Buffer:
    /buffer +
----

[[command_weechat_color]]
* `+color+`: definiert Farbaliase und stellt eine Palette der möglichen Farben dar

----
/color  alias <color> <name>
        unalias <color>
        reset
        term2rgb <color>
        rgb2term <rgb> [<limit>]
        -o

  alias: weist einer Farbzahl einen Namen zu
unalias: entfernt einen Namen
  color: Farbnummer (>= 0, maximale Anzahl ist abhängig vom Terminal, üblicherweise 63 oder 255 Farben)
   name: Alternativname für eine Farbe (zum Beispiel: "orange")
  reset: setzt alle Farbpaarungen zurück (nützlich falls keine Farbpaarung mehr verfügbar sein sollte und die automatische Reset-Option deaktiviert ist, siehe Einstellung: "weechat.look.color_pairs_auto_reset")
term2rgb: konvertiert eine Terminalfarbe (0-255) in eine RGB Farbe
rgb2term: konvertiert eine RGB Farbe in eine Terminalfarbe (0-255)
   limit: Anzahl an Farben die aus der Terminalpalette genutzt werden sollen (beginnend von 0); Standardwert: 256
     -o: sendet Terminal-/Farbinformationen in den aktuellen Buffer

Ohne Angabe von Argumenten wird in einem separaten Buffer die darstellbare Farbpalette angezeigt.

Beispiele:
  der Farbe 214 wird das Alias "orange" zugeordnet:
    /color alias 214 orange
  löscht die Farbe 214:
    /color unalias 214
----

[[command_weechat_command]]
* `+command+`: führe explizit einen WeeChat Befehl oder eine Erweiterung aus

----
/command  [-buffer <name>] <plugin> <command>

-buffer: Befehl wird in diesem Buffer ausgeführt
 plugin: Befehl der angegeben Erweiterung wird ausgeführt; 'core' für einen internen WeeChat Befehl, '*' automatisierte Auswahl (entscheidend ist der Buffer in welchem der Befehl ausgeführt wird)
command: auszuführender Befehl (es wird automatisch ein '/' vorangestellt, falls dieser nicht angegeben wurde)
----

[[command_weechat_cursor]]
* `+cursor+`: Cursor kann frei auf dem Bildschirm bewegt werden, um Aktionen in bestimmten Bildschirmbereichen auszuführen

----
/cursor  go chat|<bar>|<x>,<y>
         move up|down|left|right|area_up|area_down|area_left|area_right
         stop

  go: setzt den Cursor in den Chat Bereich, in eine Bar (Name der Bar muss angegeben werden) oder auf die Koordinaten "x,y"
move: Cursor wird in die entsprechende Richtung bewegt
stop: beendet den Cursor-Modus

Ohne Angabe von Argumenten wird der Cursor-Modus umgeschaltet.

Ist die Mausfunktion aktiviert (siehe /help mouse), startet man den Cursor-Modus mit der mittleren Maustaste und positioniert den Cursor auf diesen Punkt.

Standardtastenbefehle im Chatbereich:
  m  zitiere Nachricht
  q  zitiere Präfix + Nachricht
  Q  zitiere Zeit + Präfix + Nachricht

Standardtastenbefehle in Nickliste:
  b  banne Nick (/ban)
  k  kicke Nick (/kick)
  K  kicke und banne Nick (/kickban)
  q  öffne private Unterhaltung mit Nick (/query)
  w  hole Informationen über Anwender (/whois)

weitere Standardtasten im Cursor-Modus:
  Pfeiltasten      bewege Cursor
  alt+Pfeiltasten  bewege Cursor zum nächsten Bereich
  enter            beendet den Cursor-Modus

Beispiele:
  gehe zur Benutzerliste:
    /cursor go nicklist
  gehe zu den Koordinaten x=10, y=5:
    /cursor go 10,5
----

[[command_weechat_debug]]
* `+debug+`: Debug-Funktionen

----
/debug  list
        set <plugin> <level>
        dump [<plugin>]
        buffer|color|infolists|memory|tags|term|windows
        mouse|cursor [verbose]
        hdata [free]
        time <command>

     list: zeigt alle Erweiterungen mit Debuglevel an
      set: setzt den Level der Protokollierung für eine Erweiterung
   plugin: Name der Erweiterung ("core" für den WeeChat Kern)
    level: Debuglevel der Erweiterung (0 = deaktiviert Debug)
     dump: Speicherabbild in die WeeChat Protokolldatei schreiben (wie bei einem Programmabsturz)
   buffer: speichert den Bufferinhalt als hexadezimale Ausgabe in die Protokolldatei
    color: zeigt Informationen über die aktuellen Farbpaarungen an
   cursor: schaltet den debug-Modus für den Cursor-Modus ein/aus
     dirs: Verzeichnisse werden angezeigt
    hdata: zeigt Informationen zu hdata an (mittels free werden alle hdata Informationen aus dem Speicher entfernt)
    hooks: zeigt die aktiven Hooks an
infolists: zeigt Information über die Infolists an
     libs: zeigt an welche externen Bibliotheken verwendet werden
   memory: gibt Informationen über den genutzten Speicher aus
    mouse: schaltet den debug-Modus für den Maus-Modus ein/aus
     tags: zeigt für jede einzelne Zeile die dazugehörigen Schlagwörter an
     term: gibt Informationen über das Terminal und verfügbare Farben aus
  windows: zeigt die Fensterstruktur an
     time: misst die Zeit um einen Befehl auszuführen oder um einen Text in den aktuellen Buffer zu senden
----

[[command_weechat_eval]]
* `+eval+`: evaluierter Ausdruck

----
/eval  [-n|-s] <expression>
       [-n] -c <expression1> <operator> <expression2>

        -n: gibt das Ergebnis aus, ohne das dieses in den Buffer gesendet wird (debug Modus)
        -s: teilt Ausdrücke bevor sie evaluiert werden (mehrere Befehle können durch Semikolon getrennt werden)
        -c: Auswertung als Bedingung: nutzt Operatoren und runde Klammern, Rückgabewert als Boolean-Wert ("0" oder "1")
expression: Ausdruck welcher verarbeitet werden soll. Variablen im Format ${variable} werden ersetzt (siehe unten); mehrere Befehle werden durch ein Semikolon voneinander getrennt
  operator: ein logischer oder vergleichender Operand:
            - logische Operanden:
                &&  boolean "und"
                ||  boolean "oder"
            - vergleichende Operanden:
                ==  gleich
                !=  ungleich
                <=  kleiner oder gleich
                <   kleiner
                >=  größer oder gleich
                >   größer
                =~  stimmt mit regulärem POSIX Ausdruck überein
                !~  stimmt NICHT mit regulärem POSIX Ausdruck überein
                =*  stimmt mit Maske überein (Platzhalter "*" ist erlaubt)
                !*  stimmt mit Maske NICHT überein (Platzhalter "*" ist erlaubt)

Ein Ausdruck gilt als "wahr" sofern das Ergebnis weder NULL, nicht leer und von "0" abweichend ist.
Für einen Vergleich werden Fließkommazahlen genutzt sofern es sich bei beiden Ausdrücken um gültige Nummer handelt, folgende Formate werden unterstützt:
  - Integer (Beispiele: 5, -7)
  - Fließkommazahl (Beispiele: 5.2, -7.5, 2.83e-2)
  - hexadezimale Zahl (Beispiele: 0xA3, -0xA3)
Um einen Vergleich zwischen zwei Zeichenketten zu erzwingen, müssen die Ausdrücke in Anführungszeichen gesetzt werden, zum Beispiel:
  50 > 100      ==> 0
  "50" > "100"  ==> 1

Einige Variablen werden im Ausdruck, mittels der Formatierung ${variable}, ersetzt. Mögliche Variablen sind, nach Reihenfolge ihrer Priorität:
  1. eine evaluierte Teilzeichenkette (Format: "eval:xxx")
  2. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx")
  3. Zeichen welche in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
  4. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:+Max,Suffix,Zeichenkette")
     oder maximale Anzahl an Zeichen die auf dem Bildschirm angezeigt werden sollen (Format: "cutscr:Max,Suffix,Zeichenkette oder "cutscr:+Max,Suffix,Zeichenkette")
  5. Ende einer Zeichenkette nutzen (Format: "rev:xxx")
  6. Wiederholung einer Zeichenkette  (Format: "repeat:Anzahl,Zeichenkette")
  7. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")
  8. eine Info (Format: "info:Name,Argumente", Argumente sind optional)
  9. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
  10. eine Umgebungsvariable (Format: "env:XXX")
  11. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
  12. eine Option (Format: "file.section.option")
  13. der Name einer lokalen Variablen eines Buffer
  14. ein hdata Name/Variable (der Wert wird automatisch in eine Zeichenkette konvertiert), standardmäßig wird für "window" und "buffer" das aktuelle Fenster/Buffer verwendet.
Das Format für hdata kann wie folgt aufgebaut sein:
  hdata.var1.var2...: startet mit hdata (der Pointer muss bekannt sein) und fragt eine Variable nach der anderen ab (weitere hdata können folgen)
  hdata[list].var1.var2...: startet hdata mittels einer Liste, zum Beispiel:
    ${buffer[gui_buffers].full_name}: der vollständige Name des ersten Buffers, in der verknüpften Liste aller Buffer
    ${plugin[weechat_plugins].name}: Name der ersten Erweiterung, in der verknüpften Liste aller Erweiterungen
  hdata[pointer].var1.var2...: startet hdata mittels einem Pointer, zum Beispiel:
    ${buffer[0x1234abcd].full_name}: vollständiger Name eines Buffers und des dazugehörigen Pointers (kann in triggern benutzt werden)
Die vorhandenen Namen für hdata und Variablen sind in der "Anleitung für API Erweiterung", Bereich "weechat_hdata_get". beschrieben

Beispiele (einfache Zeichenketten):
  /eval -n ${info:version}                       ==> 0.4.3
  /eval -n ${env:HOME}                           ==> /home/user
  /eval -n ${weechat.look.scroll_amount}         ==> 3
  /eval -n ${sec.data.freenode_password}         ==> geheim
  /eval -n ${window}                             ==> 0x2549aa0
  /eval -n ${window.buffer}                      ==> 0x2549320
  /eval -n ${window.buffer.full_name}            ==> core.weechat
  /eval -n ${window.buffer.number}               ==> 1
  /eval -n ${\t}                                 ==> <tab>
  /eval -n ${hide:-,${relay.network.password}}   ==> --------
  /eval -n ${cut:3,+,test}                       ==> tes+
  /eval -n ${cut:+3,+,test}                      ==> te+
  /eval -n ${date:%H:%M:%S}                      ==> 07:46:40
  /eval -n ${if:${info:term_width}>80?big:small} ==> big
  /eval -n ${rev:Hello}                          ==> olleH
  /eval -n ${repeat:5,-}                         ==> -----

Beispiele (Bedingungen):
  /eval -n -c ${window.buffer.number} > 2  ==> 0
  /eval -n -c ${window.win_width} > 100    ==> 1
  /eval -n -c (8 > 12) || (5 > 2)          ==> 1
  /eval -n -c (8 > 12) && (5 > 2)          ==> 0
  /eval -n -c abcd =~ ^ABC                 ==> 1
  /eval -n -c abcd =~ (?-i)^ABC            ==> 0
  /eval -n -c abcd =~ (?-i)^abc            ==> 1
  /eval -n -c abcd !~ abc                  ==> 0
  /eval -n -c abcd =* a*d                  ==> 1
----

[[command_weechat_filter]]
* `+filter+`: Filterfunktion um Nachrichten in Buffern aus- oder einzublenden, dazu können Schlagwörter oder reguläre Ausdrücke verwendet werden

----
/filter  list
         enable|disable|toggle [<name>|@]
         add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex>
         rename <name> <new_name>
         del <name>|-all

      list: alle Filter auflisten
    enable: Filter wird aktiviert (Filter werden standardmäßig aktiviert)
   disable: Filter deaktivieren
    toggle: Filter umschalten
      name: Name des Filters ("@" = aktiviert/deaktiviert alle Filter im aktuellen Buffer)
       add: Filter hinzufügen
addreplace: erzeugt neuen Filter oder ersetzt einen schon existierenden Filter
    rename: benennt einen Filter um
       del: Filter entfernen
      -all: entfernt alle Filter
    buffer: durch Kommata getrennte Liste von Buffer in denen der Filter aktiv sein soll:
            - ist der vollständige Name eines Buffer inklusive seiner Erweiterung (Beispiel: "irc.freenode.#weechat" oder "irc.server.freenode")
            - "*" bedeutet, alle Buffer
            - beginnt ein Name mit '!' wird für diesen Buffer kein Filter genutzt
            - Platzhalter "*" kann verwendet werden
      tags: durch Kommata getrennte Liste von Schlagwörtern. Zum Beispiel: "irc_join,irc_part,irc_quit"
            - logisch "und": mittels "+" zwischen den Tags (zum Beispiel: "nick_toto+irc_action")
            - Platzhalter "*" kann verwendet werden
            - wird ein Tag mit '!' eingeleitet, dann muss dieser Tag NICHT in der Nachricht enthalten sein
     regex: erweiterter regulärer POSIX Ausdruck, um in einer Zeile zu suchen
            - das Präfix (z.B. Nick) wird mittels '\t' von der Nachricht getrennt. Sonderzeichen wie '|' müssen mit einer Escapesequenz : '\|' eingebunden werden)
            - wird ein regulärer Ausdruck mit '!' eingeleitet dann wird das übereinstimmende Ergebnis umgekehrt (nutze '\!' um mit '!' zu beginnen)
            - es werden zwei reguläre Ausdrücke erstellt: Der erste für den Präfix und der zweite für die eigentliche Nachricht
            - reguläre Ausdrücke unterscheiden nicht zwischen Groß- und Kleinschreibung. Um zwischen Groß- und Kleinschreibung zu unterscheiden müssen diese mit "(?-i)" eingeleitet werden.

Mit der Tastenvoreinstellung alt+'=' kann die globale Filterfunktion (de-)aktiviert werden und alt+'-' (de-)aktiviert die Filterfunktion für den aktuellen Buffer.

Die am häufigsten gebrauchten Schlagwörter lauten:
  no_filter, no_highlight, no_log, log0..log9 (log Level),
  notify_none, notify_message, notify_private, notify_highlight,
  self_msg, nick_xxx (xxx ist der Nickname), prefix_nick_ccc (ccc ist die Farbe mit der der Nick dargestellt wird),
  host_xxx (xxx ist der Username + Host in Nachricht),
  irc_xxx (xxx ist durch einen IRC-Befehl/-Nummer zu ersetzen, siehe /server raw oder /debug tags)
  irc_numeric, irc_error, irc_action, irc_ctcp, irc_ctcp_reply, irc_smart_filter, away_info.
Mittels "/debug tags" kann man sich die Schlagwörter jeder einzelnen Zeile darstellen lassen.

Beispiele:
  aktiviert den intelligenten IRC Filter für alle Buffer:
    /filter add irc_smart * irc_smart_filter *
  aktiviert den intelligenten IRC Filter für alle Buffer, außer Buffer die "#weechat" im Namen tragen:
    /filter add irc_smart *,!*#weechat* irc_smart_filter *
  filtert alle IRC join/part/quit Nachrichten:
    /filter add joinquit * irc_join,irc_part,irc_quit *
  filtert Nicks wenn diese den Channel betreten oder durch den Befehl "/names" angezeigt werden:
    /filter add nicks * irc_366 *
  filtert Nick "toto" im IRC Channel #weechat:
    /filter add toto irc.freenode.#weechat nick_toto *
  filtert IRC join/action Nachrichten von Nick "toto":
    /filter add toto * nick_toto+irc_join,nick_toto+irc_action *
  filtert Zeilen die "weechat sucks" im IRC Channel #weechat enthalten:
    /filter add sucks irc.freenode.#weechat * weechat sucks
  filter Zeilen die exakt "WeeChat sucks" lauten und das in allen Buffern:
    /filter add sucks2 * * (?-i)^WeeChat sucks$
----

[[command_weechat_help]]
* `+help+`: Zeigt einen Hilfstext für Befehle und Einstellungen an

----
/help  -list|-listfull [<plugin> [<plugin>...]]
       <command>
       <option>

    -list: zeigt alle Befehle, nach Erweiterungen sortiert (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
-listfull: zeigt alle Befehle mit Beschreibung, nach Erweiterung
   plugin: zeigt Befehle explizit für diese Erweiterung an
  command: Name eines Befehls
   option: Name einer Einstellung (nutze /set um Einstellungen anzeigen zu lassen)
----

[[command_weechat_history]]
* `+history+`: Zeigt den Befehlsverlauf des Buffers

----
/history  clear
          <value>

clear: löscht den Befehlsverlauf
value: Anzahl der gewünschten Einträgen im Befehlsverlauf anzeigen
----

[[command_weechat_input]]
* `+input+`: Funktionen für die Befehlszeile

----
/input  <action> [<arguments>]

Auflistung der möglichen Aktionen:
  return: simuliert die "enter" Taste
  complete_next: vervollständigt Wort mit nächster Komplettierung
  complete_previous: vervollständigt Word mit vorheriger Komplettierung
  search_text_here: Textsuche ab aktueller Position
  search_text: Textsuche im Buffer
  search_switch_case: schaltet Groß-/Kleinschreibung ein und aus
  search_switch_regex: Wechsel des Suchmodus: einfache Textsuche/reguläre Ausdrücke
  search_switch_where: wechselt Suche in Nachricht/Präfix
  search_previous: sucht vorheriger Zeile
  search_next: sucht nächste Zeile
  search_stop_here: beendet Suche ab aktueller Position
  search_stop: suche beenden
  delete_previous_char: entfernt vorheriges Zeichen
  delete_next_char: entfernt nächstes Zeichen
  delete_previous_word: entfernt vorheriges Wort
  delete_next_word: entfernt nächstes Wort
  delete_beginning_of_line: entfernt alle Zeichen ab Zeilenanfang bis zum Cursor
  delete_end_of_line: entfernt alle Zeichen ab Cursor bis zum Ende der Zeile
  delete_line: löscht die komplette Eingabezeile
  clipboard_paste: fügt Zeichenkette aus der internen Zwischenablage ein
  transpose_chars: Zeichen austauschen
  undo: letzten Befehl in der Eingabezeile rückgängig machen
  redo: letzten Befehl in der Eingabezeile wiederherstellen
  move_beginning_of_line: springt an den Anfang der Eingabezeile
  move_end_of_line: springt ans Ende der Eingabezeile
  move_previous_char: setzt den Cursor eine Position nach links
  move_next_char: setzt den Cursor eine Position nach rechts
  move_previous_word: springt zum Anfang des vorherigen Wortes, in der Eingabezeile
  move_next_word: springt zum Anfang des nächsten Wortes, in der Eingabezeile
  history_previous: ruft vorherigen Befehl oder Nachricht aus dem Befehlsspeicher auf (im Such-Modus: rückwärts suchen)
  history_next: ruft nächsten Befehl oder Nachricht aus dem Befehlsspeicher auf (im Such-Modus: vorwärts suchen)
  history_global_previous: ruft vorherigen Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer)
  history_global_next: ruft nächsten Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer)
  jump_smart: wechselt zum nächsten Buffer mit Aktivität (nach Priorität: highlight, Nachricht, …)
  jump_last_buffer_displayed: wechselt zum jeweils zuletzt angezeigten Buffer
  jump_previously_visited_buffer: springt zum letzten besuchten Buffer
  jump_next_visited_buffer: springt zum nächsten besuchten Buffer
  hotlist_clear: löscht Hotlist (Aktivitätsanzeige für die Buffer), (optionales Argument: "lowest" löscht den niedrigsten Eintrag der Hotlist, "highest" löscht den höchsten Eintrag der Hotlist, oder eine integer Maske: eine Kombination aus 1=join/part, 2=Nachricht,4=privat,8=highlight)
  grab_key: fängt eine Taste (optionales Argument: Verzögerung um eine Taste einzufangen. Standard sind 500 Millisekunden)
  grab_key_command: zeigt den Tastencode (inklusive des eingebundenen Befehls) einer Tastenkombination an und fügt ihn in die Befehlszeile ein (optionales Argument: Verzögerung um eine Taste einzufangen. Standard sind 500 Millisekunden)
  grab_mouse: fängt den Code einer Maus Aktivität
  grab_mouse_area: fängt den Code einer Maus Aktivität mit entsprechendem Bereich
  set_unread: setzt für alle Buffer die Markierung der ungelesen Nachrichten
  set_unread_current_buffer: setzt nur für den aktuellen Buffer eine Markierung der ungelesen Nachrichten
  switch_active_buffer: springt zum nächsten zusammengefügten Buffer
  switch_active_buffer_previous: springt zum vorherigen zusammengefügten Buffer
  zoom_merged_buffer: zoomt in zusammengefügte Buffer
  insert: fügt einen Text in die Eingabezeile ein (Escapesequenzen sind möglich, siehe /help print)
  send: schickt Text an einen Buffer
  paste_start: Einfügen wird gestartet (bracketed paste mode)
  paste_stop: Einfügen wird beendet (bracketed paste mode)

Dieser Befehl wird sinnvollerweise mittels Tastenbelegungen oder Erweiterungen genutzt.
----

[[command_weechat_key]]
* `+key+`: Einer Taste einen Befehl zuordnen oder entfernen

----
/key  list|listdefault|listdiff [<context>]
      bind <key> [<command> [<args>]]
      bindctxt <context> <key> [<command> [<args>]]
      unbind <key>
      unbindctxt <context> <key>
      reset <key>
      resetctxt <context> <key>
      resetall -yes [<context>]
      missing [<context>]

       list: zeigt die aktuelle Tastenbelegungen an (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
listdefault: zeigt die Standardeinstellung der Tastenbelegung an
   listdiff: zeigt die Unterschiede zwischen der aktuell genutzten Tastaturbelegung und der Standardbelegung an (hinzugefügte/verändert/gelöschte Tastenbelegungen)
    context: Name des Kontextes ("default" oder "search")
       bind: belegt eine Taste mit einem Befehl oder zeigt an welcher Befehl auf eine Taste gelegt wurde (für Kontext "default")
   bindctxt: belegt eine Taste mit einem Befehl oder zeigt an welcher Befehl auf eine Taste gelegt wurde, dies trifft für Kontext definierte Tasten zu
    command: Befehl (mehrere Befehle werden durch ein Semikolon getrennt)
     unbind: hebt eine Tastenbelegung auf (für Kontext "default")
 unbindctxt: hebt eine Tastenbelegung für den angegebenen Kontext auf
      reset: die Tastenbelegung wird für die ausgewählte Taste auf die Standardeinstellung zurück gesetzt (für Kontext "default")
  resetctxt: die Tastenbelegung wird für die ausgewählte Taste auf die Standardeinstellung zurück gesetzt, dies trifft für den ausgewählten Kontext zu
   resetall: die Tastenbelegung wird auf die Standardeinstellungen zurück gesetzt. Dies löscht ALLE persönlichen Tastenbelegungen (Vorsicht!)
    missing: fügt fehlende Tastenbelegungen hinzu (dazu wird die Standardbelegung genutzt). Dies kann sinnvoll sein wenn man auf eine neue WeeChat Version umgestiegen ist

Falls ein Befehl einer Taste zugeordnet werden soll ist es ratsam zuerst mit der Tastenkombination alt+k (oder Esc + k) einen Fangmodus zu aktivieren um damit die zu belegende Taste zu ermitteln. Durch diesen Schritt wird der benötigte Tasten-Code in die Befehlszeile übernommen.

Für Kontext "mouse" (Kontext "cursor" ist auch möglich), hat der zu verwendende Schlüssel folgendes Format: "@area:Schlüssel" oder "@area1>area2:Schlüssel". "area" kann folgende Werte habe:
          *: jedweder Bereich des Bildschirms
       chat: Chatbereich (für jeden Buffer)
  chat(xxx): Chatbereich für einen Buffer mit dem Namen "xxx" (vollständiger Name mit Erweiterung. Beispiel: chat(perl.iset):)
     bar(*): beliebige Bar
   bar(xxx): Bar mit dem Namen "xxx"
    item(*): beliebiges Bar-Item
  item(xxx): Bar-Item mit Namen "xxx"
Der Platzhalter "*" kann verwendet werden um mehrere unterschiedliche Mausereignisse auszuwählen.
Für den Kontext "mouse" kann ein besonderer Übergabewert für den zu nutzenden Befehl verwendet werden, "hsignal:name". Dieses sendet das hsignal "name" und als Inhalt ein Hashtable als Argument.
Ein weiterer Übergabewert ist "-" und kann genutzt werden um einen Schlüssel zu deaktivieren (der Schlüssel wird bei der Durchführung übersprungen).

Beispiele:
  Mit der Tastenkombination "alt-t" wird die Nicklist-Bar an-und aus geschaltet:
    /key bind meta-t /bar toggle nicklist
  Mit der Tastenkombination "alt-r" wird direkt zum IRC #weechat Buffer gewechselt:
    /key bind meta-r /buffer #weechat
  Die Tastenkombination "alt-r" wird auf die Standardfunktion zurückgesetzt:
    /key reset meta-r
  "Tab"-Taste nutzen um im Kontext "search" die Suche innerhalb eines Buffers zu beenden:
    /key bindctxt search ctrl-I /input search_stop
  Auswahl eines Nicknamens mittels mittlerer Maustaste zeigt zusätzliche Informationen zu dem Nick an:
    /key bindctxt mouse @item(buffer_nicklist):button3 /msg nickserv info ${nick}
----

[[command_weechat_layout]]
* `+layout+`: Verwaltet Buffer/Fenster Layouts

----
/layout  store [<name>] [buffers|windows]
         apply [<name>] [buffers|windows]
         leave
         del [<name>] [buffers|windows]
         rename <name> <new_name>

  store: erstellt ein Layout der zur Zeit verwendeten Buffer/Fenster
  apply: erstelltes Layout verwenden
  leave: belässt das aktuelle Layout (es wird kein Layout aktualisiert)
    del: entfernt Buffer und/oder Fenster eines erstellten Layouts
         (falls weder "buffers" noch "windows" angegeben wird, dann wird das Layout entfernt)
 rename: ein Layout umbenennen
   name: Name unter welchem das Layout erstellt werden soll (Standardlayout heisst "default")
buffers: erstellt bzw. verwendet nur Buffer (Reihenfolge der Buffer)
windows: erstellt bzw. verwendet nur Fenster (Buffer welche im jeweiligen Fenster dargestellt werden)

Wird der Befehl ohne Argumente aufgerufen, werden die erstellten Layout dargestellt.

Das aktuelle Layout kann beim Ausführen des /quit Befehls mit der Option "weechat.look.save_layout_on_exit" gesichert werden.
----

[[command_weechat_mouse]]
* `+mouse+`: Maussteuerung

----
/mouse  enable|disable|toggle [<delay>]

 enable: aktiviert Maus
disable: deaktiviert Maus
 toggle: umschalten der Mausunterstützung
  delay: Verzögerung (in Sekunden) nach welcher der ursprüngliche Status wiederhergestellt wird (sinnvoll um die Mausunterstützung zeitabhängig zu deaktivieren)

Die Mausunterstützung wird in der Einstellung "weechat.look.mouse" gesichert.

Beispiele:
  Mausunterstützung aktivieren:
    /mouse enable
  Mausunterstützung für 5 Sekunden umschalten:
    /mouse toggle 5
----

[[command_weechat_mute]]
* `+mute+`: führt einen Befehl ohne Textausgabe aus

----
/mute  [-core | -current | -buffer <name>] <command>

   -core: keine Ausgabe im WeeChat Core Buffer
-current: Ausgabe im aktuellen Buffer wird unterdrückt
 -buffer: Ausgabe im ausgewählten Buffer wird unterdrückt
    name: vollständiger Buffername (Beispiel: "irc.server.freenode", "irc.freenode.#weechat")
 command: Befehl der ohne Textausgabe ausgeführt werden soll (das Präfix, '/', wird automatisch hinzugefügt, falls es dem Befehl nicht vorangestellt wurde)

Wird kein Buffer ausgewählt (-core, -current oder -buffer), dann wird die Textausgabe generell unterdrückt.

Beispiele:
  Speichern der Konfiguration:
  /mute save
  Nachricht in den aktuellen Channel senden:
  /mute -current msg * hi!
  Nachricht an den #weechat Channel senden:
  /mute -buffer irc.freenode.#weechat msg #weechat hi!
----

[[command_weechat_plugin]]
* `+plugin+`: Erweiterungen verwalten (auflisten/installieren/beenden)

----
/plugin  list|listfull [<name>]
         load <filename> [<arguments>]
         autoload [<arguments>]
         reload [<name>|* [<arguments>]]
         unload [<name>]

     list: installierte Erweiterungen werden aufgelistet
 listfull: detaillierte Auflistung aller installierten Erweiterungen
     load: installiert eine Erweiterung
 autoload: installiert automatisch alle Erweiterungen aus dem System- oder Benutzerverzeichnis
   reload: startet eine Erweiterung erneut (falls kein Name angegeben wird, werden alle Erweiterungen beendet und neu gestartet)
   unload: beendet eine oder alle Erweiterungen (wird kein Name angegeben dann werden alle Erweiterung beendet)
 filename: Erweiterung (Datei) welche installiert werden soll
     name: Name einer Erweiterung
arguments: Argumente die der Erweiterung beim installieren übergeben werden sollen

Ohne Angabe eines Arguments werden alle installierten Erweiterungen angezeigt.
----

[[command_weechat_print]]
* `+print+`: gibt einen Text in einem Buffer aus

----
/print  [-buffer <number>|<name>] [-newbuffer <name>] [-free] [-switch] [-core|-current] [-y <line>] [-escape] [-date <date>] [-tags <tags>] [-action|-error|-join|-network|-quit] [<text>]
        -stdout|-stderr [<text>]
        -beep

   -buffer: Buffer in welchem der Text ausgegeben werden soll (standardmäßig: aktueller Buffer)
-newbuffer: erstellt einen neuen Buffer und stellt Text in diesem Buffer dar
     -free: erstellt einen Buffer mit freiem Inhalt (nur mit -newbuffer möglich)
   -switch: wechselt zum Buffer
     -core: Alternativname für "-buffer core.weechat"
  -current: Text wird im aktuell genutzten Buffer ausgegeben
        -y: schreibt den Text in die angegebene Zeile (nur bei Buffern mit freiem Inhalt)
      line: Zeilennummer bei einem Buffer mit freiem Inhalt (erste Zeile ist 0, bei einer negative Zahl wird der Text nach der letzten Zeile eingefügt: -1 = nach der letzten Zeile, -2 = zwei Zeilen, nach der letzten Zeile, usw.)
   -escape: Escapesequenzen werden umgewandelt (zum Beispiel \a, \07, \x07)
     -date: Datum der Nachricht, mögliche Formatierung:
              -n: 'n' vor dem jetzigen Zeipunkt, in Sekunden
             +n: 'n' in Zukunft, in Sekunden
               n: 'n' Sekunden seit der Epoche (siehe man time)
               date/time (ISO 8601): yyyy-mm-ddThh:mm:ss, Beispiel: 2014-01-19T04:32:55
               time: hh:mm:ss (Beispiel: 04:32:55)
     -tags: durch Kommata getrennte Liste von Tags (siehe /help filter für eine Liste von Tags die häufig genutzt werden)
      text: Text der ausgegeben werden soll (Präfix und Nachricht muss durch \t getrennt werden, sollte der Text mit "-" beginnen, muss ein "\" vorangestellt werden)
   -stdout: Text wird an stdout geschickt (Escapesequenzen werden umgewandelt)
   -stderr: Text wird an stderr geschickt (Escapesequenzen werden umgewandelt)
     -beep: Alias für "-stderr \a"

Das Argument -action ... -quit nutzt den Präfix der in der Einstellung "weechat.look.prefix_*" definiert ist.

Folgende Escapesequenzen werden unterstützt:
  \" \\ \a \b \e \f \n \r \t \v \0ooo \xhh \uhhhh \Uhhhhhhhh

Beispiele:
  zeigt eine Erinnerung, mit Highlight, im Core-Buffer dar:
    /print -core -tags notify_highlight Reminder: Milch kaufen
  zeigt eine Fehlernachricht im Core-Buffer an:
    /print -core -error irgend ein Fehler
  zeigt eine Nachricht im Core-Buffer mit dem Präfix "abc" an:
    /print -core abc\tmeine Nachricht
  es wird eine Nachricht im Channel #weechat ausgegeben:
    /print -buffer irc.freenode.#weechat Nachricht an #weechat
  gibt einen Schneemann aus (U+2603):
    /print -escape \u2603
  verschickt Alarm (BEL):
    /print -beep
----

[[command_weechat_proxy]]
* `+proxy+`: Proxys verwalten

----
/proxy  list
        add <name> <type> <address> <port> [<username> [<password>]]
        del <name>|-all
        set <name> <option> <value>

    list: listet alle Proxys auf
     add: fügt neuen Proxy hinzu
    name: Name des neuen Proxy (der Name darf nur einmal genutzt werden)
    type: http, socks4 oder socks5
 address: IP oder Hostname
    port: Port
username: Username (optional)
password: Passwort (optional)
     del: entfernt einen Proxy (-all um alle Proxys zu entfernen)
     set: setzt einen Wert für Proxy
  option: Optionen die geändert werden (für eine Liste der möglichen Optionen, bitte folgenden Befehl nutzen: /set weechat.proxy.<proxyname>.*)
   value: neuer Wert für Option

Beispiele:
  erstellt einen HTTP-Proxy, der auf einem lokalen Host läuft und den Port 8888 nutzt:
    /proxy add local http 127.0.0.1 8888
  erstellt einen HTTP-Proxy der das IPv6 Protokoll nutzt:
    /proxy add local http ::1 8888
    /proxy set local ipv6 on
  erstellt einen socks5-Proxy, mit Username und Passwort:
    /proxy add myproxy socks5 sample.host.org 3128 myuser mypass
  entferne einen Proxy:
    /proxy del myproxy
----

[[command_weechat_quit]]
* `+quit+`: WeeChat beenden

----
/quit  [-yes] [<arguments>]

     -yes: Argument muss genutzt werden falls weechat.look.confirm_quit aktiviert sein sollte
arguments: Text der beim Signal "quit" verschickt wird
           (zum Beispiel sendet die IRC Erweiterung diesen Text als Quit-Nachricht an den Server)

Standardmäßig werden alle Konfigurationsdateien beim Beenden gespeichert (siehe Option "weechat.look.save_config_on_exit") und das aktuelle Layout kann gesichert werden (siehe Option "weechat.look.save_layout_on_exit").
----

[[command_weechat_reload]]
* `+reload+`: Konfiguration neu laden

----
/reload  [<file> [<file>...]]

file: Konfigurationsdatei die erneut geladen werden soll (ohne Dateinamenserweiterung ".conf")

Ohne Angabe von Argumenten werden alle Konfigurationen (WeeChat und Erweiterungen) neu geladen.
----

[[command_weechat_repeat]]
* `+repeat+`: führt einen Befehl mehrfach aus

----
/repeat  [-interval <delay>[<unit>]] <count> <command>

  delay: Verzögerung zwischen dem Ausführen der Befehle
   unit: mögliche Werte (optional):
           ms: Millisekunden
            s: Sekunden (Vorgabewert)
            m: Minuten
            h: Stunden
  count: Anzahl, wie oft der Befehl ausgeführt werden soll
command: Befehl welcher ausgeführt werden soll (oder ein Text der an einen Buffer gesendet werden soll, sofern der Befehl nicht mit '/' beginnt)

Hinweis: Der Befehl wird in dem Buffer ausgeführt, in welchem der /repeat Befehl ausgeführt wurde (sollte der Buffer nicht mehr existieren, wird der Befehl nicht ausgeführt).

Beispiel:
  scrolle zwei Seiten hoch:
    /repeat 2 /window page_up
----

[[command_weechat_save]]
* `+save+`: Konfiguration abspeichern

----
/save  [<file> [<file>...]]

file: Konfigurationsdatei die gesichert werden soll (ohne Dateinamenserweiterung ".conf")

Wird keine Datei angegeben dann werden alle Konfigurationen (WeeChat und Erweiterungen) gesichert.

Standardmäßig werden alle Konfigurationsdateien beim Ausführen des /quit Befehls gespeichert (siehe Option "weechat.look.save_config_on_exit").
----

[[command_weechat_secure]]
* `+secure+`: verwaltet zu schützende Daten (Passwörter oder private Daten werden in der Datei sec.conf verschlüsselt)

----
/secure  passphrase <passphrase>|-delete
         decrypt <passphrase>|-discard
         set <name> <value>
         del <name>

passphrase: ändern der Passphrase (ohne Passphrase, werden die Daten in der Datei sec.conf in Klartext gesichert)
   -delete: löscht Passphrase
   decrypt: entschlüsselt Daten nachträglich (dies passiert nur falls die Passphrase beim Start nicht angegeben wurde)
  -discard: verwirft alle verschlüsselten Daten
       set: fügt eine schutzwürdige Information hinzu oder ändert eine bestehende
       del: entfernt eine schutzwürdige Information

Ohne Angabe von Argumenten wird ein neuer Buffer geöffnet und die schutzwürdigen Informationen können dort eingesehen werden.

Tastenbefehle für den secure-Buffer:
  alt+v Werte werden in Klartext angezeigt bzw. verborgen

Wird eine Passphrase verwendet (Daten liegen verschlüsselt vor), fragt WeeChat beim Start die Passphrase ab.
Setzt man die Umgebungsvariable "WEECHAT_PASSPHRASE", kann die Eingabeaufforderung der Passphrase beim Programmstart vermieden werden (diese Variable wird von WeeChat auch beim /upgrade verwendet). Es ist auch möglich in der Option sec.crypt.passphrase_file eine Datei anzugeben die die Passphrase beinhaltet (siehe /help sec.crypt.passphrase_file)

schutzwürdige Daten mit dem Format ${sec.data.xxx} können wie folgt genutzt werden:
  - Befehl /eval.
  - Argument in der Befehlszeile für "--run-command"
  - Einstellung weechat.startup.command_{before|after}_plugins
  - weitere Optionen die Passwörter oder sensible Daten beinhalten (zum Beispiel: proxy, irc server und relay); nutze /help mit der entsprechenden Option um zu überprüfen ob die Daten evaluiert werden.

Beispiele:
  festlegen eine Passphrase:
    /secure passphrase Dies ist meine Passphrase
  verschlüsselt freenode SASL Passwort:
    /secure set freenode meinPasswort
    /set irc.server.freenode.sasl_password "${sec.data.freenode}"
  verschlüsselt oftc Passwort für nickserv:
    /secure set oftc meinPasswort
    /set irc.server.oftc.command "/msg nickserv identify ${sec.data.oftc}"
  Alternativbefehl um den eigenen Nick zu ghosten:
    /alias add ghost /eval /msg -server freenode nickserv ghost meinNick ${sec.data.freenode}
----

[[command_weechat_set]]
* `+set+`: um Konfigurationsoptionen und Umgebungsvariablen zu setzen

----
/set  [<option> [<value>]]
      diff [<option> [<option>...]]
      env [<variable> [<value>]]

option: Name der zu ändernden Einstellung (der Platzhalter "*" kann verwendet werden, um sich mehrere Einstellungen anzeigen zu lassen)
 value: neuer Wert den die Einstellung erhalten soll. Abhängig von der ausgewählten Einstellung, kann die Variable folgenden Inhalt haben:
          boolean: on, off oder toggle
          integer: Nummer, ++Nummer oder --Nummer
           string: beliebige Zeichenkette ("" für eine leere Zeichenkette)
            color: Farbwert, ++Nummer oder --Nummer
        Hinweis: für alle Typen von Variablen kann die Zeichenkette "null" (ohne "")  genutzt werden, um den Wert der Einstellung zu löschen (undefinierter Wert). Dies kann nur auf einige besondere Variablen (Erweiterungen) angewendet werden.
  diff: es werden nur Einstellungen angezeigt, die geändert wurden
   env: setzt oder zeigt eine Umgebungsvariable an (um eine Variable zu entfernen muss der Wert "" genutzt werden)

Beispiele:
  Zeigt alle Einstellungen an, die etwas mit highlight zu tun haben:
    /set *highlight*
  Fügt ein highlight-Wort hinzu:
    /set weechat.look.highlight "word"
  zeigt Einstellungen an, die verändert wurden:
    /set diff
  zeigt Einstellungen der IRC Erweiterung an, die verändert wurden:
    /set diff irc.*
  zeigt den Wert der Umgebungsvariable LANG an:
    /set env LANG
  setzt die Umgebungsvariable LANG und nutzt diese:
    /set env LANG fr_FR.UTF-8
    /upgrade
  entfernt die Umgebungsvariable ABC:
    /set env ABC ""
----

[[command_weechat_unset]]
* `+unset+`: Konfigurationsparameter freigeben/zurücksetzen

----
/unset  <option>
        -mask <option>

option: Name einer Option
 -mask: nutzt eine Maske um Optionen auszuwählen (Platzhalter "*" kann verwendet werden um viele Optionen in einem Arbeitsschritt zurückzusetzen. Nutzen Sie diese Funktion mit äußerster Sorgfalt!)

Gemäß der jeweiligen Einstellung wird diese zurückgesetzt (bei Standardeinstellungen) oder komplett entfernt (bei optionalen Einstellungen, zum Beispiel die Server-Einstellungen).

Beispiele:
  Eine Einstellung zurücksetzen:
    /unset weechat.look.item_time_format
  Alle Farbeinstellungen zurücksetzen:
    /unset -mask weechat.color.*
----

[[command_weechat_upgrade]]
* `+upgrade+`: WeeChat Binärdatei neu laden, ohne die Verbindung zum Server zu trennen

----
/upgrade  [-yes] [<path_to_binary>|-quit]

          -yes: wird benötigt, sobald Option "weechat.look.confirm_upgrade" aktiviert ist
path_to_binary: Pfad zu einer ausführbaren WeeChat Binärdatei (Standardeinstellung ist die aktuell ausführbare Datei)
        -dummy: ohne Funktion (dient lediglich dazu, um nicht versehentlich die "-quit" Funktion auszuführen)
         -quit: trennt *ALLE* Verbindungen, speichert die aktuelle Sitzung und beendet WeeChat, um den aktuellen Zustand später wiederherstellen (siehe unten)

Dieser Befehl führt ein Upgrade von WeeChat durch und startet die laufende Sitzung neu. Bevor dieser Befehl ausgeführt wird, sollte eine neue Version von WeeChat entweder vorab kompiliert, oder mit einem Paketmanager installiert worden sein.

Hinweis: SSL Verbindungen werden während eines Upgrades unterbrochen, da diese Verbindungen zur Zeit nicht mit GnuTLS gehalten werden können. Nach einem erfolgten Upgrade findet eine automatische Verbindung zu diesen Servern statt.

Der Upgrade Vorgang besteht aus vier Schritten:
  1. Sicherung der Sitzung, in Dateien für Core und Erweiterungen (buffers, history, ..)
  2. alle Erweiterungen werden ausgeschaltet (Konfigurationen *.conf werden gesichert)
  3. Sicherung der WeeChat Konfiguration (weechat.conf)
  4. ausführen der neuen Version von WeeChat und wiederherstellen der Sitzung.

Nutzt man die "-quit" Funktion ist die Abfolge geringfügig anders:
  1. es werden *ALLE* Verbindungen getrennt (irc,xfer,relay, ...)
  2. die Sitzung wird in Dateien gesichert (*.upgrade)
  3. alle Erweiterungen werden ausgeschaltet
  4. die WeeChat Konfiguration wird gesichert
  5. WeeChat wird beendet
Die Sitzung kann zu einem späteren Zeitpunkt wiederhergestellt werden: weechat --upgrade
WICHTIG: Die Sitzung muss mit exakt den selben Konfigurationsdateien wiederhergestellt werden (*.conf)
Es ist möglich die WeeChat-Sitzung auf einem anderen Rechner wiederherzustellen, sofern man den Inhalt des "~/.weechat" Verzeichnisses dorthin kopiert.
----

[[command_weechat_uptime]]
* `+uptime+`: Zeigt die Uptime von WeeChat an

----
/uptime  [-o|-ol]

 -o: die Laufzeit von WeeChat wird in den aktuellen Buffer geschrieben (in englischer Sprache)
-ol: die Laufzeit von WeeChat wird in den aktuellen Buffer geschrieben (in der voreingestellten Landessprache)
----

[[command_weechat_version]]
* `+version+`: Zeigt die WeeChat-Version und das Datum der Kompilierung an

----
/version  [-o|-ol]

 -o: die Version von WeeChat wird in den aktuellen Buffer ausgegeben (in englischer Sprache)
-ol: die Version von WeeChat wird in den aktuellen Buffer ausgegeben (in der voreingestellten Landessprache)

Um diesen Befehl in jedem Buffer ausführen zu können, kann der Standardkurzbefehl /v genutzt werden (andernfalls wird der IRC Befehl /version in einem IRC Buffer ausgeführt).
----

[[command_weechat_wait]]
* `+wait+`: Terminiere einen Befehl der ausgeführt werden soll

----
/wait  <number>[<unit>] <command>

 number: die Zeit, die gewartet werden soll (dies muss eine natürlich Zahl sein)
   unit: mögliche Werte (optional):
           ms: Millisekunden
            s: Sekunden (Vorgabewert)
            m: Minuten
            h: Stunden
command: Befehl welcher ausgeführt werden soll (oder ein Text der an einen Buffer gesendet werden soll, sofern der Befehl nicht mit '/' beginnt)\n

Hinweis: Der Befehl wird in dem Buffer ausgeführt, in welchem der /wait Befehl ausgeführt wurde (sollte der Buffer nicht mehr existieren, wird der Befehl nicht ausgeführt).

Beispiele:
  Betritt nach 10 Sekunden den Channel #test:
  /wait 10 /join #test
  Setzt nach 15 Minuten eine globale Abwesenheit:
  /wait 15m /away -all Bin dann mal eben weg
  Versendet nach zwei Minuten den Text 'Hallo':
  /wait 2m Hallo
----

[[command_weechat_window]]
* `+window+`: Fenster verwalten

----
/window  list
         -1|+1|b#|up|down|left|right [-window <number>]
         <number>
         splith|splitv [-window <number>] [<pct>]
         resize [-window <number>] [h|v][+|-]<pct>
         balance
         merge [-window <number>] [all]
         close [-window <number>]
         page_up|page_down [-window <number>]
         refresh
         scroll [-window <number>] [+|-]<value>[s|m|h|d|M|y]
         scroll_horiz [-window <number>] [+|-]<value>[%]
         scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_beyond_end|scroll_previous_highlight|scroll_next_highlight|scroll_unread [-window <number>]
         swap [-window <number>] [up|down|left|right]
         zoom [-window <number>]
         bare [<delay>]

         list: listet die geöffneten Fenster (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
           -1: springt zum vorherigen Fenster
           +1: springt zum nächsten Fenster
           b#: springt zum nächsten Fenster, welches die Buffer Nummer # besitzt
           up: wechselt zum Fenster über dem aktuellen
         down: wechselt zum Fenster unter dem aktuellen
         left: wechselt zum linken Fenster
        right: wechselt zum rechten Fenster
       number: Nummer des Fensters (siehe /window list)
       splith: teilt das aktuelle Fenster horizontal (um den Vorgang rückgängig zu machen: /window merge)
       splitv: teilt das aktuelle Fenster vertikal (um den Vorgang rückgängig zu machen: /window merge)
       resize: verändert die Größe des aktuellen Fensters. Die neue Größe des Fensters ist prozentual <pct> zum Stammfensters groß
               wird "h" oder "v" angegeben, findet eine Größenanpassung des Stammfenster statt, sofern es vom selben Typ ist (horizontal/vertikal)
      balance: passt die Größe aller Fenster an
        merge: vereinigt Fenster miteinander (all = alle Fenster vereinigen)
        close: Fenster wird geschlossen
      page_up: scrollt eine Seite nach oben
    page_down: scrollt eine Seite nach unten
      refresh: Seite wird neu aufgebaut
       scroll: scrollt eine Anzahl an Zeilen (+/-N) oder zu einer angegebenen Zeit: s=Sekunden, m=Minuten, h=Stunden, d=Tage, M=Monate, y=Jahre
 scroll_horiz: scrollt horizontal eine Anzahl an Spalten (+/-N) oder prozentual von der Fenstergröße ausgehend (dieses scrolling ist nur in Buffern möglich die über einen freien Inhalt verfügen)
    scroll_up: scrollt ein paar Zeilen nach oben
  scroll_down: scrollt ein paar Zeilen nach unten
   scroll_top: scrollt zum Anfang des Buffers
scroll_bottom: scrollt zum Ende des Buffers
scroll_beyond_end: scrollt über das Ende des Buffers hinaus
scroll_previous_highlight: scrollt zum vorherigen Hightlight
scroll_next_highlight: scrollt zum nächsten Highlight
scroll_unread: scrollt zur ersten ungelesenen Zeile in einem Buffer
         swap: tauscht die Buffer von zwei Fenstern (mit optionaler Angabe für das Zielfenster)
         zoom: vergrößert ein Fenster auf 100%
         bare: wechselt zum einfachen Anzeigemodus (optional kann eine Wartezeit in Sekunden angegeben werden, wann wieder zum Standardmodus zurück gewechselt werden soll)

Für splith und splitv gibt "pct" die Größe des neuen Fensters im Verhältnis zur aktuellen Größe an. Zum Beispiel würde ein Wert von 25 bedeuten, dass das neue Fenster nur noch ein Viertel der Größe des alten Fensters besitzt.

Beispiele:
  springt zum Fenster mit dem Buffer #1:
    /window b1
   scrollt zwei Zeilen hoch:
    /window scroll -2
  scrollt zwei Tage hoch:
    /window scroll -2d
  scrollt zum Beginn des aktuellen Tages:
    /window scroll -d
  Fenster #2 wird vergrößert:
    /window zoom -window 2
  teilt das Fenster horizontal, wobei das obere Fenster 30% an Platz zugeteilt bekommt:
    /window splith 30
  ändert die Größe auf 75% des Stammfensters:
    /window resize 75
  die vertikale Aufteilung um 10% vergrößern:
    /window resize v+10
  eine Teilung wird rückgängig gemacht:
    /window merge
  das aktuelle Fenster wird geschlossen:
    /window close
  aktiviert den einfachen Anzeigemodus für zwei Sekunden:
    /window bare 2
----