//
// 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 um nummeriert (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 Buffer 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
----
