summaryrefslogtreecommitdiff
path: root/doc/de/weechat_user.de.asciidoc
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2016-05-15 08:52:19 +0200
committerSébastien Helleu <flashcode@flashtux.org>2016-05-15 08:52:19 +0200
commitb7bdbbdc505879450494bc75b706e2997e25120f (patch)
treebe3b6716c2706a9505278d05ae9cfbec5ffbdac5 /doc/de/weechat_user.de.asciidoc
parent81fa60a23a29e3bb6525494587008d75eae44f28 (diff)
downloadweechat-b7bdbbdc505879450494bc75b706e2997e25120f.zip
core: rename .asciidoc files to .adoc (issue #722)
Diffstat (limited to 'doc/de/weechat_user.de.asciidoc')
-rw-r--r--doc/de/weechat_user.de.asciidoc3573
1 files changed, 0 insertions, 3573 deletions
diff --git a/doc/de/weechat_user.de.asciidoc b/doc/de/weechat_user.de.asciidoc
deleted file mode 100644
index fca268a0b..000000000
--- a/doc/de/weechat_user.de.asciidoc
+++ /dev/null
@@ -1,3573 +0,0 @@
-= WeeChat Benutzerhandbuch
-:author: Sébastien Helleu
-:email: flashcode@flashtux.org
-:lang: de
-:toc: left
-:toclevels: 4
-:toc-title: Inhaltsverzeichnis
-:sectnums:
-:sectnumlevels: 3
-:docinfo1:
-
-
-Übersetzer:
-
-* Nils Görs <weechatter@arcor.de>, 2010-2016
-
-
-Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat.
-
-Die aktuelle Version dieser Anleitung finden Sie auf:
-https://weechat.org/doc
-
-
-[[introduction]]
-== Einleitung
-
-WeeChat (Wee Enhanced Environment for Chat) ist ein freier, schneller und
-schlanker Chat-Client der für unterschiedliche Betriebssysteme entwickelt wird.
-
-[[features]]
-=== Funktionen
-
-wesentliche Merkmale:
-
-* Unterstützung verschiedener Protokolle: IRC und Jabber (mittels Skript jabber.py
- oder bitlbee/minbif)
-* mehrere Server Verbindungen sind möglich (mittels SSL, IPv6, proxy)
-* klein, schnell und schlank
-* den eigenen persönlichen Bedürfnissen anpassbar und durch Erweiterungen und Skripten in der Funktionalität erweiterbar
-* IRC RFCs konform http://tools.ietf.org/html/rfc1459[1459],
- http://tools.ietf.org/html/rfc2810[2810],
- http://tools.ietf.org/html/rfc2811[2811],
- http://tools.ietf.org/html/rfc2812[2812] und
- http://tools.ietf.org/html/rfc2813[2813]
-* IRC proxy und relay für remote Schnittstellen
-* Betriebssystemunabhängig (GNU/Linux, *BSD, MacOS X, Windows und weitere)
-* 100% GPL, freie Software
-
-Die WeeChat Homepage findet man unter: https://weechat.org/
-
-[[prerequisites]]
-=== Vorbereitung
-
-Um WeeChat zu installieren wird folgendes benötigt:
-
-* ein lauffähiges GNU/Linux System (mit Kompilierungswerkzeugen für Quellpakete),
- oder ein kompatibles OS
-* _root_ Privilegien (um WeeChat in das Systemverzeichnis zu installieren)
-* einige Bibliotheken (siehe <<dependencies,Abhängigkeiten>>).
-
-[[install]]
-== Installation
-
-[[binary_packages]]
-=== Binärpaket
-
-Binärpakete sind für folgende Distributionen erhältlich:
-
-* Arch Linux: `pacman -S weechat`
-* Cygwin (Windows): wähle das WeeChat Paket in setup.exe aus
-* Debian (oder Debian kompatible Distribution):
- `apt-get install weechat-curses`
-* Fedora Core: `dnf install weechat`
-* Gentoo: `emerge weechat`
-* Mandriva/RedHat (oder eine RPM kompatible Distribution):
- `rpm -i /path/to/weechat-x.y.z-1.i386.rpm`
-* openSUSE: `zypper in weechat`
-* Sourcemage: `cast weechat`
-
-zusätzliche Pakete können bzw. sollten installiert werden. Zum Beispiel: weechat-plugins.
-
-Für andere Distributionen schauen Sie bitte in die jeweilige Anleitung,
-wie man Pakete installiert.
-
-[[source_package]]
-=== Quellpakete
-
-WeeChat kann mittels cmake oder autotools kompiliert werden (cmake sollte dabei die bevorzugte Methode sein).
-
-[NOTE]
-Unter OS X kann http://brew.sh/[Homebrew] verwendet werden:
-`brew install weechat --with-python --with-perl`
-(für Hilfe: `brew info weechat`).
-
-[[dependencies]]
-==== Abhängigkeiten
-
-folgende Tabelle beschreibt, welche Pakete zwingend notwendig sind um WeeChat
-zu kompilieren und welche Pakete optional genutzt werden können.
-
-[width="100%",cols="5,^3,^3,.^13",options="header"]
-|===
-| Paket ^(1)^ | Version | benötigt | Funktion
-| cmake | | *ja* | Zum kompilieren (autotools ist möglich. cmake wird aber empfohlen)
-| pkg-config | | *ja* | entdeckt installierte Bibliotheken
-| libncursesw5-dev ^(2)^ | | *ja* | Ncurses Oberfläche
-| libcurl4-gnutls-dev | | *ja* | URL Transfer
-| zlib1g-dev | | *ja* | Kompression für Pakete, die mittels Relay- (WeeChat Protokoll), Script-Erweiterung übertragen werden
-| libgcrypt20-dev | | *ja* | Geschützte Daten, IRC SASL Authentifikation (DH-BLOWFISH/DH-AES), Skript-Erweiterung
-| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | | SSL Verbindung zu einem IRC Server, Unterstützung von SSL in der Relay-Erweiterung, IRC SASL Authentifikation (ECDSA-NIST256P-CHALLENGE)
-| gettext | | | Internationalisierung (Übersetzung der Mitteilungen; Hauptsprache ist englisch)
-| ca-certificates | | | Zertifikate für SSL Verbindungen
-| libaspell-dev
- ∥ libenchant-dev | | | Aspell Erweiterung
-| python-dev | ≥ 2.5 ^(4)^ | | Python Erweiterung
-| libperl-dev | | | Perl Erweiterung
-| ruby2.3-dev | ≥ 1.8 | | Ruby Erweiterung
-| liblua5.3-dev | | | Lua Erweiterung
-| tcl-dev | ≥ 8.5 | | Tcl Erweiterung
-| guile-2.0-dev | ≥ 2.0 | | Guile (scheme) Erweiterung
-| libv8-dev | ≤ 3.24.3 | | Javascript Erweiterung
-| asciidoctor | ≥ 1.5.4 | | Zum Erstellen der man page und der Dokumentation
-| libcpputest-dev | ≥ 3.4 | | Testlauf
-| C++ compiler | | | Testlauf, javascript Erweiterung
-|===
-
-[NOTE]
-^(1)^ Paketnamen wurden von der Debian GNU/Linux Distribution übernommen.
-Versionen und Paketnamen können für andere Distributionen abweichend sein. +
-^(2)^ WeeChat kann auch mit libncurses5-dev kompiliert werden. Dies wird aber
-*NICHT* empfohlen (es treten dabei Darstellungsfehler mit breiten Zeichen
-auf). +
-^(3)^ Gnutls ≥ 3.0.21 wird benötigt um eine IRC SASL Authentifizierung mittels
-ECDSA-NIST256P-CHALLENGE durchzuführen. +
-^(4)^ Die empfohlene Version ist 2.7 (alle Skripten laufen mit der Version 2.7,
-aber nicht mit Version ≤ 2.6 oder ≥ 3.0).
-
-[[compile_with_cmake]]
-==== Kompilieren mit cmake
-
-* Installation in das Systemverzeichnis (benötigt _root_ Privilegien):
-
-----
-$ mkdir build
-$ cd build
-$ cmake ..
-$ make
-% make install (als root)
-----
-
-* Installation in ein benutzerdefiniertes Verzeichnis:
-
-----
-$ mkdir build
-$ cd build
-$ cmake .. -DCMAKE_INSTALL_PREFIX=/Pfad/zum/Verzeichnis
-$ make
-$ make install
-----
-
-Optionen für cmake können mit dem Format, "-DOPTION=VALUE", genutzt werden.
-
-Liste von häufig verwendeten Optionen:
-
-[width="100%",cols="2m,2,5m,12",options="header"]
-|===
-| Option | Wert | Standardwert | Beschreibung
-
-| CMAKE_BUILD_TYPE | `Debug`, `Release`, `RelWithDebInfo`, `MinSizeRel` | |
- Art des builds: `Debug` (oder `RelWithDebInfo`) sollte verwendet werden, wenn meine eine Entwicklerversion
- von WeeChat nutzt.
-
-| CMAKE_INSTALL_PREFIX | Verzeichnis | /usr/local |
- Verzeichnis in welchem WeeChat installiert wird.
-
-| WEECHAT_HOME | Verzeichnis | ~/.weechat |
- Standard-Verzeichnis in welchem die Daten liegen.
-
-| CA_FILE | Datei | /etc/ssl/certs/ca-certificates.crt |
- Datei enthält die Zertifizierungen.
- This is the default value of option
- <<option_weechat.network.gnutls_ca_file,weechat.network.gnutls_ca_file>>.
-
-| ENABLE_ALIAS | `ON`, `OFF` | ON |
- kompiliert <<alias_plugin,Alias Erweiterung>>.
-
-| ENABLE_ASPELL | `ON`, `OFF` | ON |
- kompiliert <<aspell_plugin,Aspell Erweiterung>>.
-
-| ENABLE_CHARSET | `ON`, `OFF` | ON |
- kompiliert <<charset_plugin,Charset Erweiterung>>.
-
-| ENABLE_MAN | `ON`, `OFF` | OFF |
- kompiliert man page.
-
-| ENABLE_DOC | `ON`, `OFF` | OFF |
- kompiliert Dokumentation (dies ist sehr zeitintensiv und wird nur empfohlen falls
- Binärpakete erstellt werden, die die Dokumentation beinhalten sollen, oder man die
- Dokumentation nicht auf der Homepage abrufen kann).
-
-| ENABLE_ENCHANT | `ON`, `OFF` | OFF |
- kompiliert <<aspell_plugin,Aspell plugin>> mittels Enchant.
-
-| ENABLE_EXEC | `ON`, `OFF` | ON |
- kompiliert <<exec_plugin,Exec Erweiterung>>.
-
-| ENABLE_FIFO | `ON`, `OFF` | ON |
- kompiliert <<fifo_plugin,Fifo Erweiterung>>.
-
-| ENABLE_GNUTLS | `ON`, `OFF` | ON |
- kompiliert Gnutls (für SSL).
-
-| ENABLE_GUILE | `ON`, `OFF` | ON |
- kompiliert <<scripts_plugins,Guile Erweiterung>> (Scheme).
-
-| ENABLE_IRC | `ON`, `OFF` | ON |
- kompiliert <<irc_plugin,IRC Erweiterung>>.
-
-| ENABLE_JAVASCRIPT | `ON`, `OFF` | ON |
- kompiliert <<scripts_plugins,Javascript Erweiterung>>.
-
-| ENABLE_LARGEFILE | `ON`, `OFF` | ON |
- Unterstützung großer Dateien.
-
-| ENABLE_LOGGER | `ON`, `OFF` | ON |
- kompiliert <<logger_plugin,Logger Erweiterung>>.
-
-| ENABLE_LUA | `ON`, `OFF` | ON |
- kompiliert <<scripts_plugins,Lua Erweiterung>>.
-
-| ENABLE_NCURSES | `ON`, `OFF` | ON |
- kompiliert Ncurses Oberfläche.
-
-| ENABLE_NLS | `ON`, `OFF` | ON |
- aktiviert NLS (Übersetzungen).
-
-| ENABLE_PERL | `ON`, `OFF` | ON |
- kompiliert <<scripts_plugins,Perl Erweiterung>>.
-
-| ENABLE_PYTHON | `ON`, `OFF` | ON |
- kompiliert <<scripts_plugins,Python Erweiterung>>.
-
-| ENABLE_PYTHON3 | `ON`, `OFF` | OFF |
- kompiliert <<scripts_plugins,Python Erweiterung>> mittels Python 3 (dies wird *NICHT* empfohlen,
- da viele Skripten nicht kompatible mit Python 3 sind).
-
-| ENABLE_RELAY | `ON`, `OFF` | ON |
- kompiliert <<relay_plugin,Relay Erweiterung>>.
-
-| ENABLE_RUBY | `ON`, `OFF` | ON |
- kompiliert <<scripts_plugins,Ruby Erweiterung>>.
-
-| ENABLE_SCRIPT | `ON`, `OFF` | ON |
- kompiliert <<scripts_plugins,Script Erweiterung>>.
-
-| ENABLE_SCRIPTS | `ON`, `OFF` | ON |
- kompiliert <<scripts_plugins,Skripten-Erweiterungen>> (Python, Perl, Ruby,
- Lua, Tcl, Guile, Javascript).
-
-| ENABLE_TCL | `ON`, `OFF` | ON |
- kompiliert <<scripts_plugins,Tcl Erweiterung>>.
-
-| ENABLE_TRIGGER | `ON`, `OFF` | ON |
- kompiliert <<trigger_plugin,Trigger Erweiterung>>.
-
-| ENABLE_XFER | `ON`, `OFF` | ON |
- kompiliert <<xfer_plugin,Xfer Erweiterung>>.
-
-| ENABLE_TESTS | `ON`, `OFF` | OFF |
- kompiliert Testumgebung.
-|===
-
-Weitere Optionen können mit folgendem Befehl angezeigt werden:
-
-----
-$ cmake -LA
-----
-
-oder mittels der Curses-Oberfläche:
-
-----
-$ ccmake ..
-----
-
-[[compile_with_autotools]]
-==== Kompilieren mit autotools
-
-[WARNING]
-Ausschließlich das Kompilieren mittels cmake wird offiziell unterstützt. Autotools
-sollte nur verwendet werden falls man keine Möglichkeit hat cmake zu nutzen. +
-Für die Erstellung mittels autotools werden zusätzliche Pakete benötigt und es ist
-zeitintensiver als cmake.
-
-* Installation in das Systemverzeichnis (benötigt _root_ Privilegien):
-
-----
-$ ./autogen.sh
-$ mkdir build
-$ cd build
-$ ../configure
-$ make
-% make install (als root)
-----
-
-* Installation in ein benutzerdefiniertes Verzeichnis:
-
-----
-$ ./autogen.sh
-$ mkdir build
-$ cd build
-$ ../configure --prefix=/Pfad/zum/Verzeichnis
-$ make
-$ make install
-----
-
-Die Optionen können auch für das _configure_ Skript verwendet und mittels
-folgendem Befehl angezeigt werden:
-
-----
-$ ./configure --help
-----
-
-[[git_sources]]
-=== Git Quellen
-
-Warnung: Git Quellen sollten nur von erfahrenen Nutzern verwendet werden. Eventuell lassen
-sich die Quellen nicht kompilieren oder der Code ist nicht stabil. Sie sind hiermit gewarnt!
-
-Um die Git Quellen zu beziehen nutzen Sie folgende Befehle:
-
-----
-$ git clone https://github.com/weechat/weechat.git
-----
-
-Folgen Sie bitte der Anleitung zur Erstellung aus Quellpaketen (siehe <<source_package,Quellpakete>>).
-
-[[report_crashes]]
-=== Abstürze melden
-
-Falls WeeChat abgestürzt sein sollte und Sie diesen Fehler melden möchten:
-
-* kompilieren Sie WeeChat mit Debug-Information (oder installieren Sie das Binärpaket mit Debug-Information)
-* aktivieren Sie _core_ Dateien auf Ihrem System
-* installieren Sie gdb
-
-[[debug_info]]
-==== Debug info
-
-Bei der Kompilierung mit cmake muss folgende Option gesetzt werden:
-
-----
-$ cmake .. -DCMAKE_BUILD_TYPE=Debug
-----
-
-Bei der Kompilierung mit autotools ist debug standardmäßig aktiviert (`--with-debug=1`).
-
-Wird ein Binärpaket genutzt dann muss zusätzlich das Paket _weechat-dbg_ installiert werden.
-
-[[core_files]]
-==== Core Dateien
-
-Um _core_ Dateien zu aktivieren kann folgende Option genutzt werden:
-<<option_weechat.startup.sys_rlimit,weechat.startup.sys_rlimit>>:
-
-----
-/set weechat.startup.sys_rlimit "core:-1"
-----
-
-Wird eine WeeChat Version ≤ 0.3.8 verwendet oder man möchte die _core_ Dateien
-aktivieren, bevor WeeChat gestaret wird, wird der Befehl `ulimit` benötigt.
-
-Zum Beispiel muss unter Linux in einer _bash_ Shell folgender Befehl in die `~/.bashrc`
-Datei eingetragen werden:
-
-----
-ulimit -c unlimited
-----
-
-optional kann noch die maximale Dateigröße bestimmt werden:
-
-----
-ulimit -c 200000
-----
-
-[[gdb_backtrace]]
-==== Rückverfolgung mit gdb
-
-Falls WeeChat abstürzen sollte, dann wird auf Ihrem System eine _core_ bzw. _core.12345_ Datei
-(_12345_ ist die Prozess-Id) erzeugt.
-Diese Datei wird in dem Verzeichnis erzeugt aus welchem Sie WeeChat gestartet haben (dies
-ist *nicht* das Verzeichnis in welchem sich WeeChat befindet!).
-
-Beispiel: _weechat_ ist installiert in _/usr/bin/_ und die _core_ Datei befindet sich
-in _/home/xxx/_. Nun wird gdb mit folgendem Befehl aufgerufen:
-
-----
-gdb /usr/bin/weechat /home/xxx/core
-----
-
-Nun startet man _gdb_ und führt den Befehl `bt full` innerhalb der gdb Umgebung aus, um die
-Fehlermeldung auszugeben. Eine Fehlermeldung von gdb sieht z.B. wie folgt aus:
-
-----
-(gdb) set logging file /tmp/crash.txt
-(gdb) set logging on
-Copying output to /tmp/crash.txt.
-(gdb) bt full
-#0 0x00007f9dfb04a465 in raise () from /lib/libc.so.6
-#1 0x00007f9dfb04b8e6 in abort () from /lib/libc.so.6
-#2 0x0000000000437f66 in weechat_shutdown (return_code=1, crash=1)
- at /some_path/src/core/weechat.c:351
-#3 <signal handler called>
-#4 0x000000000044cb24 in hook_process_timer_cb (arg_hook_process=0x254eb90,
- remaining_calls=<value optimized out>) at /some_path/src/core/wee-hook.c:1364
- hook_process = 0x254eb90
- status = <value optimized out>
-#5 0x000000000044cc7d in hook_timer_exec ()
- at /some_path/src/core/wee-hook.c:1025
- tv_time = {tv_sec = 1272693881, tv_usec = 212665}
- ptr_hook = 0x2811f40
- next_hook = 0x0
-#6 0x000000000041b5b0 in gui_main_loop ()
- at /some_path/src/gui/curses/gui-curses-main.c:319
- hook_fd_keyboard = 0x173b600
- tv_timeout = {tv_sec = 0, tv_usec = 0}
- read_fds = {fds_bits = {0 <repeats 16 times>}}
- write_fds = {fds_bits = {0 <repeats 16 times>}}
- except_fds = {fds_bits = {0 <repeats 16 times>}}
- max_fd = <value optimized out>
-----
-
-Diese Fehlermeldung senden Sie bitte an den Entwickler und beschreiben was den Fehler ausgelöst hat.
-
-Danke für Ihre Mithilfe!
-
-[[debug_running_weechat]]
-==== Eine laufende Session von WeeChat debuggen
-
-Um eine laufende Session von WeeChat zu debuggen (zum Beispiel wenn WeeChat nicht
-mehr reagieren sollte) sollte man gdb mit der Prozess-ID starten (_12345_ muss durch
-die PID des laufenden weechat Prozesses ersetzt werden):
-
-----
-gdb /usr/bin/weechat 12345
-----
-
-Sollte WeeChat abgestürzt sein, muss der Befehl `bt full` genutzt werden:
-
-----
-(gdb) bt full
-----
-
-[[usage]]
-== Nutzung
-
-[[running_weechat]]
-=== WeeChat starten
-
-Befehlszeile:
-
-include::cmdline_options.de.asciidoc[]
-
-Um WeeChat zu starten muss folgender Befehl ausgeführt werden:
-
-----
-$ weechat
-----
-
-Wird WeeChat zum ersten mal gestartet wird eine Konfigurationsdatei
-mit Standardparametern erstellt. Die Konfigurationsdatei heißt:
-_~/.weechat/weechat.conf_.
-
-Die Einstellungen für WeeChat können an die eigenen Bedürfnisse angepasst werden. Dazu sollten
-Veränderungen an der Konfigurationsdatei mit dem internen Befehl `/set` durchführt werden. (siehe
-<<weechat_commands,WeeChat Befehle>>).
-
-[[screen_layout]]
-=== Screen layout
-
-Beispiel des WeeChat-Terminals:
-
-....
- ▼ Bar "title"
-┌───────────────────────────────────────────────────────────────────────────┐
-│Welcome to #test, this is a test channel │
-│12:52:27 --> | Flashy (flashcode@weechat.org) has joined #test │@Flashy│
-│12:52:27 -- | Nicks #test: [@Flashy @joe +weebot peter] │@joe │
-│12:52:27 -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
-│12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │
-│12:54:15 peter | hey! │ │
-│12:55:01 @joe | hello │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│[12:55] [6] [irc/freenode] 3:#test(+n){4}* [H: 4:#abc(2,5), 6] │
-│[@Flashy(i)] hi peter!█ │
-└───────────────────────────────────────────────────────────────────────────┘
- ▲ Bars "status" und "input" Bar "nicklist" ▲
-....
-
-Der Bildschirm setzt sich aus folgenden Bereichen zusammen:
-
-* Chat-Bereich (in der Mitte des Bildschirms). Dieser enthält den Text und zusätzlich für jede Zeile:
-** die Uhrzeit
-** Prefix (links von dem "|")
-** Nachricht (rechts von dem "|")
-* Die Bars können um den Chat-Bereich angeordnet werden. Standard-Bars sind:
-** _title_ Bar, über dem Chat-Bereich
-** _status_ Bar, unter dem Chat-Bereich
-** _input_ Bar, unter der Status-Bar
-** _nicklist_ Bar, auf der rechten Seite
-
-Die _status_-Bar besitzt als Standardeinträge:
-
-[width="100%",cols="^3,^4,10",options="header"]
-|===
-| Item | Beispiel | Beschreibung
-| time | `[12:55]` | Uhrzeit
-| buffer_last_number | `[6]` | Nummer des letzten Buffers
-| buffer_plugin | `[irc/freenode]` | Erweiterung des aktuellen Buffers (IRC Erweiterung setzt den IRC Servername für den Buffer)
-| buffer_number | `3` | Aktuelle Nummer des Buffers
-| buffer_name | `#test` | Name des aktuellen Buffers
-| buffer_modes | `+n` | IRC Channel-Modi
-| buffer_nicklist_count | `{4}` | Anzahl der Nicks in Benutzerliste
-| buffer_zoom | ! | `!` bedeutet, dass ein zusammengefügter Buffer gezoomed (nur dieser Buffer wird angezeigt) wird.
-| buffer_filter | `+*+` | Filteranzeige: `+*+` bedeutet das Zeilen gefiltert (unterdrückt) wurden. Ein leerer Eintrag zeigt an dass alle Zeilen dargestellt werden
-| scroll | `-MORE(50)-` | Scroll Indikator, zeigt an wie viele Zeilen unterhalb der zur Zeit dargestellten Zeile vorhanden sind
-| lag | `[Lag: 2.5]` | Verzögerungsanzeige, in Sekunden (keine Anzeige falls Verzögerung gering)
-| hotlist | `[H: 4:#abc(2,5), 6]` | Liste der Buffer mit Aktivität (ungelesene Nachrichten) (für das Beispiel: 2 Highlights und 5 ungelesene Nachrichten im Channel _#abc_, eine ungelesene Nachricht in Buffer #6)
-| completion | `abc(2) def(5)` | Liste von Wörtern für Vervollständigung, die Zahl zeigt an wie viele Varianten möglich sind
-|===
-
-In der _input_ Bar lautet die Standardeinstellung:
-
-[width="100%",cols="^3,^4,10",options="header"]
-|===
-| Item | Beispiel | Beschreibung
-| input_prompt | `[@Flashy(i)]` | Input prompt, für irc: Nick und Modi (Modus "+i" bedeutet auf freenode, unsichtbar)
-| away | `(away)` | Abwesenheitsanzeige
-| input_search | `[Search (~ str,msg)]` | Suchindikatoren ("`~`": Groß-und Kleinschreibung ignorieren, "`==`": Groß-und Kleinschreibung berücksichtigen, "`str`": einfache Textsuche, "`regex`": suche mit regulären Ausdrücken, "`msg`": Suche in Nachrichten, "`pre`": Suche in Präfix, "`pre\|msg`": Suche in Präfix und Nachrichten)
-| input_paste | `[Paste 7 lines ? [ctrl-Y] Ja [ctrl-N] Nein]` | Nachfrage ob sieben Zeilen eingefügt werden sollen
-| input_text | `hi peter!` | Text der eingegeben wird
-|===
-
-andere Items die man nutzen kann (die aber nicht standardmäßig in einer Bar aktiviert sind):
-
-[width="100%",cols="^3,^4,10",options="header"]
-|===
-| Item | Beispiel | Beschreibung
-| aspell_dict | `de,en` | zeigt an welche Wörterbücher für die Rechtschreibung im aktuellen Buffer genutzt werden
-| aspell_suggest | `Glück,Glocke,Block`| Vorschläge für ein falsch geschriebenes Wort
-| buffer_count | `10` | absolute Anzahl an geöffneten Buffern
-| buffer_short_name | `#test` | Kurzname des aktuellen Buffers
-| irc_channel | `#test` | aktueller IRC Channelname
-| irc_nick_modes | `@` | IRC Modi für den eigenen Nick
-| mouse_status | `M` | Status der Maus (keine Anzeige, falls Maus deaktiviert)
-| window_number | `2` | Nummer des aktuellen Fensters
-|===
-
-[[buffers_and_windows]]
-=== Buffer und Fenster
-
-Ein _Buffer_ setzt sich zusammen aus einer Nummer, besitzt einem Namen, hat Zeilen die angezeigt
-werden (und noch anderen Daten).
-
-Beispiele von Buffern:
-
-* Core Buffer (wird durch WeeChat beim Programmstart erstellt und kann nicht geschlossen werden!)
-* IRC Server (hier werden die Nachrichten ausgegeben die der Server verschickt)
-* IRC Channel
-* IRC Privat (wird auch Query-Buffer genannt)
-
-Ein _Fenster_ ist ein Bildschirmbereich der Buffer darstellt. Es ist möglich
-den Bildschirm in mehrere Fenster aufzuteilen.
-
-Jedes Fenster stellt einen Buffer dar. Ein Buffer kann unsichtbar sein (er wird
-in einem Fenster nicht angezeigt) oder ein Buffer wird durch ein oder mehrere Fenster
-angezeigt.
-
-Beispiele für eine horizontal Fensteraufteilung (`/window splith`):
-
-....
- ▼ Fenster #2 (Buffer #4)
-┌───────────────────────────────────────────────────────────────────────────┐
-│Welcome to #abc │
-│12:55:12 Max | hi │@Flashy│
-│12:55:20 @Flashy | hi Max! │Max │
-│12:55:32 Max | how are you? │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│[12:55] [6] [irc/freenode] 4:#abc(+n){2} │
-│[@Flashy] │
-│───────────────────────────────────────────────────────────────────────────│
-│Welcome to #test │
-│12:54:15 peter | hey! │@Flashy│
-│12:55:01 @joe | hello │@joe │
-│ │+weebot│
-│ │peter │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│[12:55] [6] [irc/freenode] 3:#test(+n){4} │
-│[@Flashy] hi peter!█ │
-└───────────────────────────────────────────────────────────────────────────┘
- ▲ Fenster #1 (Buffer #3)
-....
-
-Beispiele für eine vertikale Fensteraufteilung (`/window splitv`):
-
-....
-┌───────────────────────────────────────────────────────────────────────────┐
-│Welcome to #test │Welcome to #abc │
-│12:54:15 peter | hey! │@Flashy│12:55:12 Max | hi │@Flashy│
-│12:55:01 @joe | hello │@joe │12:55:20 @Flashy | hi Max! │Max │
-│ │+weebot│ │ │
-│ │peter │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│[12:55] [irc/oftc] 3:#test(+n){4} │[12:55] [irc/oftc] 4:#abc(+n){2} │
-│[@Flashy] hi peter!█ │[@Flashy] │
-└───────────────────────────────────────────────────────────────────────────┘
- ▲ Fenster #1 (Buffer #3) ▲ Fenster #2 (Buffer #4)
-....
-
-Beispiele für eine vertikale und horizontale Fensteraufteilung:
-
-....
- ▼ Fenster #3 (Buffer #5)
-┌───────────────────────────────────────────────────────────────────────────┐
-│Welcome to #test │Welcome to #def │
-│12:54:15 peter | hey! │@Flashy│12:55:42 @Flashy | hi │@Flashy│
-│12:55:01 @joe | hello │@joe │12:55:56 alex | hi Flashy │alex │
-│ │+weebot│ │ │
-│ │peter │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │[12:55] [irc/oftc] 5:#def(+n){2} │
-│ │ │[@Flashy] │
-│ │ │─────────────────────────────────────│
-│ │ │Welcome to #abc │
-│ │ │12:55:12 Max | hi │@Flashy│
-│ │ │12:55:20 @Flashy | hi Max! │Max │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│ │ │ │ │
-│[12:55] [irc/oftc] 3:#test(+n){4} │[12:55] [irc/oftc] 4:#abc(+n){2} │
-│[@Flashy] hi peter!█ │[@Flashy] │
-└───────────────────────────────────────────────────────────────────────────┘
- ▲ Fenster #1 (Buffer #3) ▲ Fenster #2 (Buffer #4)
-....
-
-[[bars]]
-=== Bars
-
-Eine _Bar_ ist ein Bereich der parallel, zum Chatfenster, jedwede Art von Text enthalten kann.
-
-Eine Bar kann mittels `weechat.bar.name.option` konfiguriert werden. Dabei steht `name`,
-für den Namen der Bar und `option` für die Option für diese Bar.
-
-Aufzählung von Bar-Optionen:
-
-[width="100%",cols="2m,2,10",options="header"]
-|===
-| Option | Wert | Beschreibung
-
-| type | `root`, `window` |
- Eine Bar, vom Typ `root`, kann nur einmal, außerhalb von Fenstern, auf dem Bildschirm
- dargestellt werden. Standardmäßig existiert keine `root` Bar. Eine solche Bar, mit Namen
- _buffers_, wird zum Beispiel durch das Skript _buffers.pl_ eingerichtet in welcher alle
- geöffneten Buffer aufgeführt werden. +
- Eine Bar, vom Typ `window`, wird in jedem einzelnen Fenster dargestellt, beispielsweise
- wenn man das Fenster teilt (mit `/window splith` oder `/window splitv`). Die vier
- standardmäßigen Bars (_title_, _status_, _input_, _nicklist_), sind vom Typ `window`.
-
-| position | `top`, `bottom`, `left`, `right` |
- Position der Bar: ober- oder unterhalb des Chatfensters, oder links/rechts davon.
-
-| priority | integer ≥ 0 |
- Priorität für die Bar: legt die Reihenfolge fest in der die Bars angeordnet werden sollen,
- wenn mehrere Bars den selben Typ und Position besitzen. +
- Die Bars werden vom Rand zur Mitte des Bildschirms gezeichnet. Eine höhere Priorität
- bewirkt, dass die Bar näher am Rand gezeichnet wird. +
- Beispiel: Die _input_ Bar hat eine Priorität von 1000 und wird somit vor der _status_ Bars
- gezeichnet, da diese lediglich eine Priorität von 500 besitzt.
-
-| size | integer ≥ 0 |
- Die Größe der Bar: Anzahl der Spalten, falls die Bar links/rechts bzw. Anzahl an Zeilen falls
- die Bar oben/unten dargestellt wird. Wird eine Größe `0` gewählt, dann wird die Größe der Bar
- automatisch bestimmt.
-
-| size_max | integer ≥ 0 |
- Die maximale Größe der Bar, `0` = keine Limitierung (diese Option wird nur genutzt, falls die
- Option `size` = `0` ist).
-
-| color_bg | color |
- Hintergrundfarbe, für die Bar.
-
-| color_fg | color |
- Textfarbe, für die Bar.
-
-| color_delim | color |
- Farbe der Trennzeichen, in der Bar.
-
-| hidden | `on`, `off` |
- Ist diese Option `on`, wird die Bar versteckt. +
- Hinweis: anstelle dieser Option sollte vorzugsweise der `/bar` Befehl genutzt werden.
- Beispiel: `/bar toggle nicklist` (siehe Befehl <<command_weechat_bar,/bar>>).
-
-| separator | `on`, `off` |
- Ist diese Option `on`, wird ein Separator (Linie) gezeichnet die eine Bar von anderen
- Bars oder dem Chatbereich trennt.
-
-| items | string |
- Eine Aufzählung von _items_ (siehe <<bar_items,items>> für weitere Informationen).
-
-| filling_left_right | `horizontal`, `vertical`, `columns_horizontal`, `columns_vertical` |
- Art, wie der Inhalt der Bar die `links` oder `rechts` gezeichnet wird, dargestellt wird (siehe
- <<bar_filling,filling>> für weitere Informationen).
-
-| filling_top_bottom | `horizontal`, `vertical`, `columns_horizontal`, `columns_vertical` |
- Art, wie der Inhalt der Bar die `oben` oder `unten` gezeichnet wird, dargestellt wird (siehe
- <<bar_filling,filling>> für weitere Informationen).
-
-| conditions | string |
- Bedingungen, wann die Bar angezeigt wird (siehe <<bar_conditions,conditions>> für weitere
- Informationen).
-|===
-
-[[bar_items]]
-==== Items
-
-Die Option _items_ ist ein String, mit einer Anzahl von Bar-Items. Diese werden
-durch Kommata voneinander getrennt (auf dem Bildschirm wird das Komma durch ein
-Leerzeichen ersetzt). Möchte man die Items ohne Leerzeichen darstellen, nutzt
-man ein "+" um die Items zu trennen.
-
-Eine Liste von Bar-Items kann man sich mit dem Befehl `/bar listitems` anzeigen lassen.
-
-Vor oder nach dem Item können Zeichen eingefügt werden. Diese dürfen nicht alphanumerisch,
-"-" oder "_" sein. Die Zeichen werden mit der entsprechenden Farbe, für Trennzeichen,
-dargestellt (Option _color_delim_).
-
-Beispiel einer Bar mit den Items, "[time],buffer_number+:+buffer_plugin+.+buffer_name":
-
-....
-┌───────────────────────────────────────────────────────────────────────────┐
-│[12:55] 3:irc/freenode.#weechat │
-└───────────────────────────────────────────────────────────────────────────┘
-....
-
-Eine Besonderheit stellt die Möglichkeit dar, ein Item eines bestimmten Buffers
-anzuzeigen. Syntax: "@buffer:item" ("buffer" ist der vollständige Name des Buffers
-und "item" der Name der Bar-Item)
-
-Dies ist für root-Bars sinnvoll, um gezielt ein Item eines bestimmten Buffers
-anzuzeigen, welcher nicht im aktuellen Fenster oder überhaupt nicht sichtbar
-ist.
-
-Beispiel: Benutzerliste von bitlbee permanent in einer root-Bar darstellen (die Bar
-heißt hierbei _bitlist_ und der Name des bitlbee Servers _bitlbee_):
-
-----
-/set weechat.bar.bitlist.items "@irc.bitlbee.&bitlbee:buffer_nicklist"
-----
-
-[[bar_filling]]
-==== Darstellung innerhalb einer Bar
-
-Es gibt folgende vier Möglichkeiten um Text innerhalb einer Bar darzustellen:
-
-* `horizontal`: die Items werden horizontal, von links nach rechts, dargestellt.
- Sollten neue Zeilen dargestellt werden, dann werden diese durch ein Leerzeichen
- von der vorherigen getrennt.
-* `vertical`: die Items werden von oben nach unten dargestellt. Neue Zeilen werden
- neben der vorherigen dargestellt.
-* `columns_horizontal`: Item werden in Spalten dargestellt, wobei der Text linksbündig
- ausgerichtet ist. Das erste Item wird in der linken oberen Ecke angezeigt und das
- zweite Item ist in der selben Zeile, auf der rechten Seite.
-* `columns_vertical`: Item werden in Spalten dargestellt, wobei der Text linksbündig
- ausgerichtet ist. Das erste Item wird in der linken oben Ecke angezeigt und das
- zweite Item wird eine Zeile darunter angezeigt.
-
-Die Standard-Bars _title_, _status_ und _input_ nutzen eine _horizontal_
-Darstellung und die Standard-Bar _nicklist_ nutzt eine _vertical_ Darstellung.
-
-Einige Beispiele, wie die Bar _nicklist_ dargestellt werden kann:
-
-....
-┌───────────────────────────────────────────────────────────────────────┐
-│Welcome to #test, this is a test channel │
-│12:54:15 peter | hey! │@carl │
-│12:55:01 +Max | hello │@jessika│
-│ │@maddy │
-│ │%Diego │
-│ │%Melody │
-│ │+Max │
-│ │ celia │
-│ │ Eva │
-│ │ freddy │
-│ │ Harold^│
-│ │ henry4 │
-│ │ jimmy17│
-│ │ jodie ▼│
-│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
-│[@carl] █ │
-└───────────────────────────────────────────────────────────────────────┘
- filling_left_right = vertical ▲
-
-┌───────────────────────────────────────────────────────────────────────┐
-│Welcome to #test, this is a test channel │
-│12:54:15 peter | hey! │@carl lee │
-│12:55:01 +Max | hello │@jessika louise │
-│ │@maddy mario │
-│ │%Diego mark │
-│ │%Melody peter │
-│ │+Max Rachel │
-│ │ celia richard│
-│ │ Eva sheryl │
-│ │ freddy Vince │
-│ │ Harold^ warren │
-│ │ henry4 zack │
-│ │ jimmy17 │
-│ │ jodie │
-│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
-│[@carl] █ │
-└───────────────────────────────────────────────────────────────────────┘
- filling_left_right = columns_vertical ▲
-
-┌───────────────────────────────────────────────────────────────────────┐
-│@carl %Diego celia Harold^ jodie mario Rachel Vince │
-│@jessika %Melody Eva henry4 lee mark richard warren │
-│@maddy +Max freddy jimmy17 louise peter sheryl zack │
-│───────────────────────────────────────────────────────────────────────│
-│ │
- filling_top_bottom = columns_vertical ▲
-
-┌───────────────────────────────────────────────────────────────────────┐
-│@carl @jessika @maddy %Diego %Melody +Max celia Eva │
-│ freddy Harold^ henry4 jimmy17 jodie lee louise mario │
-│ mark peter Rachel richard sheryl Vince warren zack │
-│───────────────────────────────────────────────────────────────────────│
-│ │
- filling_top_bottom = columns_horizontal ▲
-....
-
-[[bar_conditions]]
-==== Bedingungen
-
-Der Inhalt der Option _conditions_ ist evaluiert um festzulegen ob die entsprechende
-Bar angezeigt werden soll oder nicht.
-
-Folgende Zeichenketten sind möglich:
-
-* _active_ : das Fenster muss das aktive Fenster sein
-* _inactive_: das Fenster muss das inaktive Fenster sein
-* _nicklist_: der Buffer der in einem Fenster dargestellt wird, muss eine
- Benutzerliste anzeigen.
-* ein Ausdruck: wird als boolescher Wert ausgewertet (siehe Befehl
- <<command_weechat_eval,/eval>>)
-
-Für den Ausdruck sind folgende Variablen verfügbar:
-
-* `${active}` : wahr, wenn Fenster aktiv ist
-* `${inactive}`: wahr, wenn Fenster inaktiv ist
-* `${nicklist}`: wahr, wenn der Buffer im Fenster eine Nicklist anzeigt.
-
-Folgende Zeiger sind verfügbar:
-
-* `${window}`: das Fenster in dem der Zustand ausgewertet wird
-* `${buffer}`: der Buffer eines Fensters in dem der Zustand ausgewertet wird
-
-Beispiel wie man die Bar-Nicklist in allen Buffer, die eine Nicklist besitzen,
-darstellt, aber nur wenn das Fenster eine Mindestbreite von > 100 Pixeln aufweist:
-
-----
-/set weechat.bar.nicklist.conditions "${nicklist} && ${window.win_width} > 100"
-----
-
-Gleiche Bedingungen, aber die Benutzerliste wird im Buffer _&bitlbee_ immer angezeigt
-(auch wenn das Fenster kleiner als 100 Pixel ist):
-
-----
-/set weechat.bar.nicklist.conditions "${nicklist} && (${window.win_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)"
-----
-
-[[bare_display]]
-=== einfacher Anzeigemodus
-
-Ein vereinfachter Anzeigemodus, mit Namen "bare", kann aktiviert werden um
-überlange URLs ganz einfach mit der Maus anzuklicken oder um Text mit der
-Maus zu markieren.
-
-Der vereinfachte Anzeigemodus hat folgende Funktionen:
-
-* es wird lediglich der Inhalt des aktuellen Buffers angezeigt, es findet keine
- Aufteilung des Fensters statt, es werden keine Bars angezeigt (Title, Nicklist,
- Status, Input, ...)
-* die Mausunterstützung ist deaktiviert (sofern sie aktiviert war): die Maus kann
- wie in einem Terminal genutzt werden um URLs anzuklicken oder Text zu markieren
-* ncurses wird nicht genutzt, deshalb werden URLs am Ende der Zeile nicht abgeschnitten.
-
-Der Standardtastenbefehl um den vereinfachten Textmodus zu aktivieren ist kbd:[Alt+l],
-mit dem selben Tastenbefehl wird dieser Modus wieder beendet (dieser Modus kann auch
-mit jeder beliegen Tasteneingabe beendet werden, siehe Option
-<<option_weechat.look.bare_display_exit_on_input,weechat.look.bare_display_exit_on_input>>).
-
-Das Format für die Zeitanzeige kann mit folgender Option angepasst werden
-<<option_weechat.look.bare_display_time_format,weechat.look.bare_display_time_format>>.
-
-Der vereinfachte Anzeigemodus kann mit einer vorgegebenen Zeit gestartet werden
-<<command_weechat_window,/window>>.
-
-Im normalen Modus sieht WeeChat wie folgt aus:
-
-....
-┌───────────────────────────────────────────────────────────────────────────┐
-│Welcome to #test, this is a test channel │
-│12:52:27 --> | Flashy (flashcode@weechat.org) has joined #test │@Flashy│
-│12:52:27 -- | Nicks #test: [@Flashy @joe +weebot peter] │@joe │
-│12:52:27 -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
-│12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │
-│12:54:15 peter | hey! │ │
-│12:55:01 @joe | peter: hook_process: https://weechat.org/files/do │ │
-│ | c/devel/weechat_plugin_api.en.html#_weechat_hook_ │ │
-│ | process │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│ │ │
-│[12:55] [6] [irc/freenode] 3:#test(+n){4}* [H: 4:#abc(2,5), 6] │
-│[@Flashy(i)] hi peter!█ │
-└───────────────────────────────────────────────────────────────────────────┘
-....
-
-Der selbe Bildschirm sieht im vereinfachten Anzeigemodus wie folgt aus:
-
-....
-┌───────────────────────────────────────────────────────────────────────────┐
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│12:52 --> Flashy (flashcode@weechat.org) has joined #test │
-│12:52 -- Nicks #test: [@Flashy @joe +weebot peter] │
-│12:52 -- Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │
-│12:52 -- Channel created on Tue Jan 27 06:30:17 2009 │
-│12:54 <peter> hey! │
-│12:55 <@joe> peter: hook_process: https://weechat.org/files/doc/devel/weech│
-│at_plugin_api.en.html#_weechat_hook_process │
-└───────────────────────────────────────────────────────────────────────────┘
-....
-
-Es kann nun die URL von _joe_ ohne Probleme angeklickt werden (dies setzt
-natürlich voraus, dass der Terminal das Anwählen von URLs unterstützt).
-
-[[notify_levels]]
-=== Benachrichtigungsstufen
-
-Es gibt vier Benachrichtigungsstufen für Nachrichten, welche in Buffern dargestellt
-werden. Nachfolgend eine Liste, sortiert von niedrig nach hoch:
-
-* _low_: Nachricht mit einer geringen Wertigkeit (zum Beispiel: IRC join/part/quit)
-* _message_: Nachricht von einem User
-* _private_: Nachricht in einem privaten Buffer
-* _highlight_: wenn es sich um eine _highlight_ Nachricht handelt
-
-Jeder Buffer besitzt eine Benachrichtigungsstufe, um festzulegen, bei welchen Nachrichten
-der entsprechende Buffer in der Hotlist angezeigt werden soll.
-
-Der Wert für die Benachrichtigungsstufe kann mittels folgender Option festgelegt
-werden:
-<<option_weechat.look.buffer_notify_default,weechat.look.buffer_notify_default>>,
-Der Standardwert ist _all_.
-
-[width="50%",cols="3m,10",options="header"]
-|===
-| Benachrichtigungsstufe | Welche Nachrichten Berücksichtigung in der Hotlist finden
-| none | (keine)
-| highlight | _highlight_ + _private Nachrichten_
-| message | _highlight_ + _private Nachrichten_ + _normale Nachrichten_
-| all | _highlight_ + _private Nachrichten_ + _normal Nachrichten_ + _Nachrichten mit einer niedrigen Priorität_
-|===
-
-Benachrichtigungsstufen können für mehrere Buffer definiert werden. Zum Beispiel
-für alle Buffer des IRC Servers "freenode":
-
-----
-/set weechat.notify.irc.freenode message
-----
-
-Setzt die Benachrichtigungsstufe ausschließlich für den Channel "#weechat",
-auf die Stufe _highlight_:
-
-----
-/set weechat.notify.irc.freenode.#weechat highlight
-----
-
-Die Benachrichtigungsstufe für einen Buffer kann mittels dem `/buffer`
-Befehl festgelegt werden:
-
-----
-/buffer notify highlight
-----
-
-[[key_bindings]]
-=== Standard Tastenbelegung
-
-[[key_bindings_command_line]]
-==== Tastenbefehle für die Befehlszeile
-
-[width="100%",cols="^.^3,.^8,.^5",options="header"]
-|===
-| Taste | Beschreibung | Befehl
-| kbd:[←] +
- kbd:[Ctrl+b] | setzt den Cursor eine Position nach links | `/input move_previous_char`
-| kbd:[→] +
- kbd:[Ctrl+f] | setzt den Cursor eine Position nach rechts | `/input move_next_char`
-| kbd:[Ctrl+←] +
- kbd:[Alt+b] | springt in der Befehlszeile zum Anfang des vorherigen Wortes | `/input move_previous_word`
-| kbd:[Ctrl+→] +
- kbd:[Alt+f] | springt in der Befehlszeile zum Anfang des nächsten Wortes | `/input move_next_word`
-| kbd:[Home] +
- kbd:[Ctrl+a] | springt zum Anfang der Befehlszeile | `/input move_beginning_of_line`
-| kbd:[End] +
- kbd:[Ctrl+e] | springt ans Ende der Befehlszeile | `/input move_end_of_line`
-| kbd:[Ctrl+c],
- kbd:[b] | fügt Steuerzeichen für fett geschrieben Text ein | `/input insert \x02`
-| kbd:[Ctrl+c],
- kbd:[c] | fügt Steuerzeichen für Textfarbe ein | `/input insert \x03`
-| kbd:[Ctrl+c],
- kbd:[i] | fügt Steuerzeichen für kursiven Text ein | `/input insert \x1D`
-| kbd:[Ctrl+c],
- kbd:[o] | fügt Steuerzeichen für Standardfarbe ein | `/input insert \x0F`
-| kbd:[Ctrl+c],
- kbd:[v] | fügt Steuerzeichen für Hintergrundfarbe ein | `/input insert \x16`
-| kbd:[Ctrl+c],
- kbd:[_] | fügt Steuerzeichen für unterstrichenen Text ein | `/input insert \x1F`
-| kbd:[Del] +
- kbd:[Ctrl+d] | entfernt in der Befehlszeile das nächste Zeichen | `/input delete_next_char`
-| kbd:[Backsp.] +
- kbd:[Ctrl+h] | entfernt in der Befehlszeile das vorherige Zeichen | `/input delete_previous_char`
-| kbd:[Ctrl+k] | entfernt alle Zeichen vom Cursor bis zum Ende der Zeile (Zeichenkette wird in Zwischenablage kopiert) | `/input delete_end_of_line`
-| kbd:[Ctrl+r] | Textsuche im Verlaufsspeicher des Buffers (siehe <<key_bindings_search_context,Tasten für Such-Kontext>>) | `/input search_text_here`
-| kbd:[Ctrl+t] | Zeichen austauschen | `/input transpose_chars`
-| kbd:[Ctrl+u] | entfernt alle Zeichen vom Cursor bis zum Anfang der Zeile (Zeichenkette wird in Zwischenablage kopiert) | `/input delete_beginning_of_line`
-| kbd:[Ctrl+w] | entfernt das Wort links vom Cursor (entferntes Wort wird in Zwischenablage kopiert) | `/input delete_previous_word`
-| kbd:[Ctrl+y] | fügt Zeichenkette aus Zwischenablage ein | `/input clipboard_paste`
-| kbd:[Ctrl+_] | Rückgängig machen der letzten Aktion, in der Befehlszeile | `/input undo`
-| kbd:[Alt+_] | Wiederherstellen der letzten Aktion, in der Befehlszeile | `/input redo`
-| kbd:[Tab] | Vervollständigung von Befehlen oder Nicks (nochmaliges kbd:[Tab]: findet nächste Vervollständigung) | `/input complete_next`
-| kbd:[Shift+Tab] | ohne Vervollständigung: führt eine teilweise Vervollständigung durch. Bei unerledigter Vervollständigung : wird die vorherige Vervollständigung genutzt | `/input complete_previous`
-| kbd:[Enter] +
- kbd:[Ctrl+j] +
- kbd:[Ctrl+m] | führt einen Befehl aus oder sendet den Text (im Such-Modus: stoppt Suche) | `/input return`
-| kbd:[↑] | ruft vorherigen Befehl oder Nachricht aus dem Verlaufsspeicher auf (im Such-Modus: rückwärts suchen) | `/input history_previous`
-| kbd:[↓] | ruft nächsten Befehl oder Nachricht aus dem Verlaufsspeicher auf (im Such-Modus: vorwärts suchen) | `/input history_next`
-| kbd:[Ctrl+↑] | ruft vorherigen Befehl/Nachricht aus dem globalen Verlaufsspeicher auf (für alle Buffer) | `/input history_global_previous`
-| kbd:[Ctrl+↓] | ruft nächsten Befehl/Nachricht aus dem globalen Verlaufsspeicher auf (für alle Buffer) | `/input history_global_next`
-| kbd:[Alt+d] | löscht das Wort rechts vom Cursor (Zeichenkette wird in Zwischenablage kopiert) | `/input delete_next_word`
-| kbd:[Alt+k] | zeigt den Tastencode, einschließlich des eingebundenen Befehls, einer Tastenkombination an und fügt diesen in die Befehlszeile ein | `/input grab_key_command`
-| kbd:[Alt+r] | komplette Eingabezeile löschen| `/input delete_line`
-| kbd:[Alt+s] | schaltet die Aspell Funktion an/aus | `/mute aspell toggle`
-|===
-
-[[key_bindings_buffers_windows]]
-==== Tastenbefehle für Buffer / Fenster
-
-[width="100%",cols="^.^3,.^8,.^5",options="header"]
-|===
-| Taste | Beschreibung | Befehl
-| kbd:[Ctrl+l] | Fenster wird neu gezeichnet | `/window refresh`
-| kbd:[Ctrl+s],
- kbd:[Ctrl+u] | setzt für alle Buffer die Markierung für ungelesene Nachrichten | `/input set_unread`
-| kbd:[Ctrl+x] | sind mehrere Buffer zu einem Buffer zusammen gefügt wechselt man diese durch | `/input switch_active_buffer`
-| kbd:[Alt+x] | Zoom eines zusammengefügten Buffers (kbd:[Alt+x] ein zweites mal: alle zusammengefügten Buffer werden angezeigt) | `/input zoom_merged_buffer`
-| kbd:[PgUp] | eine Seite im Verlaufsspeicher des Buffers nach oben blättern | `/window page_up`
-| kbd:[PgDn] | eine Seite im Verlaufsspeicher des Buffer nach unten blättern | `/window page_down`
-| kbd:[Alt+PgUp] | einige Zeilen im Verlaufsspeicher des Buffer nach oben blättern | `/window scroll_up`
-| kbd:[Alt+PgDn] | einige Zeilen im Verlaufsspeicher des Buffer nach unten blättern | `/window scroll_down`
-| kbd:[Alt+Home] | springt zur ersten Zeile des Verlaufsspeichers des aktuellen Buffers| `/window scroll_top`
-| kbd:[Alt+End] | springt zur letzten Zeile des Verlaufsspeichers des aktuellen Buffers | `/window scroll_bottom`
-| kbd:[Alt+←] +
- kbd:[Alt+↑] +
- kbd:[Ctrl+p] +
- kbd:[F5] | zum vorherigen Buffer springen | `/buffer -1`
-| kbd:[Alt+→] +
- kbd:[Alt+↓] +
- kbd:[Ctrl+n] +
- kbd:[F6] | zum nächsten Buffer springen | `/buffer +1`
-| kbd:[F7] | zum vorherigen Fenster wechseln | `/window -1`
-| kbd:[F8] | zum nächsten Fenster wechseln | `/window +1`
-| kbd:[F9] | Titel des Buffers nach links verschieben | `+/bar scroll title * -30%+`
-| kbd:[F10] | Titel des Buffers nach rechts verschieben | `+/bar scroll title * +30%+`
-| kbd:[F11] | Benutzerliste um eine Seite nach oben blättern | `/bar scroll nicklist * -100%`
-| kbd:[F12] | Benutzerliste um eine Seite nach unten blättern | `/bar scroll nicklist * +100%`
-| kbd:[Alt+F11] | springt zum Anfang der Benutzerliste | `/bar scroll nicklist * b`
-| kbd:[Alt+F12] | springt zum Ende der Benutzerliste | `/bar scroll nicklist * e`
-| kbd:[Alt+a] | wechselt zum nächsten Buffer mit Aktivität (nach Priorität: highlight, Nachricht, ...) | `/input jump_smart`
-| kbd:[Alt+h] | löscht Hotliste (Aktivitätsanzeige für die Buffer) | `/input hotlist_clear`
-| kbd:[Alt+j],
- kbd:[Alt+f] | wechselt zum ersten Buffer | `/buffer -`
-| kbd:[Alt+j],
- kbd:[Alt+l] | wechselt zum letzten Buffer | `/buffer +`
-| kbd:[Alt+j],
- kbd:[Alt+r] | wechselt zum IRC RAW Buffer | `/server raw`
-| kbd:[Alt+j],
- kbd:[Alt+s] | wechselt zum IRC Server Buffer | `/server jump`
-| kbd:[Alt+0...9] | wechselt zum Buffer mit der Nummer (0 = 10) | `/buffer *N`
-| kbd:[Alt+j],
- kbd:[01...99] | wechselt zum Buffer mit der angegeben Nummer | `/buffer *NN`
-| kbd:[Alt+l] | schaltet einfachen Anzeigemodus an/aus | `/window bare`
-| kbd:[Alt+m] | schaltet Mausfunktion ein/aus | `/mouse toggle`
-| kbd:[Alt+n] | springt zur nächsten Highlight Nachricht | `/window scroll_next_highlight`
-| kbd:[Alt+p] | springt zur vorherigen Highlight Nachricht | `/window scroll_previous_highlight`
-| kbd:[Alt+u] | springt zur ersten ungelesenen Zeile im Buffer | `/window scroll_unread`
-| kbd:[Alt+w],
- kbd:[Alt+↑] | wechselt zum oberen Fenster | `/window up`
-| kbd:[Alt+w],
- kbd:[Alt+↓] | wechselt zum unteren Fenster | `/window down`
-| kbd:[Alt+w],
- kbd:[Alt+←] | wechselt zum linken Fenster | `/window left`
-| kbd:[Alt+w],
- kbd:[Alt+→] | wechselt zum rechten Fenster | `/window right`
-| kbd:[Alt+w],
- kbd:[Alt+b] | passt die Größe aller Fenster an | `/window balance`
-| kbd:[Alt+w],
- kbd:[Alt+s] | Wechselt Buffer von zwei Fenstern | `/window swap`
-| kbd:[Alt+z] | Zoom für aktuelles Fenster (nochmals kbd:[Alt+z]: stellt die vorherigen Einstellungen wieder her) | `/window zoom`
-| kbd:[Alt+<] | springt zum letzten besuchten Buffer | `/input jump_previously_visited_buffer`
-| kbd:[Alt+>] | springt zum nächsten besuchten Buffer | `/input jump_next_visited_buffer`
-| kbd:[Alt+/] | wechselt zum jeweils zuletzt angezeigten Buffern | `/input jump_last_buffer_displayed`
-| kbd:[Alt+=] | schaltet Filterfunktion an/aus | `/filter toggle`
-| kbd:[Alt+-] | schaltet, für den aktuellen Buffer, Filterfunktion an/aus | `/filter toggle @`
-|===
-
-[[key_bindings_search_context]]
-==== Tasten für "Suchen"-Kontext
-
-Diese Tasten werden im Kontext "search" verwendet (wenn kbd:[Ctrl+r] genutzt wird um
-in einem Buffer nach einem Text zu suchen).
-
-[width="100%",cols="^.^3,.^8,.^5",options="header"]
-|===
-| Taste | Beschreibung | Befehl
-| kbd:[Ctrl+r] | Wechsel des Suchmodus: einfache Textsuche (Standard), reguläre Ausdrücke | `/input search_switch_regex`
-| kbd:[Alt+c] | auf Groß-/Kleinschreibung umschalten | `/input search_switch_case`
-| kbd:[Tab] | wechselt Suche in: Nachricht (Standard), im Präfix, Präfix + Nachricht | `/input search_switch_where`
-| kbd:[↑] | sucht vorheriger Zeile | `/input search_previous`
-| kbd:[↓] | sucht nächste Zeile | `/input search_next`
-| kbd:[Enter] +
- kbd:[Ctrl+j] +
- kbd:[Ctrl+m] | beendet Suche ab aktueller Position | `/input search_stop_here`
-| kbd:[Ctrl+q] | beendet Suche und blättert zum Ende des Buffers | `/input search_stop`
-|===
-
-[[key_bindings_cursor_context]]
-==== Tasten für "Cursor"-Kontext
-
-Diese Tasten werden im Kontext "cursor" verwendet (Cursor kann frei auf dem Bildschirm bewegt werden)
-
-[width="100%",cols="^.^3,^.^2,.^7,.^7",options="header"]
-|===
-| Taste | Bereich | Beschreibung | Befehl
-| kbd:[↑] | - | bewegt Cursor eine Zeile nach oben | `/cursor move up`
-| kbd:[↓] | - | bewegt Cursor eine Zeile nach unten | `/cursor move down`
-| kbd:[←] | - | bewegt Cursor eine Spalte nach links | `/cursor move left`
-| kbd:[→] | - | bewegt Cursor eine Spalte nach rechts | `/cursor move right`
-| kbd:[Alt+↑] | - | bewegt Cursor einen Bereich nach oben | `/cursor move area_up`
-| kbd:[Alt+↓] | - | bewegt Cursor einen Bereich nach unten | `/cursor move area_down`
-| kbd:[Alt+←] | - | bewegt Cursor einen Bereich nach links | `/cursor move area_left`
-| kbd:[Alt+→] | - | bewegt Cursor einen Bereich nach rechts | `/cursor move area_right`
-| kbd:[m] | Chat | quotet Nachricht | `hsignal:chat_quote_message;/cursor stop`
-| kbd:[q] | Chat | quotet prefix + Nachricht | `hsignal:chat_quote_prefix_message;/cursor stop`
-| kbd:[Q] | Chat | quotet Uhrzeit + prefix + Nachricht | `hsignal:chat_quote_time_prefix_message;/cursor stop`
-| kbd:[b] | Benutzerliste | verbannt nick (Ban) | `/window ${_window_number};/ban ${nick}`
-| kbd:[k] | Benutzerliste | kickt nick | `/window ${_window_number};/kick ${nick}`
-| kbd:[K] | Benutzerliste | kickt und verbannt nick | `/window ${_window_number};/kickban ${nick}`
-| kbd:[q] | Benutzerliste | öffnet privaten Chat mit Nick | `/window ${_window_number};/query ${nick};/cursor stop`
-| kbd:[w] | Benutzerliste | führt einen whois für Nick aus | `/window ${_window_number};/whois ${nick}`
-| kbd:[Enter] +
- kbd:[Ctrl+j] +
- kbd:[Ctrl+m] | - | beendet den Cursor-Modus | `/cursor stop`
-|===
-
-[[key_bindings_mouse_context]]
-==== Tasten für "mouse"-Kontext
-
-Diese Tasten werden im Kontext "mouse" verwendet, wenn eine Mausfunktion genutzt worden ist.
-
-[width="100%",cols="^.^3,^.^3,^.^3,.^8,.^8",options="header"]
-|===
-| Maustaste ^(1)^ | Mausgeste | Bereich | Beschreibung | Befehl
-| ◾◽◽ | - | Chat | wechselt zum Fenster | `/window ${_window_number}`
-| ◾◽◽ | links | Chat | zum vorherigen Buffer springen | `/window ${_window_number};/buffer +1`
-| ◾◽◽ | rechts | Chat | zum nächsten Buffer springen | `/window ${_window_number};/buffer +1`
-| ◾◽◽ | links(lang) | Chat | wechselt zum ersten Buffer | `/window ${_window_number};/buffer 1`
-| ◾◽◽ | rechts(lang) | Chat | wechselt zum letzten Buffer | `/window ${_window_number};/input jump_last_buffer`
-| ◾◽◽ | - | chat (script buffer) | wählt einen Eintrag im Script-Buffer aus | `/script go ${_chat_line_y}`
-| ◽◽◾ | - | chat (script buffer) | installiert/entfernt ein Skript | `/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}`
-| ⇑ | - | Chat | mehrere Zeilen im Verlaufsspeicher des Buffer nach oben blättern | `/window scroll_up -window ${_window_number}`
-| ⇓ | - | Chat | mehrere Zeilen im Verlaufsspeicher des Buffer nach unten blättern | `/window scroll_down -window ${_window_number}`
-| ⇑ | - | chat (script buffer) | fünf Zeilen nach oben blättern, im Script-Buffer | `/script up 5`
-| ⇓ | - | chat (script buffer) | fünf Zeilen nach unten blättern, im Script-Buffer | `/script down 5`
-| kbd:[Ctrl+⇑] | - | chat | horizontal, nach links scrollen | `/window scroll_horiz -window ${_window_number} -10%`
-| kbd:[Ctrl+⇓] | - | chat | horizontal, nach rechts scrollen | `/window scroll_horiz -window ${_window_number} +10%`
-| ◾◽◽ | hoch | Benutzerliste | Benutzerliste um eine Seite nach oben blättern | `/bar scroll nicklist ${_window_number} -100%`
-| ◾◽◽ | runter | Benutzerliste | Benutzerliste um eine Seite nach unten blättern | `/bar scroll nicklist ${_window_number} +100%`
-| ◾◽◽ | hoch(lang) | Benutzerliste | springt zum Anfang der Benutzerliste | `/bar scroll nicklist ${_window_number} b`
-| ◾◽◽ | runter(lang) | Benutzerliste | springt zum Ende der Benutzerliste | `/bar scroll nicklist ${_window_number} e`
-| ◾◽◽ | - | Benutzerliste | öffnet privaten Chat mit Nick | `/window ${_window_number};/query ${nick}`
-| ◽◽◾ | - | Benutzerliste | führt einen whois für Nick aus | `/window ${_window_number};/whois ${nick}`
-| ◾◽◽ | links | Benutzerliste | kickt Nick | `/window ${_window_number};/kick ${nick}`
-| ◾◽◽ | links(lang) | Benutzerliste | kickt und verbannt Nick | `/window ${_window_number};/kickban ${nick}`
-| ◽◽◾ | links | Benutzerliste | verbannt Nick | `/window ${_window_number};/ban ${nick}`
-| ◽◽◾ | - | Input | fängt ein Mausereignis und fügt dieses in die Befehlszeile ein | `/input grab_mouse_area`
-| ⇑ | - | jede Bar | blättert Bar um 20% nach oben | `/bar scroll ${_bar_name} ${_window_number} -20%`
-| ⇓ | - | jede Bar | blättert Bar um 20% nach unten | `/bar scroll ${_bar_name} ${_window_number} +20%`
-| ◽◾◽ | - | überall | aktiviert den Cursor-Modus an dieser Position | `/cursor go ${_x},${_y}`
-|===
-
-[NOTE]
-^(1)^ "⇑" und "⇓" sind Symbole für Mausrad hoch/runter.
-
-[[mouse]]
-=== Mausunterstützung
-
-WeeChat unterstützt Maustasten als auch Mausgesten. Dies funktioniert sowohl im
-lokalen Terminal wie auch über eine Remote Verbindung via SSH.
-
-[[mouse_enable]]
-==== Mausunterstützung aktivieren
-
-Um die Mausunterstützung beim Programmstart zu aktivieren:
-
-----
-/set weechat.look.mouse on
-----
-
-Um die Mausunterstützung direkt zu aktivieren, kann man den Tastenkurzbefehl
-kbd:[Alt+m] nutzen oder folgenden Befehl ausführen:
-
-----
-/mouse enable
-----
-
-Es ist möglich die Mausunterstützung kurzzeitig zu deaktivieren und dies auf
-einen Tastenkurzbefehl zu legen. Zum Beispiel soll über den Tastenkurzbefehl
-kbd:[Alt+%] die Mausunterstützung für 10 Sekunden deaktiviert werden:
-
-----
-/key bind meta-% /mouse toggle 10
-----
-
-[IMPORTANT]
-Ist die Maus in Weechat aktiviert werden alle Mausereignisse duch WeeChat gefangen.
-Dadurch werden Aktionen wie Kopieren+Einfügen oder Klicks auf URLs nicht an das
-Terminal weitergereicht. + Mittels der kbd:[Shift] Taste kann aber das Mausereignis
-an das Terminal weitergeleitet werden, als ob die Maus deaktiviert wäre (bei
-einigen Terminals, wie z.B. iTerm, muß die Taste kbd:[Alt] anstelle von
-kbd:[Shift] verwendet werden).
-
-[NOTE]
-Sollten Probleme bei der Mausunterstützung auftreten, dann sollte Bitte die _WeeChat FAQ_ gelesen werden.
-
-[[mouse_bind_events]]
-==== Befehle einem Maus-Ereignis zuweisen
-
-Es gibt eine Anzahl von Maus-Ereignissen, die standardmäßig durch WeeChat definiert
-sind (siehe <<key_bindings_mouse_context,Tasten für "mouse"-Kontext>>).
-
-Man kann mit dem Befehl `/key` im Kontext "mouse" aber auch eigene Befehle zuweisen
-und löschen (für die Syntax, siehe Befehl <<command_weechat_key,/key>>).
-
-Der Name eines Ereignisses besteht aus einem Modifier (optional), einer Maustaste/Mausrad
-und der Mausgeste (optional). Die unterschiedlichen Elemente werden durch ein "-" getrennt.
-
-Liste der Modifiers:
-
-[width="50%",cols="3m,4",options="header"]
-|===
-| Modifier | Beschreibung
-| ctrl | Taste kbd:[Ctrl]
-| alt | Taste kbd:[Alt]
-| ctrl-alt | Taste kbd:[Ctrl] + kbd:[Alt]
-|===
-
-Liste der Maustasten/Mausrad:
-
-[width="50%",cols="3m,4",options="header"]
-|===
-| Maustaste/-rad | Beschreibung
-| button1 | Linker Mausknopf wird gedrückt
-| button2 | Rechter Mausknopf wird gedrückt
-| button3 | Mittlerer Mausknopf wird gedrückt (häufig der Druck auf das Mausrad)
-| button4 ... button9 | Ein zusätzlicher Mausknopf wird gedrückt
-| wheelup | Mausrad wird nach oben gescrollt
-| wheeldown | Mausrad wird nach unten gescrollt
-|===
-
-Liste der Mausgesten (nur für Maustasten, nicht für das Mausrad, anwendbar):
-
-[width="50%",cols="3m,4",options="header"]
-|===
-| Mausgeste | Distanz
-| gesture-up | 3 ... 19
-| gesture-up-long | ≥ 20
-| gesture-down | 3 ... 19
-| gesture-down-long | ≥ 20
-| gesture-left | 3 ... 39
-| gesture-left-long | ≥ 40
-| gesture-right | 3 ... 39
-| gesture-right-long | ≥ 40
-|===
-
-Liste von unvollständigen Ereignissen (nur für Mausknopf, nützlich für Erweiterungen/Skripten):
-
-[width="50%",cols="3m,4",options="header"]
-|===
-| Ereignis | Beschreibung
-| event-down | Mausknopf ist gedrückt
-| event-drag | Maus wurde mit gedrücktem Mausknopf bewegt
-|===
-
-Bespiele von Ereignissen:
-
-* `button1`
-* `ctrl-button1`
-* `button1-gesture-right`
-* `button1-event-down`
-* `button1-event-drag`
-* `alt-button2-gesture-down-long`
-* `wheelup`
-* `ctrl-alt-wheeldown`
-
-[TIP]
-Wird eine Funktion im "mouse"-Kontext hinzufügt ist es möglich, mehrere
-Mausereignisse mittels `+*+` abzufangen. Zum Beispiel fängt
-`+button1-gesture-*+` alle Mausgesten ab, die mit der linken Maustaste
-eingeleitet werden.
-
-[TIP]
-Den Namen eines Mausereignisses kann man mittels des Befehls `/input grab_mouse` erfragen.
-Man führt den Befehl in der Eingabezeile aus und startet das Ereignis. Als Ergebnis erhält
-man in der Eingabezeile den Namen des ausgeführten Mausereignisses.
-
-[[command_line]]
-=== Befehlszeile
-
-In der WeeChat Befehlszeile (am unteren Rand des Fensters) können Befehle ausgeführt oder
-ein Text in den Buffer geschrieben werden.
-
-[[command_line_syntax]]
-==== Syntax
-
-Ein Befehl wird durch das Zeichen "/" eingeleitet, gefolgt von dem Namen des Befehls. In folgendem
-Beispiel werden alle Konfigurationsoptionen angezeigt:
-
-----
-/set
-----
-
-Jeder Text der nicht mit dem Zeichen "/" beginnt wird in den Buffer geschrieben.
-In folgendem Beispiel wird der Text _Hallo_ in den aktuellen Buffer geschrieben:
-
-----
-Hallo
-----
-
-Dennoch ist es möglich einen Text in den Buffer zu schreiben der mit dem Zeichen "/" beginnt.
-Dazu muss dem ersten "/" ein zweites "/" vorangestellt werden. Um den Befehl `/set` als Text zu senden:
-
-----
-//set
-----
-
-[[command_line_colors]]
-==== Farbkodierung
-
-Für einige Erweiterungen wie z.B. der IRC Erweiterung können Farbkodierungen und Attribute für den
-Text gesetzt werden. Dazu muss die Tastenkombination kbd:[Ctrl+c], gefolgt von einem der folgenden
-Zeichen, genutzt werden:
-
-[width="60%",cols="3,5",options="header"]
-|===
-// TRANSLATIION MISSING
-| Key | Description
-| kbd:[Ctrl+c], kbd:[b] | Text wird fett dargestellt
-| kbd:[Ctrl+c], kbd:[c],
- kbd:[xx] | Textfarbe `xx` (siehe Farbtabelle)
-| kbd:[Ctrl+c], kbd:[c],
- kbd:[xx], kbd:[,],
- kbd:[yy] | Textfarbe `xx` und Hintergrundfarbe `yy` (siehe Farbtabelle)
-| kbd:[Ctrl+c], kbd:[i] | Text wird kursiv dargestellt
-| kbd:[Ctrl+c], kbd:[o] | deaktiviert Farben und Attribute
-| kbd:[Ctrl+c], kbd:[v] | Farben umkehren (kehrt Textfarbe und Hintergrundfarbe um)
-| kbd:[Ctrl+c], kbd:[_] | Text wird mit Unterstrich dargestellt
-|===
-
-[NOTE]
-Der selbe Befehl (ohne den Wert für kbd:[Ctrl+c], kbd:[c]) sollte genutzt werden
-um die Farbkodierungen bzw. Attribute zu deaktivieren.
-
-Farbtabelle für kbd:[Ctrl+c], kbd:[c]:
-
-include::autogen/user/irc_colors.asciidoc[]
-
-[NOTE]
-Um sich alle verfügbaren Farben anzeigen zu lassen, die der Terminal
-unterstützt, kann man in WeeChat die Tastenkombination kbd:[Alt+c]
-im `/color` Buffer nutzen oder im Terminal den Befehl `weechat --colors` ausführen.
-
-Beispiel: Im Buffer wird "Hallo an alle!" ausgegeben. Dabei wird "Hallo" in Fettschrift
-und hellblau und "an alle" rot und unterstrichen dargestellt.
-
-----
-^Cc12^CbHallo ^Cb^Cc04^C_an alle^C_^Cc!
-----
-
-[NOTE]
-Die Farben können in der IRC Erweiterung neu belegt werden,
-mittels der Option <<option_irc.color.mirc_remap,irc.color.mirc_remap>>.
-
-[[colors]]
-=== Farben
-
-WeeChat kann bis zu 256 Farbpaarungen nutzen um einen Text in Bars oder im
-Chatbereich darzustellen (der Terminal muss natürlich 256 Farben unterstützten).
-
-Gemäß der Einstellung in der _TERM_-Umgebungsvariable bestehen folgende Einschränkungen
-was die Farbdarstellung in WeeChat betrifft:
-
-[width="50%",cols="8,>2,>2",options="header"]
-|===
-| $TERM | Farben | Paare
-| "rxvt-unicode", "xterm", ... | 88 | 256
-| "rxvt-256color", "xterm-256color", ... | 256 | 256
-| "screen" | 8 | 64
-| "screen-256color" | 256 | 256
-| "tmux" | 8 | 64
-| "tmux-256color" | 256 | 256
-|===
-
-Mittels `weechat --colors` oder dem internen WeeChat-Befehl `/color` kann man sich
-die Einschränkungen für die jeweilige Umgebungsvariable anzeigen lassen.
-
-Folgende Werte sind für die _TERM_-Umgebungsvariable zu empfehlen, sofern man 256 Farben
-nutzen möchte:
-
-* falls screen genutzt wird: _screen-256color_
-* für tmux: _screen-256color_ oder _tmux-256color_
-* ausserhalb screen/tmux: _xterm-256color_, _rxvt-256color_, _putty-256color_, ...
-
-[NOTE]
-Es sollte das Paket "ncurses-term" installiert werden um die Werte der _TERM_
-Variable nutzen zu können.
-
-Sollte screen genutzt werden, fügt man folgende Zeile an das Ende der Datei
-_~/.screenrc_:
-
-----
-term screen-256color
-----
-
-Sollte die Umgebungsvariable _TERM_ falsch gesetzt worden sein und WeeChat
-wird derweil schon ausgeführt, kann die Variable mit folgenden zwei Befehlen
-geändert werden:
-
-----
-/set env TERM screen-256color
-/upgrade
-----
-
-[[colors_basic]]
-==== Basisfarben
-
-Basisfarben in WeeChat sind:
-
-[width="50%",cols="^3m,8",options="header"]
-|===
-| Name | Farbe
-| default | Standard Terminalfarbe (transparent für Hintergrund)
-| black | Schwarz
-| darkgray | Dunkelgrau
-| red | Dunkelrot
-| lightred | Hellrot
-| green | Dunkelgrün
-| lightgreen | Hellgrün
-| brown | Braun
-| yellow | Gelb
-| blue | Dunkelblau
-| lightblue | Hellblau
-| magenta | Dunkel magenta
-| lightmagenta | Hell magenta
-| cyan | Dunkel türkis
-| lightcyan | Hell türkis
-| gray | Grau
-| white | Weiß
-|===
-
-[[colors_extended]]
-==== erweiterte Farbpalette
-
-WeeChat belegt die Farbpaare dynamisch, sobald die Farbe genutzt werden sollte. Zum Beispiel
-um mit einer Farbe Buffer oder Bars zu nutzen.
-
-Zu den Basisfarben können zusätzlich Farben zwischen eins und der maximalen Anzahl an Farben
-genutzt werden die vom jeweiligen Terminal zur Verfügung gestellt werden.
-
-Mit dem `/color` Befehl kann man sich sowohl die aktuelle Farbpalette anzeigen lassen als
-auch die Anzahl der zu nutzenden Farben. Mit kbd:[Alt+c] kann man vorübergehend zu den
-Terminalfarben wechseln um eine Farbe auszuwählen.
-
-Um zum Beispiel die Uhrzeit in einem Buffer in einem schönen Orange darzustellen:
-
-----
-/set weechat.color.chat_time 214
-----
-
-oder falls man den Hintergrund der Statusbar in einm sehr dunklen Grün haben möchte:
-
-----
-/set weechat.bar.status.color_bg 22
-----
-
-[[colors_aliases]]
-==== Alias
-
-Man kann einer Farbe einen Alias zuordnen um diesen Alias anstelle einer Zahl in
-die Optionen einzutragen. Um einen Alias zu definieren nutzt man den Befehl
-`/color alias`.
-
-Beispiel:
-
-----
-/color alias 214 orange
-/set weechat.color.chat_delimiters orange
-----
-
-[[colors_attributes]]
-==== Attribute
-
-Er ist möglich einer Farbe ein Attribut hinzuzufügen. Dazu wird dem
-Farbnamen oder der Farbnummer ein- oder mehrere Attribute vorangestellt.
-
-* `+*+` : fett
-* `+!+` : invertierte Darstellung
-* `+/+` : kursiven
-* `+_+` : unterstrichen
-* `+|+` : behält Attribut bei: fett, invertierte Darstellung, Unterstrichen wird beim Farbwechsel nicht zurückgesetzt
-
-Um zum Beispiel dem eigenen Nick die Farbe weiß und unterstrichen
-zuzuordnen:
-
-----
-/set weechat.color.chat_nick_self _white
-----
-
-oder um die Zeitanzeige in der Statusbar orange, fett und unterstrichen
-darzustellen:
-
-----
-/set weechat.color.status_time *_214
-----
-
-Um einer Standard-Terminalfarbe (-1) ein Attribut hinzuzufügen muss eine Zahl
-gewählt werden die größer ist als die letzte genutzte Farbe des Terminals.
-Zum Beispiel; maximale Farbwahl in WeeChat: 99999.
-
-Um der Vordergrundfarbe des Terminals das Attribut "fett" zuzuordnen:
-
-----
-/set weechat.color.status_time *99999
-----
-
-[[secured_data]]
-=== sensible Daten
-
-[[secured_data_storage]]
-==== Archivierung
-
-WeeChat kann Passwörter oder sensible Daten verschlüsseln und in der
-Datei _sec.conf_ speichern.
-
-Diese Konfigurationsdatei wird vor allen anderen Dateien geladen und die
-gespeicherten Daten können in verschiedenen WeeChat Optionen bzw.
-Erweiterungen und Skripten genutzt werden.
-
-Es kann eine Passphrase genutzt werden um die Daten in _sec.conf_ zu
-verschlüsseln. Dies ist nicht obligatorisch wird aber dringend empfohlen,
-da ansonsten die Daten in Klartext gesichert werden.
-
-----
-/secure passphrase Dies ist meine Passphrase
-----
-
-Wenn eine Passphrase genutzt wird fragt WeeChat diese beim Programmstart
-ab (bei einem `/upgrade` ist dies nicht der Fall).
-
-Die Passphrase kann auch in einer Datei gesichert werden (siehe Option
-<<option_sec.crypt.passphrase_file,sec.crypt.passphrase_file>>).
-
-[[secured_data_encryption]]
-===== Verschlüsselung
-
-Die Daten werden in drei Schritten verschlüsselt:
-
-. erstellt einen Schlüssel anhand der Passphrase (optional mit Salt).
-. errechnet einen Hash über die Daten die verschlüsselt werden soll.
-. verschlüsselt den Hash + Daten (Ausgabe ist: Salt + Hash/Daten verschlüsselt)
-
-[NOTE]
-Der Cipher Block Modus ist _CFB_.
-
-Das Ergebnis wird als hexadezimale Zeichenkette in _sec.conf_ gesichert.
-Zum Beispiel:
-
-----
-[data]
-__passphrase__ = on
-freenode = "53B1C86FCDA28FC122A95B0456ABD79B5AB74654F21C3D099A6CCA8173239EEA59533A1D83011251F96778AC3F5166A394"
-----
-
-[[secured_data_decryption]]
-===== Entschlüsselung
-
-Die Entschlüsselung findet in drei Schritten statt:
-
-. erstellt einen Schlüssel mittels Salt und Passphrase.
-. entschlüsselt Hash + Daten.
-. überprüft ob der entschlüsselte Hash mit dem Hash der entschlüsselten Daten übereinstimmt.
-
-[[secured_data_manage]]
-==== Umgang mit sensiblen Daten
-
-Um sensible Daten zu schützen wird der Befehl `/secure set` verwendet. Es folgt
-ein Beispiel wie man das Passwort für den IRC Server _freenode_ schützt:
-
-----
-/secure set freenode meinPasswort
-----
-
-Um einen Überblick über seine schutzwürdigen Daten zu erhalten kann ein
-gesonderter Buffer geöffnet werden. In diesem Buffer kann man sich mittels
-kbd:[Alt+v] seine Passwörter anzeigen lassen. Um den Buffer zu öffnen nutzt
-man:
-
-----
-/secure
-----
-
-Verschlüsselte Daten können in einigen Optionen verwendet werden, die z.B.
-Passwörter beinhalten. Dies dient dazu Passwörter nicht im Klartext als
-Wert einer Option zu sichern. Dazu wird folgendes Format, anstelle des
-Passwortes, verwendet: "${sec.data.xxx}". "xxx" ist hierbei der Name den man
-dem Passwort zugeordnet hat (siehe oben, mittels `/secure set xxx ...`). +
-Für eine vollständige Liste aller unterstützten Optionen, siehe `/help secure`.
-
-Um z.B. das oben eingestellte _freenode_ Passwort für eine
-<<irc_sasl_authentication,SASL Authentifizierung>> zu nutzen:
-
-----
-/set irc.server.freenode.sasl_password "${sec.data.freenode}"
-----
-
-[[options_and_commands]]
-=== Optionen und Befehle
-
-[[sec_options]]
-==== Optionen für schutzwürdige Daten (sec.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| crypt | /set sec.crypt.* | Optionen für Verschlüsselung
-| data | <<command_weechat_secure,/secure>> | geschützte Daten
-|===
-
-Optionen:
-
-include::autogen/user/sec_options.asciidoc[]
-
-[[weechat_options]]
-==== WeeChat Optionen (weechat.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| debug | <<command_weechat_debug,/debug set>> +
- /set weechat.debug.* | Debug level, for core and plugins (Optionen können in Sektion hinzugefügt/entfernt werden)
-| startup | /set weechat.startup.* | Startup options
-| look | /set weechat.look.* | Look and feel
-| palette | <<command_weechat_color,/color alias>> +
- /set weechat.palette.* | Alternativnamen für Farben (Optionen können in Sektion hinzugefügt/entfernt werden)
-| color | /set weechat.color.* | Farben
-| completion | /set weechat.completion.* | Optionen für Vervollständigung
-| history | /set weechat.history.* | Optionen für Befehlsverlauf (Befehle und Buffer)
-| proxy | <<command_weechat_proxy,/proxy>> +
- /set weechat.proxy.* | Proxy Optionen
-| network | /set weechat.network.* | Netzwerk/SSL Optionen
-| bar | <<command_weechat_bar,/bar>> +
- /set weechat.bar.* | Optionen für die Bars
-| layout | <<command_weechat_layout,/layout>> | Layouts
-| notify | <<command_weechat_buffer,/buffer notify>> | Benachrichtigungsstufe für Buffer (Optionen können in Sektion hinzugefügt/entfernt werden)
-| filter | <<command_weechat_filter,/filter>> | Filter
-| key | <<command_weechat_key,/key>> | Tastenbefehle in default context
-| key_search | <<command_weechat_key,/key>> | Tastenbefehle in search context
-| key_cursor | <<command_weechat_key,/key>> | Tastenbefehle in cursor context
-| key_mouse | <<command_weechat_key,/key>> | Tastenbefehle in mouse context
-|===
-
-Optionen:
-
-include::autogen/user/weechat_options.asciidoc[]
-
-[[weechat_commands]]
-==== WeeChat Befehle
-
-include::autogen/user/weechat_commands.asciidoc[]
-
-[[plugins]]
-== Erweiterungen
-
-Eine WeeChat Erweiterung ist eine dynamische Bibliothek (library), die in C geschrieben
-und kompiliert ist. Unter GNU/Linux besitzt eine Erweiterung als Dateiendung ".so", unter
-Windows ".dll".
-
-Erweiterungen die gefunden werden, werden beim Start von WeeChat automatisch geladen.
-Natürlich ist es möglich während einer laufenden Session von WeeChat Erweiterungen
-nachträglich zu laden oder zu entfernen.
-
-Es ist wichtig zwischen _Erweiterung_ und _Skript_ zu unterscheiden. Eine Erweiterung
-ist eine Binärdatei die kompiliert wurde und mit dem Befehl `/plugin` geladen wird.
-Dem gegenüber ist ein _Skript_ eine Textdatei die durch eine Erweiterung z.B. _python_
-mittels dem Befehl `/python` geladen wird.
-
-Mit dem Befehl `/plugin` kann eine Erweiterung geladen bzw. entfernt werden. Auch können
-mit dem Befehl alle installierten Erweiterungen aufgelistet werden. Wird eine Erweiterung
-entfernt hat dies Einfluss auf die von dieser Erweiterung geöffneten Buffer.
-Diese Buffer werden dann geschlossen.
-
-Beispiele wie man Erweiterungen lädt, entfernt und auflistet:
-
-----
-/plugin load irc
-/plugin unload irc
-/plugin list
-----
-
-Standarderweiterungen:
-
-[width="100%",cols="^1,5",options="header"]
-|===
-| Erweiterung | Beschreibung
-| alias | definiert Alias für Befehle
-| aspell | Rechtschreibprüfung für Befehlszeile
-| charset | Zeichensatz (de)-kodierung in Buffern
-| exec | ausführen von externen Befehlen aus WeeChat heraus
-| fifo | FIFO Pipe die zur Fernsteuerung von WeeChat genutzt werden kann
-| irc | IRC Chat-Protokoll
-| logger | erstellt Protokolldateien von Buffern
-| relay | Daten via Netzwerk übermitteln
-| script | Skripten-Manager
-| python | Python-Skript API
-| perl | Perl-Skript API
-| ruby | Ruby-Skript API
-| lua | Lua-Skript API
-| tcl | Tcl-Skript API
-| guile | Guile(scheme)-Skript API
-| javascript | Javascript-Skript API
-| trigger | Veränderung von Text und Ausführen von Befehlen bei einem Ereignis, welche durch WeeChat oder eine Erweiterung ausgelöst werden
-| xfer | Datentransfer und Direktchat
-|===
-
-Um mehr über Erweiterungen- und Skriptenprogrammierung (mittels API) zu erfahren,
-sollten Sie die _WeeChat Plugin API Reference_ oder _WeeChat Scripting Guide_ lesen.
-
-[[alias_plugin]]
-=== Alias Erweiterung
-
-Die Alias-Erweiterung erlaubt es, für Befehle, sogenannte Kurzbefehle (einen Alias) zu erstellen.
-
-[[alias_commands]]
-==== Befehle
-
-include::autogen/user/alias_commands.asciidoc[]
-
-[[aspell_plugin]]
-=== Aspell Erweiterung
-
-Mit der ASpell Erweiterung findet eine Rechtschreibprüfung Einzug in WeeChat.
-Dabei ist es möglich mehrere Wörterbücher für einen Buffer zu nutzen.
-
-[[aspell_options]]
-==== Optionen (aspell.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| color | /set aspell.color.* | Farben
-| check | /set aspell.check.* | Optionen um Einstellungen an der Rechtschreibprüfung vorzunehmen
-| dict | <<command_aspell_aspell,/aspell setdict>> +
- /set aspell.dict.* | Wörterbücher für Buffer (Optionen können in Sektion hinzugefügt/entfernt werden)
-| option | /set aspell.option.* | <<aspell_speller_options,Optionen für Rechtschreibprüfung>> (Optionen können in Sektion hinzugefügt/entfernt werden)
-|===
-
-Optionen:
-
-include::autogen/user/aspell_options.asciidoc[]
-
-[[aspell_commands]]
-==== Befehle
-
-include::autogen/user/aspell_commands.asciidoc[]
-
-[[aspell_speller_options]]
-==== Optionen für Rechtschreibprüfung
-
-Optionen für die Rechtschreibprüfung können definiert werden indem man die entsprechende
-Option in die Sektion "option" der Aspell-Konfiguration hinzufügt.
-
-Den Name der Option findet man in der ASpell-Konfigurationsdatei. Eine Auflistung aller
-möglichen Optionen erhält man durch:
-
-----
-$ aspell config
-----
-
-Um zum Beispiel die Option "ignore-case" einzuschalten:
-
-----
-/set aspell.option.ignore-case "true"
-----
-
-[[aspell_suggestions]]
-==== Rechtschreibkorrektur
-
-Eine Rechtschreibkorrektur wird in der Bar-Item "aspell_suggest" angezeigt.
-Die Anzahl an Vorschlägen, für die Rechtschreibkorrektur, kann mit der Option
-_aspell.check.suggestions_ bestimmt werden.
-
-Um die Rechtschreibkorrektur zu aktivieren, muss für die Option _aspell.check.suggestions_
-ein Wert ≥ 0 eingestellt werden und das Bar-Item "aspell_suggest" zu einer Bar, zum
-Beispiel _status_, hinzufügt werden.
-
-Beispiel der Rechtschreibkorrektur, mit einem deutschen Wörterbuch (`de`):
-
-....
-│[12:55] [6] [irc/freenode] 3:#test(+n){4} [dies,Diebs,Viehs] │
-│[@Flashy] diehs █ │
-└─────────────────────────────────────────────────────────────────────────────────┘
-....
-
-Beispiel der Rechtschreibkorrektur, mit zwei Wörterbüchern (`en,de`):
-
-....
-│[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune/Prinz] │
-│[@Flashy] prinr █ │
-└─────────────────────────────────────────────────────────────────────────────────┘
-....
-
-[[charset_plugin]]
-=== Charset Erweiterung
-
-Die Charset Erweiterung übernimmt das de-/kodieren der Zeichensätze.
-
-Es existiert ein Standardzeichensatz zum de-/kodieren und spezielle Zeichensätze
-für Buffer (oder Gruppen von Buffern).
-
-Diese Erweiterung ist optional, sie wird aber empfohlen. Wenn diese Erweiterung
-nicht genutzt wird steht WeeChat lediglich UTF-8 zur Verfügung.
-
-Die Charset Erweiterung wird automatisch von WeeChat geladen. Um sicher zu gehen
-dass diese Erweiterung geladen wurde führen Sie folgenden Befehl aus:
-
-----
-/charset
-----
-
-Wird der Befehl nicht gefunden dann kann die Erweiterung mit dem nachfolgenden
-Befehl nachgeladen werden:
-
-----
-/plugin load charset
-----
-
-Wird die Erweiterung nicht geladen dann sollten Sie WeeChat nochmals mit allen
-Erweiterungen und der Charset Unterstützung kompilieren.
-
-Wird die Charset Erweiterung gestartet dann wird der Terminal und der interne
-Zeichensatz genutzt. Welcher Terminal Zeichensatz genutzt wird hängt davon ab
-welchen Zeichensatz Sie lokal nutzen. Intern wird UTF-8 genutzt.
-
-Beispiel:
-
-....
-charset: terminal: ISO-8859-15, internal: UTF-8
-....
-
-[[charset_options]]
-==== Optionen (charset.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| default | /set charset.default.* | Vorgegebener Zeichensatz zum De-/kodieren.
-| decode | <<command_charset_charset,/charset decode>> +
- /set charset.decode.* | Zeichensatz zum dekodieren (Optionen können in Sektion hinzugefügt/entfernt werden)
-| encode | <<command_charset_charset,/charset encode>> +
- /set charset.encode.* | Zeichensatz zum kodieren (Optionen können in Sektion hinzugefügt/entfernt werden)
-|===
-
-Optionen:
-
-include::autogen/user/charset_options.asciidoc[]
-
-[[charset_commands]]
-==== Befehle
-
-include::autogen/user/charset_commands.asciidoc[]
-
-[[charset_set]]
-==== Zeichensatz auswählen
-
-Um einen Zeichensatz zum de-/kodieren zu bestimmen wird der Befehl `/set` genutzt.
-
-Beispiel:
-
-----
-/set charset.default.decode ISO-8859-15
-/set charset.default.encode ISO-8859-15
-----
-
-Wenn der globale Zeichensatz zum dekodieren nicht gesetzt ist (dies tritt beim
-ersten Aufruf des Charset Erweiterung auf) dann wird automatisch der Zeichensatz
-genutzt der vom Terminal verwendet wird (sofern dieser nicht UTF-8 ist) oder
-der Standardzeichensatz _ISO-8859-1_.
-
-Der Standardwert zum kodieren ist nicht gesetzt. Deshalb wird der interne Zeichensatz
-(UTF-8) genutzt.
-
-Um einen Zeichensatz für IRC Server einzustellen wird der Befehl `/charset` im Server
-Buffer ausgeführt. Wird nur der Zeichensatz als Argument übergeben wird dieser sowohl
-zum kodieren als auch dekodieren genutzt.
-
-Beispiel:
-
-----
-/charset ISO-8859-15
-----
-
-ist identisch mit den Befehlen:
-
-----
-/charset decode ISO-8859-15
-/charset encode ISO-8859-15
-----
-
-Um den Zeichensatz in einem IRC-Channel (oder in einem privaten Buffer) zu ändern
-wird der selbe Befehl im entsprechenden Buffer genutzt.
-
-Um die Zeichenkodierung für alle Channels und privaten Buffer eines IRC Server zu ändern:
-
-----
-/set charset.encode.irc.freenode ISO-8859-15
-----
-
-Um sich alle genutzten Zeichensätze anzeigen zu lassen wird folgender Befehl genutzt:
-
-----
-/set charset.*
-----
-
-[[charset_troubleshooting]]
-==== Fehlersuche
-
-sollten Probleme bei der Zeichensatzdarstellung auftreten dann werfen Sie bitte
-einen Blick in die _WeeChat FAQ_.
-
-[[exec_plugin]]
-=== Exec Erweiterung
-
-Der `/exec` Befehl erlaubt es aus WeeChat heraus einen oder mehrere externe
-Befehle auszuführen und eine Ausgabe im lokalen Buffer darzustellen oder in
-einem Buffer auszugeben.
-
-[[exec_options]]
-==== Optionen (exec.conf)
-
-Sections:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| command | /set exec.command.* | Optionen für Befehle
-| color | /set exec.color.* | Farben
-|===
-
-Options:
-
-include::autogen/user/exec_options.asciidoc[]
-
-[[exec_commands]]
-==== Commands
-
-include::autogen/user/exec_commands.asciidoc[]
-
-[[fifo_plugin]]
-=== Fifo Erweiterung
-
-Sie können WeeChat fern steuern indem Sie Befehle oder einen Text an die FIFO Pipe
-schicken (dazu muss die Option "plugins.var.fifo.fifo" aktiviert sein (standardmäßig
-ist diese Option aktiviert).
-
-Die FIFO pipe findet man in _~/.weechat/_ und heisst _weechat_fifo_xxxx_
-(_xxxx_ ist dabei die ID (PID) der laufenden WeeChat Session).
-
-Die Syntax der FIFO Pipe Befehle/Text sieht wie folgt aus:
-
-....
- plugin.buffer *hier Text oder Befehl
- *hier Text oder Befehl
-....
-
-einige Beispiele:
-
-* Den eigenen Nick auf dem IRC Server freenode in "newnick" ändern:
-
-----
-$ echo 'irc.server.freenode */nick newnick' >~/.weechat/weechat_fifo_12345
-----
-
-* Den Text _Hallo!_ in den Channel #weechat schreiben:
-
-----
-$ echo 'irc.freenode.#weechat *Hallo!' >~/.weechat/weechat_fifo_12345
-----
-
-* Einen Text im aktuellen Buffer ausgeben:
-
-----
-$ echo '*hello!' >~/.weechat/weechat_fifo_12345
-----
-
-* sendet zwei Befehle um alle Python-Skripten zu entfernen und dann neu zu laden (die beiden Befehle müssen
- mit "\n" getrennt werden):
-
-----
-$ printf '%b' '*/python unload\n*/python autoload\n' >~/.weechat/weechat_fifo_12345
-----
-
-Das nachfolgende Skript sendet einen Befehl an alle laufenden WeeChat Instanzen:
-
-[source,shell]
-----
-#!/bin/sh
-if [ $# -eq 1 ]; then
- for fifo in ~/.weechat/weechat_fifo_*
- do
- echo -e "$1" >$fifo
- done
-fi
-----
-
-Falls man das Skript "auto_weechat_command" benennt ruft man es wie folgt auf:
-
-----
-$ ./auto_weechat_command 'irc.freenode.#weechat *Hallo'
-----
-
-[[fifo_commands]]
-==== Befehle
-
-include::autogen/user/fifo_commands.asciidoc[]
-
-[[irc_plugin]]
-=== IRC Erweiterung
-
-Die IRC Erweiterung ist konzipiert um mittels dem IRC Protokoll mit anderen Menschen zu chatten.
-
-Die Erweiterung ist Multi-Server fähig und verfügt über alle IRC Befehle, einschließlich DCC Chat
-und Datenübertragung (via xfer Erweiterung, siehe <<xfer_plugin,Xfer Erweiterung>>).
-
-[[irc_command_line_options]]
-==== Kommandozeilen Befehle
-
-Es ist möglich eine oder mehrere URL von IRC Servern zu übergeben:
-
-----
-irc[6][s]://[nick[:password]@]irc.example.org[:port][/channel][,channel[...]]
-----
-
-Beispiel: Anmelden beim Server _chat.freenode.net_ mit dem Nick _nono_ und betreten
-der Channels _#weechat_ und _#toto_ (Standardport (6667) wird genutzt):
-
-----
-$ weechat irc://nono@chat.freenode.net/#weechat,#toto
-----
-
-[[irc_options]]
-==== Optionen (irc.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| look | /set irc.look.* | Erscheinungsbild
-| color | /set irc.color.* | Farben
-| network | /set irc.network.* | Netzwerkoptionen
-| msgbuffer | /set irc.msgbuffer.* | <<irc_target_buffer,Zielbuffer für IRC Nachrichten>> (Optionen können in Sektion hinzugefügt/entfernt werden)
-| ctcp | /set irc.ctcp.* | <<irc_ctcp_replies,CTCP Antworten>> (Optionen können in Sektion hinzugefügt/entfernt werden)
-| ignore | <<command_irc_ignore,/ignore>> | Ignoriert Menschen
-| server_default | /set irc.server_default.* | Standardwerte für Server (werden genutzt, falls keine Optionen für einen Server gesetzt sind)
-| server | <<command_irc_server,/server>> +
- /set irc.server.* | Server
-|===
-
-Optionen:
-
-include::autogen/user/irc_options.asciidoc[]
-
-[[irc_commands]]
-==== Befehle
-
-include::autogen/user/irc_commands.asciidoc[]
-
-[[irc_ssl_certificates]]
-==== SSL Zertifikate
-
-Wenn eine Verbindung mittels SSL zu einem IRC Server hergestellt wird dann überprüft
-WeeChat immer ob dieser Verbindung sicher ist.
-
-Einige Optionen dienen dazu eine SSL Verbindung zu nutzen:
-
-weechat.network.gnutls_ca_file::
- Pfad zu einer Datei mit SSL Zertifikaten (Standardpfad: "%h/ssl/CAs.pem")
-
-irc.server.xxx.ssl_cert::
- Datei mit den SSL Zertifikaten die genutzt werden um automatisch Ihren Nick
- zu identifizieren (zum Beispiel CertFP auf oftc, siehe unten)
-
-irc.server.xxx.ssl_dhkey_size::
- Größe des Schlüssels der genutzt werden soll beim Schlüsseltausch mittels
- der Diffie-Hellman Methode (Standardwert: 2048)
-
-irc.server.xxx.ssl_verify::
- überprüft ob der SSL Verbindung uneingeschränkt vertraut werden kann (Standardwert: AN)
-
-[NOTE]
-Die Option "ssl_verify" ist Vorgabe mäßig immer eingeschaltet. Das gewährleistet dass
-die Verifizierung sehr streng genommen wird und dadurch vielleicht versagt. Auch wenn
-die Verbindung mit einer vorherigen Version (<0.3.1) funktioniert hat.
-
-[[irc_connect_oftc_with_certificate]]
-===== erstes Beispiel: Verbindung zu oftc und Überprüfung der Zertifikate
-
-* Importieren Sie die Zertifikate in einer Shell:
-
-----
-$ mkdir -p ~/.weechat/ssl
-$ wget -O ~/.weechat/ssl/CAs.pem http://www.spi-inc.org/ca/spi-cacert.crt
-----
-
-[NOTE]
-Es ist möglich mehrere Zertifikate in der Datei CAs.pem zu verwenden.
-
-* In WeeChat, sofern der Server "oftc" schon hinzufügt wurde:
-
-----
-/connect oftc
-----
-
-[[irc_connect_oftc_with_certfp]]
-===== zweites Beispiel: Verbindung zu oftc mittels CertFP
-
-* Erstellen Sie ein Zertifikat in der Shell:
-
-----
-$ mkdir -p ~/.weechat/ssl
-$ cd ~/.weechat/ssl
-$ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem
-----
-
-* In WeeChat, sofern der Server "oftc" schon hinzufügt wurde:
-
-----
-/set irc.server.oftc.ssl_cert "%h/ssl/nick.pem"
-/connect oftc
-/msg nickserv cert add
-----
-
-Für weiterreichende Informationen lesen Sie bitte: http://www.oftc.net/oftc/NickServ/CertFP
-
-[[irc_sasl_authentication]]
-==== SASL Authentifizierung
-
-WeeChat unterstützt eine SASL Authentifikation, mittels verschiedener Mechanismen:
-
-* _plain_: Passwort liegt in Klarschrift vor (Standard)
-* _ecdsa-nist256p-challenge_: Abgleich von öffentlichem/privatem Schlüssel
-* _external_: SSL Zertifikat welches auf Client Seite vorliegt
-* _dh-blowfish_: Passwort wird mittels blowfish verschlüsselt
- (*unsicher*, wird nicht empfohlen)
-* _dh-aes_: Passwort wird mittels AES verschlüsselt
- (*unsicher*, wird nicht empfohlen)
-
-[NOTE]
-Die "gcrypt" Bibliothek wird beim kompilieren von WeeChat benötigt um
-"dh-blowfish"nutzen zu können (siehe <<dependencies,Abhängigkeiten>>).
-
-Optionen für Server sind:
-
-* _sasl_mechanism_: Mechanismus welcher genutzt werden soll (siehe oben)
-* _sasl_timeout_: Zeitüberschreitung für Authentifizierung (in Sekunden)
-* _sasl_fail_: auszuführende Aktion falls die SASL Authentifizierung fehlschlägt
-* _sasl_username_: Username (Nickname)
-* _sasl_password_: Passwort
-* _sasl_key_: Datei mit privatem ECC Schlüssel (für den
- _ecdsa-nist256p-challenge_ Mechanismus)
-
-[[irc_sasl_ecdsa_nist256p_challenge]]
-===== SASL ECDSA-NIST256P-CHALLENGE
-
-Es muss ein privater Schlüssel erstellt werden um sich mittels des
-ECDSA-NIST256P-CHALLENGE Mechanismus authentifizieren zu können (es wird
-dadurch kein Passwort während des Verbindungsaufbaus benötigt).
-
-Ein Schlüssel kann mit folgendem Befehl erzeugt werden:
-
-----
-$ openssl ecparam -genkey -name prime256v1 >~/.weechat/ecdsa.pem
-----
-
-Um den öffentlichen Schlüssel zu erhalten (base64 enkodiert) muss
-folgender Befehl ausgeführt werden:
-
-----
-$ openssl ec -noout -text -conv_form compressed -in ~/.weechat/ecdsa.pem | grep '^pub:' -A 3 | tail -n 3 | tr -d ' \n:' | xxd -r -p | base64
-----
-
-Nun Verbindung zum Server herstellen, identifizieren (z.B. mittels "nickserv identify")
-und den öffentlichen Schlüssel für den eigenen Zugang festlegen (der base64 Schlüssel
-im Beispiel muss durch den eigenen öffentlichen Schlüssel ersetzt werden:
-
-----
-/connect freenode
-/msg nickserv identify your_password
-/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q
-----
-
-Konfiguration der SASL Optionen des Servers:
-
-----
-/set irc.server.freenode.sasl_mechanism ecdsa-nist256p-challenge
-/set irc.server.freenode.sasl_username "your_nickname"
-/set irc.server.freenode.sasl_key "%h/ecdsa.pem"
-----
-
-Erneut mit dem Server verbinden:
-
-----
-/reconnect freenode
-----
-
-[[irc_tor_freenode]]
-==== Verbindung zu Freenode mittels TOR/SASL herstellen
-
-Neben der Möglichkeit eine Verbindung zum Freenode Server mittels SSL aufzubauen,
-kann man außerdem eine Verbindung via TOR (https://www.torproject.org/) herstellen.
-Dies dient dazu die eigene Privatsphäre und Sicherheit im Internet zu erhöhen.
-
-Im ersten Schritt muss TOR installiert werden. Für Debian (und Derivate):
-
-----
-$ sudo apt-get install tor
-----
-
-In WeeChat muss nun ein socks5 Proxy für den TOR Service erstellt werden (Hostname/IP
-und Port müssen dabei an die eigene TOR Konfiguration angepasst werden):
-
-----
-/proxy add tor socks5 127.0.0.1 9050
-----
-
-Jetzt muss der neue Server hinzufügt werden, zum Beispiel:
-
-----
-/server add freenode-tor p4fsi4ockecnea7l.onion
-----
-
-Einen Proxy für TOR anlegen:
-
-----
-/set irc.server.freenode-tor.proxy "tor"
-----
-
-Die SASL Authentifikation einstellen:
-
-----
-/set irc.server.freenode-tor.sasl_username "your_nickname"
-/set irc.server.freenode-tor.sasl_password "your_password"
-----
-
-Zum Abschluss stellt man eine Verbindung zum Server her:
-
-----
-/connect freenode-tor
-----
-
-Um mehr über Freenode und TOR zu erfahren: http://freenode.net/irc_servers.shtml#tor
-
-[[irc_smart_filter_join_part_quit]]
-==== einfacher Filter für join/part/quit Nachrichten
-
-Es existiert ein einfacher Filter für join/part/quit Nachrichten falls ein Nick für
-eine vorgegebene Zeit in einem Channel inaktiv gewesen ist.
-
-Diese Funktion ist standardmäßig aktiviert, aber Sie müssen einen Filter erstellen damit
-solche Nachrichten im Buffer unterdrückt werden. Ein Beispiel:
-
-----
-/filter add irc_smart * irc_smart_filter *
-----
-
-Dabei ist es natürlich möglich den Filter in der Form einzurichten dass er nur
-für einen Channel Gültigkeit besitzt oder aber für mehrere Channels die mit dem
-selben Namen beginnen (siehe `/help filter`):
-
-----
-/filter add irc_smart_weechat irc.freenode.#weechat irc_smart_filter *
-/filter add irc_smart_weechats irc.freenode.#weechat* irc_smart_filter *
-----
-
-Sie können auch nur join oder part/quit Nachrichten unterdrücken:
-
-----
-/set irc.look.smart_filter_join on
-/set irc.look.smart_filter_quit on
-----
-
-Zusätzlich kann auch eine Verzögerung (in Minuten) eingestellt werden:
-
-----
-/set irc.look.smart_filter_delay 5
-----
-
-Falls ein Nick in den letzten fünf Minuten nicht aktiv gewesen ist werden seine
-join und/oder part/quit Nachrichten im Channel unterdrückt.
-
-[[irc_ctcp_replies]]
-==== CTCP Antworten
-
-Sie haben die Möglichkeit CTCP Antworten anzupassen oder aber bestimmte CTCP
-Anfragen zu sperren (es wird nicht darauf geantwortet).
-
-Beispiel: Um eine Antwort auf die CTCP Anfrage "VERSION" anzupassen nutzen Sie
-folgenden Befehl:
-
-----
-/set irc.ctcp.version "I'm running WeeChat $version, it rocks!"
-----
-
-Wenn Sie die Anfrage CTCP "VERSION" blockieren möchten (es wird nicht darauf
-geantwortet) dann löschen Sie einfach den Rückgabe-String:
-
-----
-/set irc.ctcp.version ""
-----
-
-Selbst bisher unbekannte CTCP Anfragen können beantwortet werden. Nehmen wir
-zum Beispiel die Anfrage CTCP "BLABLA":
-
-----
-/set irc.ctcp.blabla "Dies ist meine Antwort auf CTCP BLABLA"
-----
-
-Auch kann man CTCP Antworten für jeden einzelnen Server anpassen. Dazu muss
-man lediglich den internen Servernamen vor die CTCP Anfrage setzen:
-
-----
-/set irc.ctcp.freenode.version "WeeChat $version (for freenode)"
-----
-
-Sollen die CTCP Antworten wieder auf die Standardeinstellungen zurück gesetzt werden
-dann müssen Sie lediglich die Option löschen:
-
-----
-/unset irc.ctcp.version
-----
-
-Folgende Platzhalter können in den CTCP-Antworten genutzt werden. Diese werden dann
-mit dem entsprechenden Wert ersetzt:
-
-[width="100%",cols="^2l,4,8",options="header"]
-|===
-| Platzhalter | Beschreibung | Wert/Beispiel
-| $clientinfo | Liste der CTCP Antworten | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION`
-| $version | WeeChat Version | `0.4.0-dev`
-| $versiongit | WeeChat Version + Git version ^(1)^ | `0.4.0-dev (git: v0.3.9-104-g7eb5cc4)`
-| $git | Git Version ^(1)^ | `v0.3.9-104-g7eb5cc4`
-| $compilation | Datum der Kompilierung | `Dec 16 2012`
-| $osinfo | Info über das genutzte OS | `Linux 2.6.32-5-amd64 / x86_64`
-| $site | WeeChat Seite | `https://weechat.org/`
-| $download | WeeChat, Download Seite | `https://weechat.org/download`
-| $time | Aktuelle Uhrzeit/Datum | `Sun, 16 Dec 2012 10:40:48 +0100`
-| $username | Username beim IRC Server | `Name`
-| $realname | Realname beim IRC Server | `John Doe`
-|===
-
-[NOTE]
-^(1)^ Die Git Version wird durch die Ausgabe des Befehls `git describe` ermittelt.
-Dies erfordert, dass WeeChat aus dem Git Repository heraus kompiliert wurde
-und das Git überhaupt installiert ist.
-
-Falls CTCP Optionen nicht festgelegt sind, lauten die CTCP Antworten:
-
-[width="100%",cols="^2,4,8",options="header"]
-|===
-| CTCP | Antwortformat | Beispiel
-| CLIENTINFO | `$clientinfo` | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION`
-| FINGER | `WeeChat $versiongit` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4)`
-| SOURCE | `$download` | `https://weechat.org/download`
-| TIME | `$time` | `Sun, 16 Dec 2012 10:40:48 +0100`
-| USERINFO | `$username ($realname)` | `Name (John Doe)`
-| VERSION | `WeeChat $versiongit ($compilation)` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4) (Dec 16 2012)`
-|===
-
-[[irc_target_buffer]]
-==== Zielbuffer für IRC Nachrichten
-
-Sie können einen Zielbuffer einstellen in welchem IRC Nachrichten dargestellt werden sollen.
-Dazu dienen die Optionen `+irc.msgbuffer.*+`.
-
-Für einige IRC Nachrichten (siehe unten) können zusätzliche Werte angepasst werden:
-
-current::
- aktueller Buffer (falls es ein IRC Buffer ist, ansonsten im entsprechenden Server Buffer)
-
-private::
- privaten Buffer, oder im aktuellen/Server Buffer falls nicht vorhanden (gemäß der Einstellung
- in der Option _irc.look.msgbuffer_fallback_)
-
-server::
- Server Buffer
-
-weechat::
- WeeChat "core" Buffer
-
-Falls die Option nicht gesetzt ist (Standard) wählt WeeChat einen geeigneten Buffer aus,
-üblicherweise handelt es sich dabei um einen Server oder Channel-Buffer.
-
-Unvollständige Liste der IRC Nachrichten bzw. Alias die angepasst werden können:
-
-[width="60%",cols="^1m,^3m,8",options="header"]
-|===
-| Nachricht | Alias | Beschreibung
-| error | | Fehler
-| invite | | Einladung in einen Channel
-| join | | join
-| kick | | kick
-| kill | | kill
-| mode | | Modus
-| notice | | Mitteilung
-| part | | part
-| quit | | quit
-| topic | | topic
-| wallops | | wallops
-| | ctcp | ctcp (gesendet oder empfangen, in einer privmsg oder notice Nachricht)
-| 221 | | User mode string
-| 275 | whois | whois (sichere Verbindung)
-| 301 | whois | whois (abwesend)
-| 303 | | ison
-| 305 | unaway | nicht abwesend
-| 306 | away | abwesend
-| 307 | whois | whois (registrierter Nick)
-| 310 | whois | whois (Hilfe Modus)
-| 311 | whois | whois (User)
-| 312 | whois | whois (Server)
-| 313 | whois | whois (Operator)
-| 314 | whowas | whowas
-| 315 | who | who (Ende)
-| 317 | whois | whois (inaktiv)
-| 318 | whois | whois (ende)
-| 319 | whois | whois (Channels)
-| 320 | whois | whois (User identifizieren)
-| 321 | list | list (Start)
-| 322 | list | list (Channel)
-| 323 | list | list (Ende)
-| 326 | whois | whois (hat oper privs)
-| 327 | whois | whois (Host)
-| 328 | | Channel URL
-| 329 | | Erstellungsdatum des Channel
-| 330 | whois | whois (eingelogged als)
-| 331 | | kein Topic für Channel
-| 332 | | Channel-Topic
-| 333 | | Infos über Topic
-| 335 | whois | whois (ist ein Bot auf)
-| 338 | whois | whois (Host)
-| 341 | | inviting
-| 343 | whois | whois (ist opered als)
-| 344 | reop | channel reop
-| 345 | reop | channel reop (Ende)
-| 346 | invitelist | Einladung Liste
-| 347 | invitelist | Einladung Liste (Ende)
-| 348 | exceptionlist | exception Liste
-| 349 | exceptionlist | exception Liste (Ende)
-| 351 | | Server Version
-| 352 | who | who
-| 353 | names | Liste von Usern im Channel
-| 366 | names | Ende der /names Liste
-| 367 | banlist | ban Liste
-| 368 | banlist | Ende der ban Liste
-| 369 | whowas | whowas (Ende)
-| 378 | whois | whois (Verbindung von)
-| 379 | whois | whois (genutzte Modi)
-| 401 | whois | kein solcher Nick/Channel
-| 402 | whois | kein solcher Server
-| 432 | | fehlerhafter Nickname
-| 433 | | Nickname wird schon verwendet
-| 438 | | nicht autorisiert um Nicknamen zu ändern
-| 671 | whois | whois (sichere Verbindung)
-| 728 | quietlist | quiet Liste
-| 729 | quietlist | Ende der quiet Liste
-| 732 | monitor | Liste der Nicks welche überwacht werden
-| 733 | monitor | Liste der Nicks welche überwacht werden (Ende)
-| 901 | | Sie sind nun eingelogged
-|===
-
-andere nummerische Befehle können angepasst werden.
-
-Den IRC Nachrichten kann der Servername vorangestellt werden um zu spezifizieren
-von welchem IRC Server die Nachricht gekommen ist. Zum Beispiel: `freenode.whois`.
-
-einige Beispiele:
-
-* gibt die Antwort von `/whois` im privaten Buffer aus:
-
-----
-/set irc.msgbuffer.whois private
-----
-
-* stellt die Ausgabe von whois wieder auf Standardbuffer zurück (Server Buffer):
-
-----
-/unset irc.msgbuffer.whois
-----
-
-* zeigt Einladungen im aktuellen Buffer an, nur für den "freenode" Server:
-
-----
-/set irc.msgbuffer.freenode.invite current
-----
-
-* die Nachricht "303" (ison) wird im WeeChat "core" Buffer angezeigt:
-
-----
-/set irc.msgbuffer.303 weechat
-----
-
-[[logger_plugin]]
-=== Logger Erweiterung
-
-Die Logger Erweiterung erlaubt es den Inhalt von Buffern in Dateien zu sichern.
-Dabei kann man über Optionen Einfluss darauf nehmen was gesichert und wie etwas
-gesichert werden soll.
-
-[[logger_options]]
-==== Optionen (logger.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| look | /set logger.look.* | Erscheinungsbild
-| color | /set logger.color.* | Farben
-| file | /set logger.file.* | Optionen für Protokolldateien
-| level | /set logger.level.* | Protokollierungslevel pro Buffer (Optionen können in Sektion hinzugefügt/entfernt werden)
-| mask | /set logger.mask.* | Dateinamenmaske pro buffer (Optionen können in Sektion hinzugefügt/entfernt werden)
-|===
-
-Optionen:
-
-include::autogen/user/logger_options.asciidoc[]
-
-[[logger_commands]]
-==== Befehle
-
-include::autogen/user/logger_commands.asciidoc[]
-
-[[logger_log_levels]]
-==== Log Levels
-
-Die Protokollierung wird durch einen sogenannten Level für jeden Buffer sichergestellt.
-Der Standardlevel ist dabei 9 (damit werden alle Nachrichten die im Buffer angezeigt
-werden protokolliert). Der Grad einer Protokollierung kann separat für jeden einzelnen
-Buffer oder aber für eine Anzahl von Buffern festgelegt werden.
-
-Mögliche Level sind hierbei 0 bis 9. Null bedeutet, es findet keine Protokollierung
-statt und neun, dass alle Nachrichten protokolliert werden.
-
-Erweiterungen nutzen unterschiedliche Level um Nachrichten anzuzeigen.
-Die IRC Erweiterung nutzt folgende Level:
-
-* Level 1: Nachrichten eines Users (im Channel oder privat)
-* Level 2: Nick wurde geändert (der eigene oder von einer anderen Person)
-* Level 3: jedwede Server Nachricht (ausgenommen join/part/quit)
-* Level 4: Server Nachrichten join/part/quit
-
-Setzen Sie also den Grad der Protokollierung für einen IRC Channel auf "3"
-wird Weechat alle Nachrichten protokollieren, ausgenommen join/part/quit
-Nachrichten.
-
-weitere Beispiele:
-
-* Level 3 für IRC Channel #weechat nutzen:
-
-----
-/set logger.level.irc.freenode.#weechat 3
-----
-
-* Level 3 für freenode Server Buffer nutzen:
-
-----
-/set logger.level.irc.server.freenode 3
-----
-
-* Level 3 für alle Channels auf dem Server freenode nutzen:
-
-----
-/set logger.level.irc.freenode 3
-----
-
-* Level 2 für alle IRC Buffers nutzen:
-
-----
-/set logger.level.irc 2
-----
-
-[[logger_filenames_masks]]
-==== Dateinamenmaske
-
-Es ist möglich eine Dateinamenmaske für jeden Buffer zu erstellen und diese Maske
-mit lokalen Buffervariablen zu füllen. Um zu sehen welche lokalen Variabel es gibt:
-
-----
-/buffer localvar
-----
-
-Zum Beispiel für den Buffer "irc.freenode.#weechat". WeeChat sucht in dieser
-Reihenfolge nach einer Maske:
-
-----
-logger.mask.irc.freenode.#weechat
-logger.mask.irc.freenode
-logger.mask.irc
-logger.file.mask
-----
-
-Dies bedeutet dass man eine Maske speziell für einen IRC Server
-("logger.mask.irc.freenode") anlegen kann oder aber global für
-die Erweiterung ("logger.mask.irc").
-
-[[logger_files_by_date]]
-===== Protokolldatei nach Datum
-
-Um Protokolldateien mit einer Datumsrelevanz zu erstellen müssen
-Datumsspezifikationen in der Maske genutzt werden (siehe
-`man strftime` für das Format). Zum Beispiel:
-
-----
-/set logger.file.mask "%Y/%m/$plugin.$name.weechatlog"
-----
-
-Erstellt eine Struktur in folgender Form:
-
-....
-~/.weechat/
- |--- logs/
- |--- 2010/
- |--- 11/
- | irc.server.freenode.weechatlog
- | irc.freenode.#weechat.weechatlog
- |--- 2010/
- |--- 12/
- | irc.server.freenode.weechatlog
- | irc.freenode.#weechat.weechatlog
-....
-
-[[logger_irc_files_by_server_channel]]
-===== Protokolldateien nach Server und Channel
-
-Soll für jeden IRC Server ein Verzeichnis erstellt werden mit jeweils
-einer Protokolldatei für jeden Channel:
-
-----
-/set logger.mask.irc "irc/$server/$channel.weechatlog"
-----
-
-Erstellt eine Struktur in folgender Form:
-
-....
-~/.weechat/
- |--- logs/
- |--- irc/
- |--- freenode/
- | freenode.weechatlog
- | #weechat.weechatlog
- | #mychan.weechatlog
- |--- oftc/
- | oftc.weechatlog
- | #chan1.weechatlog
- | #chan2.weechatlog
-....
-
-[[relay_plugin]]
-=== Relay Erweiterung
-
-Die Relay-Erweiterung wird genutzt um Daten, mittels unterschiedlicher Protokolle,
-über ein Netzwerk zu übermitteln:
-
-* _irc_: IRC Proxy: um mittels einem oder mehreren IRC-Clients eine Verbindung zu
- IRC Servern zu unterhalten.
-* _weechat_: Protokoll welches es erlaubt die Daten mit einer externen Oberfläche
- zu teilen (zum Beispiel QWeeChat)
-
-[[relay_options]]
-==== Optionen (relay.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| look | /set relay.look.* | Erscheinungsbild
-| color | /set relay.color.* | Farben
-| network | /set relay.network.* | Netzwerkoptionen
-| irc | /set relay.irc.* | für das IRC Protokoll spezifische Optionen (IRC Proxy)
-| port | <<command_relay_relay,/relay add>> +
- /set relay.port.* | Ports zur Nutzung der Relay-Erweiterung (IRC und weechat Protokolle) (Optionen können in Sektion hinzugefügt/entfernt werden)
-|===
-
-Optionen:
-
-include::autogen/user/relay_options.asciidoc[]
-
-[[relay_commands]]
-==== Befehle
-
-include::autogen/user/relay_commands.asciidoc[]
-
-[[relay_password]]
-==== Passwort
-
-Es wird nachdrücklich Empfohlen ein Passwort für die Relay-Verbindung zu nutzen:
-
-----
-/set relay.network.password "meinPasswort"
-----
-
-Dieses Passwort wird sowohl für das _irc_ als auch für das _weechat_ Protokoll
-verwendet.
-
-[[relay_ssl]]
-==== SSL
-
-Man kann SSL mittels eines selbst erstellten Zertifikates und eines privaten
-Schlüssels nutzen. Um SSL für die Verbindung zu aktivieren stellt man dem
-Protokollnamen ein "ssl" voran.
-
-Die Standarddatei für Zertifikate/Schlüssel ist _~/.weechat/ssl/relay.pem_
-(option <<option_relay.network.ssl_cert_key,relay.network.ssl_cert_key>>).
-
-Ein Zertifikat und einen privaten Schlüssel kann man mit folgenden Befehlen
-erstellen:
-
-----
-$ mkdir -p ~/.weechat/ssl
-$ cd ~/.weechat/ssl
-$ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem
-----
-
-Sollte WeeChat schon gestartet worden sein, kann man das Zertifikat und der private
-Schlüssel mittels folgendem Befehl nachträglich geladen werden:
-
-----
-/relay sslcertkey
-----
-
-[[relay_irc_proxy]]
-==== IRC Proxy
-
-Die Relay Erweiterung kann wie ein IRC Proxy genutzt werden. Dabei simuliert
-die Erweiterung einen IRC Server und man kann sich mit jedem IRC Client zu WeeChat
-verbinden.
-
-Es kann für jeden IRC Server ein Port definiert werden, oder aber ein Port für
-alle Server.
-
-Wird ein Port für alle Server genutzt, dann muss der Client den internen Namen
-des zu nutzenden Servers mit dem IRC Befehl "PASS" anfordern:
-
-----
-PASS server:meinPasswort
-----
-
-Beispiel: IRC Proxy mit SSL für einen beliebigen Server (Client wählt aus):
-
-----
-/relay add ssl.irc 8000
-----
-
-Beispiel: IRC Proxy ohne SSL und nur für "freenode":
-
-----
-/relay add irc.freenode 8000
-----
-
-Nun kann man eine Verbindung zum Port 8000 mit jedem beliebigen IRC Client
-herstellen, indem man das Server Passwort "meinPasswort" nutzt (oder
-"freenode:meinPasswort" sofern kein Server angegeben wurde).
-
-[[relay_weechat_protocol]]
-==== WeeChat Protokoll
-
-Die Relay-Erweiterung kann Daten, mittels dem WeeChat Protokoll, an eine
-externe Oberfläche senden.
-
-Nun kann man mittels einer remote Oberfläche Kontakt zu WeeChat herstellen.
-Eine Liste der remote Oberflächen findet man auf der Homepage:
-https://weechat.org/download
-
-[IMPORTANT]
-WeeChat selber kann sich NICHT mit einer anderen WeeChat Instanz über
-dieses Protokoll verbinden.
-
-Zum Beispiel:
-
-----
-/relay add weechat 9000
-----
-
-Nun kann man über den Port 9000 mittels einer Oberfläche und dem Passwort
-"meinPasswort" eine Verbindung zu WeeChat herstellen.
-
-[[relay_websocket]]
-==== WebSocket
-
-Das WebSocket Protokoll (http://tools.ietf.org/html/rfc6455[RFC 6455]) wird nun
-in der Relay Erweiterung unterstützt.
-
-Der WebSocket Handshake wird automatisch erkannt und der Socket ist sofort
-funktionsfähig, sofern die benötigten Header gefunden werden und die Herkunft
-bestätigt wurde (siehe Option <<option_relay.network.websocket_allowed_origins,relay.network.websocket_allowed_origins>>).
-
-Ein WebSocket kann in HTML5, mit einer JavaScript Zeile, geöffnet werden:
-
-[source,js]
-----
-websocket = new WebSocket("ws://server.com:9000/weechat");
-----
-
-Der Port (im Beispiel: 9000) ist der Port der in der Relay Erweiterung angegeben wurde.
-Die URI muss immer auf "/weechat" enden (_irc_ und _weechat_ Protokoll).
-
-[[scripts_plugins]]
-=== Erweiterungen für Skripten
-
-WeeChat unterstützt sechs Skript-Erweiterungen: Python, Perl, Ruby, Lua, Tcl,
-Guile (scheme) und Javascript.
-Mit diesen Erweiterungen kann für die jeweilige Skript-Sprache, Skripten geladen, ausgeführt
-und entfernt werden.
-
-Eine weitere Erweiterung ist "script". Dies ist ein Skripten-Manager mit dem es möglich ist,
-unabhängig von der Skript-Sprache, Skripten zu laden und zu entfernen. Des weiteren können
-Skripten, aus dem Skript-Repository, installiert und deinstalliert werden. Das Skript-Repository
-kann unter folgender URL eingesehen werden: https://weechat.org/scripts
-
-Sollten wir Ihr Interesse geweckt haben, selber Skripten für WeeChat zu programmieren, dann lesen Sie
-bitte die _WeeChat Scripting Guide_.
-
-[[script_options]]
-==== Script Optionen (script.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| look | /set script.look.* | Erscheinungsbild
-| color | /set script.color.* | Farben
-| scripts | /set script.scripts.* | Optionen für den Download von Skripten
-|===
-
-Optionen:
-
-include::autogen/user/script_options.asciidoc[]
-
-[[script_commands]]
-==== Skript Befehle
-
-include::autogen/user/script_commands.asciidoc[]
-
-[[python_commands]]
-==== Python Befehle
-
-include::autogen/user/python_commands.asciidoc[]
-
-[[perl_commands]]
-==== Perl Befehle
-
-include::autogen/user/perl_commands.asciidoc[]
-
-[[ruby_commands]]
-==== Ruby Befehle
-
-include::autogen/user/ruby_commands.asciidoc[]
-
-[[lua_commands]]
-==== Lua Befehle
-
-include::autogen/user/lua_commands.asciidoc[]
-
-[[tcl_commands]]
-==== Tcl Befehle
-
-include::autogen/user/tcl_commands.asciidoc[]
-
-[[guile_commands]]
-==== Guile Befehle
-
-include::autogen/user/guile_commands.asciidoc[]
-
-[[javascript_commands]]
-==== Javascript Befehle
-
-include::autogen/user/javascript_commands.asciidoc[]
-
-[[trigger_plugin]]
-=== Trigger Erweiterung
-
-Trigger ist das Schweizer Armeemesser für WeeChat. Es können verschiedene
-Hooks überwacht werden (signal. modifier, print, ...), der Inhalt von
-Daten kann verändert werden, es können ein- oder mehrere Befehle ausgeführt
-werden. Eine Bedingung kann genutzt werden um damit zu verhindern, dass der
-Trigger unter bestimmten Umständen ausgeführt wird.
-
-Um Trigger nutzen zu können ist es erforderlich zu wissen wie signals,
-modifiers, ... in WeeChat funktionieren. Dazu sollte man das Kapitel
-_Hooks_ in der _Anleitung für API Erweiterung_ lesen.
-
-[[trigger_options]]
-==== Optionen (trigger.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| look | /set trigger.look.* | Erscheinungsbild
-| color | /set trigger.color.* | Farben
-| trigger | <<command_trigger_trigger,/trigger add>> +
- <<command_trigger_trigger,/trigger set>> +
- /set trigger.trigger.* | Trigger Optionen
-|===
-
-Optionen:
-
-include::autogen/user/trigger_options.asciidoc[]
-
-[[trigger_commands]]
-==== Befehle
-
-include::autogen/user/trigger_commands.asciidoc[]
-
-[[trigger_anatomy]]
-==== Aufbau eines Triggers
-
-Ein Trigger hat folgende Optionen (Benennung ist
-`trigger.trigger.<name>.<option>`):
-
-[width="100%",cols="2m,2,10",options="header"]
-|===
-| Option | Wert | Beschreibung
-
-| enabled | `on`, `off` |
- Wenn die Option auf `off` gesetzt ist, dann ist der Trigger deaktiviert und die Ausführung ist gestoppt.
-
-| hook | `signal`, `hsignal`, `modifier`, `print`, `command`, `command_run`,
- `timer`, `config`, `focus` |
- Der hook welcher durch Trigger genutzt werden soll. Für weitere Informationen siehe
- _Anleitung für API Erweiterung_, Kapitel _Hooks_.
-
-| arguments | string |
- Argumente welche der Hook nutzen soll. Dies ist davon abhängig welcher Hook-Typ genutzt wird.
-
-| conditions | string |
- Bedingung wann der Trigger ausgeführt werden soll; Inhalt ist evaluiert
- (siehe Befehl <<command_weechat_eval,/eval>>).
-
-| regex | string |
- Einer oder mehrere erweiterte reguläre POSIX Ausdrücke, um die empfangenen Daten
- im Hook-Callback zu ändern (oder Daten die durch die Trigger-Erweiterung hinzugefügt
- worden sind), siehe <<trigger_regex,reguläre Ausdrücke>>.
-
-| command | string |
- Befehl der ausgeführt werden soll (mehrere Befehle können durch Kommata
- voneinander getrennt werden); Inhalt ist evaluiert (siehe Befehl <<command_weechat_eval,/eval>>).
-
-| return_code | `ok`, `ok_eat`, `error` |
- Rückgabewert des Callback (Standardwert: `ok`, sollte für fast jeden Trigger
- genutzt werden. Die anderen Werte werden höchst selten verwendet).
-|===
-
-Ein Beispiel ist der standardmäßig genutzte Trigger _beep_, der
-folgende Optionen besitzt:
-
-----
-trigger.trigger.beep.enabled = on
-trigger.trigger.beep.hook = print
-trigger.trigger.beep.arguments = ""
-trigger.trigger.beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
-trigger.trigger.beep.regex = ""
-trigger.trigger.beep.command = "/print -beep"
-trigger.trigger.beep.return_code = ok
-----
-
-[[trigger_execution]]
-==== Ausführung
-
-Wenn ein Trigger-Callback aufgerufen wird, dann wird folgende Befehlskette
-abgearbeitet:
-
-. Überprüfung von Bedingungen; falls unwahr, beenden
-. ersetze Text mittels erweitertem regulärer POSIX Ausdruck (sofern im Trigger definiert)
-. ein oder mehrere Befehle werden ausgeführt (sofern im Trigger definiert)
-. Beendigung mit einem Rückgabewert (ausgenommen sind die Hooks _modifier_ und _focus_)
-
-[[trigger_hook_arguments]]
-==== Hook Argumente
-
-Die Argumente sind abhängig von dem genutzten Hook und werden durch
-ein Semikolon getrennt.
-
-[width="100%",cols="2,6,7",options="header"]
-|===
-| Hook | Argumente | Beispiele
-
-| signal |
- 1. Signalname (Priorität erlaubt) (erforderlich) +
- 2. Signalname (Priorität erlaubt) +
- 3. ... |
- `*,irc_in_privmsg` +
- `*,irc_in_privmsg;*,irc_in_notice` +
- `signal_sigwinch`
-
-| hsignal |
- 1. Signalname (Priorität erlaubt) (erforderlich) +
- 2. Signalname (Priorität erlaubt) +
- 3. ... |
- `nicklist_nick_added`
-
-| modifier |
- 1. modifier-Name (Priorität erlaubt) (erforderlich) +
- 2. modifier-Name (Priorität erlaubt) +
- 3. ... |
- `weechat_print` +
- `5000\|input_text_display;5000\|history_add`
-
-| print |
- 1. Buffername +
- 2. Tags +
- 3. Nachricht +
- 4. entferne Farben (0/1) |
- `irc.freenode.*` +
- `irc.freenode.#weechat` +
- `irc.freenode.#weechat;irc_notice` +
- `*;;;1`
-
-| command |
- 1. Befehlsname (Priorität erlaubt) (erforderlich) +
- 2. Beschreibung +
- 3. Argumente +
- 4. Beschreibung der Argumente +
- 5. Vervollständigung |
- `test` +
- `5000\|test`
-
-| command_run |
- 1. Befehl (Priorität erlaubt) (erforderlich) +
- 2. Befehl (Priorität erlaubt) +
- 3. ... |
- `/cmd arguments`
-
-| timer |
- 1. Intervall in Millisekunden (erforderlich) +
- 2. Abgleich der Sekunden (Standardwert: 0) +
- 3. max. Anzahl an Aufrufen (Standardwert: 0, was "unendlich" bedeutet) |
- `3600000` +
- `60000;0;5`
-
-| config |
- 1. Name der Option (Priorität erlaubt) (erforderlich) +
- 2. Name der Option (Priorität erlaubt) +
- 3. ... |
- `+weechat.look.*+`
-
-| focus |
- 1. area Name (Priorität erlaubt) (erforderlich) +
- 2. area Name (Priorität erlaubt) +
- 3. ... |
- `buffer_nicklist`
-|===
-
-[[trigger_conditions]]
-==== Bedingungen
-
-Bedingungen werden benötigt um einen Vorgang am Laufen zu halten oder um
-diesen zu stoppen.
-
-Diese sind evaluiert und die Daten im Callback können verwendet werden
-(siehe <<trigger_callback_data,Daten in Callbacks>> und Befehl
-<<command_weechat_eval,/eval>>).
-
-Beispiel: der standardmäßig genutzte Trigger _beep_ nutzt folgende Bedingungen,
-um ausschließlich bei einer privaten Nachricht oder einem Highlight ausgeführt
-zu werden:
-
-----
-${tg_highlight} || ${tg_msg_pv}
-----
-
-[[trigger_regex]]
-==== reguläre Ausdrücke
-
-Reguläre Ausdrücke werden verwendet um Variablen in einem Callback Hashtable zu ändern.
-
-Das Format ist: "/regex/replace" oder "/regex/replace/var" (wobei _var_ eine
-Variable eines Hashtable darstellt). +
-Sollte _var_ nicht näher spezifiziert sein, wird die Standard-Variable genutzt,
-welche abhängig von dem genutzten Hook ist:
-
-[width="50%",cols="4,5m",options="header"]
-|===
-| Hook | Standard-Variable
-| signal | tg_signal_data
-| hsignal |
-| modifier | tg_string
-| print | tg_message
-| command | tg_argv_eol1
-| command_run | tg_command
-| timer | tg_remaining_calls
-| config | tg_value
-| focus |
-|===
-
-Mehrere reguläre Ausdrücke können durch ein Leerzeichen voneinander
-getrennt werden, zum Beispiel:
-"/regex1/replace1/var1 /regex2/replace2/var2".
-
-Das Zeichen "/" kann durch jedes andere Zeichen ersetzt werden (ein
-oder mehrere identische Zeichen).
-
-Matching groups können in "replace" genutzt werden:
-
-* `${re:0}` bis `${re:99}`: `${re:0}` um alles zu matchen, `${re:1}` bis
- `${re:99}` um Gruppen zu fangen
-* `${re:+}`: der letzte match (mit der höchsten Nummer)
-* `${hide:c,${re:N}}`: match "N" mit allen Zeichen die durch "c" ersetzt wurden
- (Beispiel: `+${hide:*,${re:2}}+` ist die group #2 mit allen Zeichen die durch
- `+*+` ersetzt wurden).
-
-Beispiel: nutzte Fettschrift zwischen dem Zeichen "*":
-
-----
-/\*(\S+)\*/*${color:bold}${re:1}${color:-bold}*/
-----
-
-Beispiel: der Standard-Trigger _server_pass_ nutzt folgenden regulären Ausdruck
-um ein Passwort in den Befehlen `/server` und `/connect` zu verbergen (die
-einzelnen Zeichen des Passwortes werden durch `+*+` ersetzt):
-
-----
-==^(/(server|connect) .*-(sasl_)?password=)(\S+)(.*)==${re:1}${hide:*,${re:4}}${re:5}
-----
-
-[NOTE]
-In diesem Beispiel wird "==" als Trennzeichen verwendet, da ein "/" in
-dem regulären Ausdruck genutzt wird.
-
-[[trigger_command]]
-==== Befehl
-
-Der Befehl wird erst ausgeführt nach dem mittels eines regulären Ausdruckes
-der Text verändert wurde. Mehrere Befehle können durch Semikolon voneinander
-getrennt werden.
-
-Der Inhalt ist evaluiert (siehe Befehl <<command_weechat_eval,/eval>>) und der
-durch einen regulären Ausdruck veränderte Text kann in dem Befehl verwendet
-werden.
-
-Beispiel: der standardmäßig genutzte Trigger _beep_ nutzt folgenden
-Befehl um einen Ton (BEL) zu erzeugen.
-
-----
-/print -beep
-----
-
-[[trigger_callback_data]]
-==== Daten in Callbacks
-
-Daten, die dem Callback übergeben werden, werden in einer Hashtable (Pointer
-und Strings) gesichert und können durch folgende Optionen genutzt werden:
-
-* _conditions_
-* _regex_
-* _command_
-
-Der Inhalt eines Hashtable ist abhängig von dem Hook-Typ.
-
-Ein komfortabler Weg um die Daten eines Triggers zu sehen ist es den
-Monitor-Buffer zu öffnen:
-
-----
-/trigger monitor
-----
-
-[[trigger_data_signal]]
-===== Signale
-
-Der Callback von "signal" legt folgende Variablen in der Hashtable an:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| tg_signal | string | Name des Signals
-| tg_signal_data | string | Daten die vom Signal gesendet wurde
-|===
-
-Sollte das Signal eine IRC Nachricht beinhalten, wird die Nachricht analysiert
-und die Daten in einer Hashtable gesichert:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| server | string | Name des Server (Beispiel: "freenode")
-| tags | string | Tags in Nachricht (findet selten Verwendung)
-| message_without_tags | string | Nachricht ohne Tags
-| nick | string | Nick
-| host | string | Hostname
-| command | string | IRC Befehl (Beispiel: "PRIVMSG", "NOTICE", ...)
-| channel | string | IRC Channel
-| arguments | string | Argumente des Befehls (Beinhaltet Wert von _channel_)
-| text | string | Text (zum Beipiel eine Nachricht eines Users)
-| pos_command | string | Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird)
-| pos_arguments | string | Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird)
-| pos_channel | string | Index von _channel_ innerhalb einer Nachricht ("-1" falls _channel_ nicht gefunden wird)
-| pos_text | string | Index von _text_ innerhalb einer Nachricht ("-1" falls _text_ nicht gefunden wird)
-|===
-
-Sofern es sich bei den Daten um einen Pointer handelt, kann die Variable `tg_signal_data`
-wie im folgenden Beispiel genutzt werden um den Inhalt von hdata zu lesen (im Beispiel
-wird der Pointer eines Buffer verwendet):
-
-----
-${buffer[${tg_signal_data}].full_name}
-----
-
-[[trigger_data_hsignal]]
-===== Hsignal
-
-Der Callback von "hsignal" legt folgende Variablen in der Hashtable an:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| tg_signal | string | Name des Signals
-|===
-
-Das Hashtable enthält alle Schlüssel/Werte (Typ: string/string).
-
-[[trigger_data_modifier]]
-===== Modifier
-
-Der Callback von "modifier" legt folgende Variablen in der Hashtable an:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| tg_modifier | string | Name des modifier
-| tg_modifier_data | string | Daten die der modifier übermittelt
-| tg_string | string | Zeichenkette die verändert werden kann
-| tg_string_nocolor | string | Zeichenkette ohne Farbcodes
-|===
-
-Für den modifier _weechat_print_ gilt, Tags werden hinzugefügt, sofern sie
-vorhanden sind (siehe <<trigger_data_print,hook print>> weiter unten), und nachfolgende Variablen:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| buffer | pointer | Buffer in welchem die Nachricht geschrieben werden soll
-| tg_plugin | string | Erweiterung des entsprechenden Buffers
-| tg_buffer | string | vollständiger Name des Buffers
-| tg_prefix | string | Präfix der Nachricht
-| tg_prefix_nocolor | string | Präfix ohne Farbcodes
-| tg_message | string | Nachricht die ausgegeben werden soll
-| tg_message_nocolor | string | Nachricht die ausgegeben werden soll, ohne Farbcodes
-|===
-
-Sollte das Signal eine IRC Nachricht beinhalten, wird die Nachricht analysiert
-und die Daten in einer Hashtable gesichert (siehe <<trigger_data_signal,hook signal>>).
-
-[[trigger_data_print]]
-===== Print
-
-Der Callback von "print" legt folgende Variablen in der Hashtable an:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| buffer | pointer | Buffer
-| tg_date | string | Datum/Uhrzeit der Nachricht (Format: `YYYY-MM-DD hh:mm:ss`)
-| tg_displayed | string | "1" wenn Nachricht dargestellt wird, "0" falls Nachricht gefiltert wird
-| tg_highlight | string | "1" falls es sich um eine Highlight-Nachricht handelt, andernfalls "0"
-| tg_prefix | string | Präfix
-| tg_prefix_nocolor | string | Präfix ohne Farbcodes
-| tg_message | string | Nachricht
-| tg_message_nocolor | string | Nachricht ohne Farbcodes
-|===
-
-Variablen welche gesetzt werden, aufgrund der Nutzung von Tags in einer Nachricht
-(_weechat_print_ nutzt ebenso diese Tag-Variablen):
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| tg_tags | string | Tags einer Nachricht (Komma wird automatisch zu Beginn und Ende den Tags hinzugefügt)
-| tg_tags_count | string | Anzahl an Tags der Nachricht
-| tg_tag_nick | string | Nick (extrahiert aus Tag "nick_xxx")
-| tg_tag_prefix_nick | string | Nickfarbe für Präfix (extrahier aus Tag "prefix_nick_ccc")
-| tg_tag_host | string | Username und Host, Format: username@host (extrahiert aus Tag "host_xxx")
-| tg_tag_notify | string | Benachrichtigungsstufe (_none_, _message_, _private_, _highlight_)
-| tg_notify | string | Benachrichtigungsstufe, falls von _none_ abweichend
-| tg_msg_pv | string | "1" für eine private Nachricht, andernfalls "0"
-|===
-
-[[trigger_data_command]]
-===== Command
-
-Der Callback von "command" legt folgende Variablen in der Hashtable an:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| buffer | pointer | Buffer
-| tg_argvN | string | Argument #N
-| tg_argv_eolN | string | von Argument #N bis zum Ende der Argumente
-|===
-
-[[trigger_data_command_run]]
-===== Command_run
-
-Der Callback von "command_run" legt folgende Variablen in der Hashtable an:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| buffer | pointer | Buffer
-| tg_command | string | auszuführender Befehl
-|===
-
-[[trigger_data_timer]]
-===== Timer
-
-Der Callback von "timer" legt folgende Variablen in der Hashtable an:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| tg_remaining_calls | string | Anzahl der noch ausstehenden Aufrufe
-| tg_date | string | aktuelles Datum und Uhrzeit (Format: `YYYY-MM-DD hh:mm:ss`)
-|===
-
-[[trigger_data_config]]
-===== Config
-
-Der Callback von "config" legt folgende Variablen in der Hashtable an:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| tg_option | string | Option
-| tg_value | string | Wert
-|===
-
-[[trigger_data_focus]]
-===== Focus
-
-Der Callback von "focus" legt folgende Variablen in der Hashtable an:
-
-[width="100%",cols="3m,2,14",options="header"]
-|===
-| Variable | Typ | Beschreibung
-| window | pointer | Fenster
-| buffer | pointer | Buffer
-|===
-
-Das Hashtable enthält alle Schlüssel/Werte (Typ: string/string).
-
-[[trigger_examples]]
-==== Beispiele
-
-[[trigger_example_url_color]]
-===== URLs werden eingefärbt
-
-Zeigt URLs in grün an:
-
-----
-/trigger add url_color modifier weechat_print "${tg_notify}" "==\S+://\S+==${color:green}${re:0}${color:reset}=="
-----
-
-[NOTE]
-Dies ist ein einfacher regulärer Ausdruck der möglicherweise nicht alle URLs
-erkennt, dafür ist er aber wesentlich schneller als ein komplexer regulärer Ausdruck.
-
-[[trigger_example_auto_pong]]
-===== automatisierte "pong" Antwort, bei einer "ping" Anfrage
-
-Wenn jemand eine "ping" Nachricht in einen privaten Buffer sendet, verschickt dieser Trigger
-automatisch eine `pong` Antwort:
-
-----
-/trigger add pong print "" "${type} == private && ${tg_message} == ping" "" "pong"
-----
-
-[[trigger_example_responsive_layout]]
-===== reaktives layout
-
-Der nachfolgende Trigger kann verwendet werden um Anpassungen vorzunehmen, falls
-sich die Größe des Terminalfensters verändert:
-
-----
-/trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist"
-/trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
-----
-
-Der Trigger nutzt das Signal "signal_sigwinch", welches durch WeeChat verschickt wird
-sobald das Signal SIGWINCH vom Terminal empfangen wird.
-
-Die Bedingung `${info:term_width}` überprüft die Breite des Terminal (zusätzlich kann
-auch `${info:term_height}` genutzt werden).
-
-In obigem Beispiel wird die Nicklist versteckt, sobald das Terminal verkleinert wird.
-Die Benutzerliste wird wieder angezeigt, sobald die Breite des Terminals größer oder
-gleich 100 Zeichen ist.
-
-[[trigger_example_config_save]]
-===== automatisches speichern der Konfiguration
-
-Die Konfigurationsdateien (`*.conf`), können automatisch jede Stunde
-gespeichert werden:
-
-----
-/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
-----
-
-Argumente für den Hook-Timer sind:
-
-* _3600000_: 3600 * 1000 Millisekunden, der Callback wird jede Stunde ausgeführt
-* _0_: Abgleich der Sekunden (es findet keine Justierung statt)
-* _0_: maximale Anzahl an aufrufen (0 = unbegrenzt)
-
-Der Befehl `/mute /save` sorgt dafür, dass die Konfiguration ohne kommentarlos
-gespeichert wird (es findet keine Ausgabe im Core-Buffer statt).
-
-[[xfer_plugin]]
-=== Xfer Erweiterung
-
-Mit der xfer Erweiterung kann man:
-
-* einen direkten Chat nutzen (zwischen zwei Hosts, ohne Server): zum Beispiel "DCC Chat"
- mittels IRC Erweiterung
-* Datentransfer, zum Beispiel "DCC" mittels IRC Erweiterung
-
-[[xfer_options]]
-==== Optionen (xfer.conf)
-
-Sektionen:
-
-[width="100%",cols="3m,6m,16",options="header"]
-|===
-| Sektion | Steuerbefehl | Beschreibung
-| look | /set xfer.look.* | Erscheinungsbild
-| color | /set xfer.color.* | Farben
-| network | /set xfer.network.* | Netzwerkoptionen
-| file | /set xfer.file.* | Optionen zum Versenden und Empfangen von Dateien
-|===
-
-Optionen:
-
-include::autogen/user/xfer_options.asciidoc[]
-
-[[xfer_commands]]
-==== Befehle
-
-include::autogen/user/xfer_commands.asciidoc[]
-
-[[support]]
-== Unterstützung
-
-Bevor man nach Unterstützung fragt sollte man sicherstellen, dass man sowohl die
-Dokumentation als auch die FAQ gelesen hat, welche mit WeeChat bereitgestellt wird.
-
-Unterstützung im IRC findet man auf dem Server _chat.freenode.net_:
-
-* offizielle Channel (Entwickler vertreten):
-** _#weechat_ (englisch)
-** _#weechat-fr_ (französisch)
-* kein offizieller Channel:
-** _#weechat-de_ (deutsch)
-
-Weitere Möglichkeiten, um mit den Entwicklern in Kontakt zu treten, siehe: https://weechat.org/dev/support