Questo manuale documenta il client di chat WeeChat, ed è parte del programma stesso.

È possibile trovare l’ultima versione di questo documento qui: http://www.weechat.org/doc

1. Introduzione

WeeChat (Wee Enhanced Environment for Chat) è un client di chat libero, veloce e leggero, realizzato per diversi sistemi operativi.

1.1. Caratteristiche

Le caratteristiche principali:

La home page di WeeChat si trova qui: http://www.weechat.org/

1.2. Requisiti

Per poter installare WeeChat, è necessario:

2. Installazione

2.1. Pacchetti binari

I pacchetti binari sono disponibili per molte distribuzioni, incluse:

Potrebbero risultare utili alcuni pacchetti addizionali, come weechat-plugins.

Per altre distribuzioni, consultare il manuale per le istruzioni di installazione.

2.2. Sorgenti

WeeChat può essere compilato con cmake oppure autotools (tuttavia si raccomanda cmake).

2.2.1. Con cmake

$ mkdir build
$ cd build
$ cmake ..
$ make
% make install    (come root)
$ mkdir build
$ cd build
$ cmake .. -DPREFIX=/percorso/della/cartella
$ make
$ make install

2.2.2. Con autotools

$ ./configure
$ make
% make install    (come root)
$ ./configure --prefix=/path/to/directory
$ make
$ make install

2.3. Sorgenti git

Attenzione: i sorgenti GIT sono per gli utenti avanzati: potrebbero non compilare o essere instabili. Siete avvisati!

Per ottenere i sorgenti GIT, dare il comando:

$ git clone git://git.sv.gnu.org/weechat.git

Se si usano gli autotools (e non cmake), eseguire questo script:

$ ./autogen.sh

Poi seguire le istruzioni per i sorgenti (consultare [source_package]).

3. Utilizzo

3.1. Esecuzione di WeeChat

Argomenti a riga di comando:

-a, --no-connect

Disabilita la connessione automatica ai server all’avvio di WeeChat

-d, --dir path

Imposta una cartella come home per WeeChat (utilizzata per i file di configurazione, log, plugin e script dell’utente), il valore predefinito è ~/.weechat

-h, --help

Visualizza l’aiuto

-k, --keys

Visualizza i tasti predefiniti di WeeChat

-l, --license

Visualizza la licenza di WeeChat

-p, --no-plugin

Disabilita il caricamento automatico dei plugin

-v, --version

Visualizza la versione di WeeChat

plugin:option

Opzione per il plugin (consultare la documentazione per ogni plugin)

Per avviare WeeChat, digitare questo comando:

$ weechat-curses

Alla prima esecuzione di WeeChat, viene creato un file di configurazione predefinito. Il file di configurazione viene creato nella cartella: ~/.weechat/weechat.conf.

È possibile modificare questo file per configurare WeeChat a seconda delle proprie esigenze, oppure impostando i parametri con il comando /set all’interno di WeeChat (consultare [weechat_commands]).

3.2. Layout dello schermo

Esempio di terminale con WeeChat:

┌─────────────────────────────────────────────────────────────────────────────────────────┐
│Benvenuti in #test, questo è un canale di test                                           │
│12:52:27    --> | flashy (n=flashcod@hellix.flashtux.org) è entrato in #test  │@ChanServ │
│12:52:27     -- | Nick #test: [@ChanServ @flashy +_FlashB0t joe mike]         │@flashy   │
│12:52:27     -- | Canale #test: 5 nick (2 ops, 0 halfop, 1 voce, 2 normale)   │+_FlashB0t│
│12:52:27     -- | Canale creato il Tue Jan 27 06:30:17 2009                   │joe       │
│12:54:15 flashy | ehi!                                                        │mike      │
│12:55:01    joe | ciao flashy!                                                │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│[12:55] [4] [irc/freenode] 3:#test(+n){5}* [Attività: 4,2]                    │          │
│[flashy] ciao joe!█                                                           │          │
└─────────────────────────────────────────────────────────────────────────────────────────┘

Lo schermo è composto dalle seguenti aree:

La barra stato ha i seguenti elementi predefiniti:

Elemento Esempio Descrizione

time

 [12:55]         

ora

buffer_count

 [4]             

numero di buffer aperti

buffer_plugin

 [irc/freenode]  

plugin del buffer attivo (il plugin irc può aggiungere il nome del server irc usato dal buffer)

buffer_number

 3               

numero del buffer corrente

buffer_name

 #test(+n)       

nome del buffer attivo

buffer_nicklist_count

 {5}             

numero di nick nella lista nick

buffer_filter

 *               

indicatore filtraggio: * significa che alcune righe sono filtrate (nascoste), valori vuoti indicano che tutte le righe sono visualizzate

lag

 [Ritardo: 2.5]  

indicatore ritardo, in secondi (nascosto se il ritardo è basso)

hotlist

 [Attività: 4,2] 

elenco dei buffer con attività (messaggi non letti)

completion

 abc(2) def(5)   

elenco di parole per il completamento, con il numero di completamenti possibili per ogni parola

scroll

 -ANCORA(50)-    

indicatore di scorrimento, con il numero di righe sotto l’ultima riga visualizzata

La barra input ha i seguenti elementi predefiniti:

Elemento Esempio Descrizione

input_paste

 [Incollare 7 righe ? [ctrl-Y] Sì [ctrl-N] No] 

chiede all’utente se incollare le righe

input_prompt

 [nick] 

prompt per l’input (nick per il plugin irc)

away

 (assente) 

indicatore di assenza

input_search

 [Ricerca testo] 

indicatore di ricerca testo

input_text

 bla bla... 

testo in input

3.3. Associazione tasti predefinita

3.3.1. Tasti per la riga di comando

Tasti Descrizione e comando

Freccia sinistra
Ctrl + B

Passa al carattere precedente nella riga di comando
/input move_previous_char

Freccia destra
Ctrl + F

Passa al carattere successivo nella riga di comando
/input move_next_char

Ctrl + freccia sinistra
Alt + B

Passa alla parola precedente nella riga di comando
/input move_previous_word

Ctrl + freccia destra
Alt + F

Passa alla parola successiva nella riga di comando
/input move_next_word

Home
Ctrl + A

Si sposta all’inizio della riga di comando
/input move_beginning_of_line

Fine
Ctrl + E

Si sposta alla fine della riga di comando
/input move_end_of_line

Ctrl + C poi B

Inserisce il codice per il testo in grassetto
/input insert \x02

Ctrl + C poi C

Inserisce il codice per il testo colorato
/input insert \x03

Ctrl + C poi I

Inserisce il codice per il testo in corsivo
/input insert \x1D

Ctrl + C poi O

Inserisce il codice per il reset dei colori
/input insert \x0F

Ctrl + C then R

Inserisce il codice per l’inversione dei colori
/input insert \x12

Ctrl + C poi U

Inserisce il codice per il testo sottolineato
/input insert \x15

Canc
Ctrl + D

Elimina il carattere successivo nella riga di comando
/input delete_next_char

Backspace
Ctrl + H

Elimina il carattere precedente nella riga di comando
/input delete_previous_char

Ctrl + K

Elimina dal cursore fino alla fine della riga di comando (la stringa eliminata viene copiata negli appunti)
/input delete_end_of_line

Ctrl + R

Cerca il testo nella cronologia del buffer (due volte: cerca testo esatto)
/input search_text

Ctrl + T

Inverti caratteri
/input transpose_chars

Ctrl + U

Elimina dal cursore fino all’inizio della riga di comando (la stringa eliminata viene copiata negli appunti)
/input delete_beginning_of_line

Ctrl + W

Elimina la parola precedente nella riga di comando (la stringa eliminata viene copiata negli appunti)
/input delete_previous_word

Ctrl + Y

Incolla il contenuto degli appunti
/input clipboard_paste

Tab

Completa comando o nick (Tab di nuovo: trova prossimo completamento)
/input complete_next

Shift + Tab

Senza completamento: effettua un completamento parziale, con completamento in sospeso: completa con il completamento precedente
/input complete_previous

Qualsiasi carattere

Inserisce carattere alla posizione del cursore nella riga di comando

Invio
Ctrl + J
Ctrl + M

Esegue comando o invia messaggio (in modalità ricerca: ferma ricerca)
/input return

Freccia in alto

Chiama comando/messaggio precedente (in modalità ricerca: cerca in alto)
/input history_previous

Freccia giù

Chiama comando/messaggio precedente (in modalità ricerca: cerca in basso)
/input history_next

Ctrl + freccia su

Chiama il comando/messaggio precedente nella cronologia globale (identico per tutti i buffer)
/input history_global_previous

Ctrl + freccia giù

Chiama il comando/messaggio successivo nella cronologia globale (identico per tutti i buffer)
/input history_global_next

Alt + D

Elimina la parola successiva nella riga di comando (la stringa eliminata viene copiata negli appunti)
/input delete_next_word

Alt + K

Cattura un tasto ed inserisce il suo codice (e il comando associato se il tasto esiste) nella riga di comando
/input grab_key_command

Alt + R

Elimina l’intera riga di comando
/input delete_line

3.3.2. Tasti per buffer / finestre

Tasti Descrizione e comando

Ctrl + L

Ridisegna l’intera finestra
/window refresh

Ctrl + S poi Ctrl + U

Imposta l’evidenziatore dei messaggi non letti su tutti i buffer
/input set_unread

Ctrl + X

Passa al buffer attivo se i buffer sono collegati con lo stesso numero
/input switch_active_buffer

Pagina su

Scorre in alto di una pagina nella cronologia del buffer
/window page_up

Pagina giù

Scorre di una pagina in basso nella cronologia del buffer
/window page_down

Alt + Pagina su

Scorre di qualche riga in alto nella cronologia del buffer
/window scroll_up

Alt + Pagina giù

Scorre di qualche riga in basso nella cronologia del buffer
/window scroll_down

Alt + Home

Scorre in cima al buffer
/window scroll_top

Alt + Fine

Scorre alla fine del del buffer
/window scroll_bottom

Alt + freccia sinistra
Alt + freccia su
Ctrl + P
F5

Passa al buffer precedente
/buffer -1

Alt + freccia destra
Alt + freccia giù
Ctrl + N
F6

Passa al buffer successivo
/buffer +1

F7

Passa alla finestra precedente
/window -1

F8

Passa alla finestra successiva
/window +1

F9

Scorre il titolo del buffer sulla sinistra
/bar scroll title * x-50%

F10

Scorre il titolo del buffer sulla destra
/bar scroll title * x+50%

F11

Scorre di una pagina in alto nella lista nick
/bar scroll nicklist * y-100%

F12

Scorre di una pagina in basso nella lista nick
/bar scroll nicklist * y+100%

Alt + F11

Sposta all’inizio della lista nick
/bar scroll nicklist * yb

Alt + F12

Sposta alla fine della lista nick
/bar scroll nicklist * ye

Alt + A

Passa al buffer successivo con attività (con priorità: evento, messaggio, altro)
/input jump_smart

Alt + J poi Alt + L

Passa all’ultimo buffer
/input jump_last_buffer

Alt + J poi Alt + R

Passa al buffer raw IRC
/server raw

Alt + J poi Alt + S

Passa al buffer server IRC
/server jump

Alt + num (0-9)

Passa al buffer numero (0 = 10)
/buffer *N

Alt + J poi numero (01-99)

Passa al buffer numero
/buffer NN

Alt + N

Scorre fino all’evento successivo
/window scroll_next_highlight

Alt + P

Scorre fino all’evento precedente
/window scroll_previous_highlight

Alt + U

Scorre fino alla prima riga non letta nel buffer
/input scroll_unread

Alt + W poi Alt + freccia

Passa alla finestra con direzione
/window up (in alto)
/window down (in basso)
/window left (a sinistra)
/window right (a destra)

Alt + Z

Ingrandimento sulla finestra attiva (Alt + Z di nuovo: ripristina lo stato iniziale della finestra, prima dell’ingrandimento)
/window zoom

Alt + <

Passa al buffer precedente nella lista dei buffer visitati
/input jump_previously_visited_buffer

Alt + >

Passa al buffer successivo nella lista dei buffer visitati
/input jump_next_visited_buffer

3.3.3. Altri tasti

Tasti Descrizione e comando

Alt + H

Pulisce hotlist (notifica di attività su altri buffer)
/input hotlist_clear

Alt + =

Attiva/disattiva filtri
/filter toggle

3.4. Riga di comando

La riga di comando di WeeChat (nella parte inferiore della finestra) consente di inserire i comandi o di inviare del testo sul buffer.

3.4.1. Sintassi

I comandi iniziano con il carattere "/", seguito dal nome del comando. Ad esempio, per consultare un elenco di opzioni:

/set

Il testo inviato ad un buffer è qualsiasi testo che non comincia con il carattere "/". Per esempio, per inviare il testo ciao sul buffer attivo:

ciao

Ad ogni modo, è possibile iniziare con il carattere "/", aggiungendone poi un altro. Ad esempio, per inviare il testo /set sul buffer attivo:

//set

3.4.2. Colori

Per alcuni plugin come IRC, è possibile usare codici colori ed attributi, come segue (digitare Ctrl-C poi la lettera che segue, con il valore opzionale):

^Cb

testo in grassetto

^Ccxx

colore del testo xx (consultare la lista di colori che segue)

^Ccxx,yy

colore del testo xx e di sfondo yy (consultare la lista di colori che segue)

^Co

disabilita colori ed attributi

^Cr

video inverso (inverte il colore del testo con quello di sfondo)

^Cu

testo sottolineato

Note
Lo stesso codice (senza numero per ^Cc) può essere usato per terminare l’attributo.

I codici colore per ^Cc sono:

00

bianco

01

nero

02

blu scuro

03

verde scuro

04

rosso chiaro

05

rosso scuro

06

rosa scuro

07

arancione

08

giallo

09

verde chiaro

10

azzurro scuro

11

azzurro chiaro

12

blu chiaro

13

rosa chiaro

14

grigio

15

grigio chiaro (bianco)

Esempio: visualizza "ciao a tutti!" con "ciao" scritto in blu chiaro grassetto e "a tutti" in rosso chiaro sottolineato:

^Cc12^Cbciao^Cb^Cc04^Cu a tutti^Cu^Cc!

3.5. Opzioni di WeeChat (weechat.conf)

I colori per l’interfaccia Curses sono:

default

colore predefinito del terminale (trasparente per lo sfondo)

black

nero

darkgray

grigio scuro

red

rosso scuro

lightred

rosso chiaro

green

verde scuro

lightgreen

verde chiaro

brown

marrone

yellow

giallo

blue

blu scuro

lightblue

blu chiaro

magenta

rosa scuro

lightmagenta

rosa chiaro

cyan

azzurro scuro

lightcyan

azzurro chiaro

white

bianco

3.6. Comandi di WeeChat

/bar [add nome_barra tipo[,cond1,cond2,...] posizione dimensione separatore elemento1,elemento2,...] | [default] | [del nome_barra|-all] | [set nome_barra opzione valore] | [hide|show|toggle nome_barra] | [scroll nome_barra buffer scroll_value] | [list] | [listfull] | [listitems]
  gestione barre

            add: aggiungi una nuova barra
     nome_barra: nome della barra (deve essere unico)
           tipo: root: fuori dalle finestre,
                 window: all'interno delle finestre, con opzioni condizionali (a seguire)
      cond1,...: condizione(i) per la visualizzazione della barra (solo per quelle di tipo "window"):
                   active: sulla finestra attiva
                 inactive: sulle finestre inattive
                 nicklist: sulle finestre con le liste nick
                 senza condizioni, la barra  viene sempre visualizzata
      posizione: bottom (basso), top (alto), left (sinistra) or right (destra)
     dimensione: dimensione della barra (in caratteri)
     separatore: 1 per utilizzare un separatore (riga), 0 o nessun valore corrisponde a nessun separatore
  elemento1,...: elementi per questa barra (possono essere separati da virgole (spazio tra gli elementi) or "+" (elementi incollati))
        default: crea barre predefinite
            del: elimina una barra (o tutte le barre con -all)
            set: imposta un valore per una proprietà della barra
        opzione: opzione da modificare (per un elenco di opzioni, consultare /set weechat.bar.<nome_barra>.*)
         valore: nuovo valore per l'opzione
           hide: nasconde una barra
           show: mostra una barra nascosta
         toggle: nasconde/mostra una barra
         scroll: scorre la barra in alto/basso
         buffer: nome del buffer da scorrere ('*' sta per buffer corrente, è consigliato utilizzare '*' per le barre root)
   scroll_value: valore per lo scorrimento: 'x' o 'y', seguito da '+', '-', 'b' (inizio) o 'e' (fine), valore (per +/-), e un opzionale %% (per scorrere di %% di larghezza/altezza, altrimenti il valore è un numero di caratteri)
           list: elenca tutte le barre
       listfull: elenca tutte le barre (dettagliato)
      listitems: elenca tutti gli elementi barra

  Esempi:
    crea  una barra con l'ora, il numero del buffer + nome, e completamento:
      /bar add miabarra root bottom 1 0 [time],buffer_number+:+buffer_name,completion
    nasconde una barra:
      /bar hide mibarra
    scorre lista nick di 10 linee in basso sul buffer corrente:
      /bar scroll nicklist * y+10
    scorre la lista nick una pagina in su sul buffer #weechat:
      /bar scroll nicklist #weechat y-100%
    scorre fino alla fine della lista nick sul buffer corrente:
      /bar scroll nicklist * ye
/buffer [clear [numero | -merged | -all] | move numero | merge numero | unmerge [numero] | close [n1[-n2]] | list | notify livello | localvar | set proprietà valore | numero | nome]
  gestione buffer

     clear: pulisce il contenuto del buffero (numero per un buffer, -merged per i buffer uniti, -all per tutti i buffer, o nulla per quello corrente)
      move: sposta buffer nella lista (può essere relativo, ad esempio -1)
     merge: unisce il buffer corrente ad un altro (l'area di chat sarà un mix di entrambi)
            (con ctrl-x alterna i buffer uniti)
   unmerge: stacca il buffer da quelli con lo stesso numero
     close: chiudi buffer (numero/range opzionale)
      list: elenca i buffer (nessun parametro implica questa lista)
    notify: imposta il livello di notifica per il buffer corrente: questo livello determina se il buffer verrà aggiunto alla hotlist oppure no:
                 none: mai
            highlight: solo per le evidenziazioni
              message: per i messaggi da tutti gli utenti + evidenziazioni
                  all: tutti i messaggi
                reset: ripristina il valore predefinito (all (tutti attivi))
  localvar: visualizza la variabile locale per il buffer corrente
       set: imposta una proprietà per il buffer corrente
    number: passa al buffer di numero in numero:
            '+': passo relativo, aggiunge il numero a quello corrente
            '-': passo relativo, sottrae il numero a quello corrente
            '*': passa al numero, utilizzando l'opzione "weechat.look.jump_current_to_previous_buffer"
      nome: passa al buffer di nome (parziale)

  Esempi:
     pulisci buffer corrente: /buffer clear
      pulisci tutti i buffer: /buffer clear -all
               sposta buffer: /buffer move 5
       unisci al buffer core: /buffer merge 1
               stacca buffer: /buffer unmerge
      chiudi buffer corrente: /buffer close
      chiudi buffer da 5 a 7: /buffer close 5-7
            passa a #weechat: /buffer #weechat
  passa al buffer successivo: /buffer +1
/command plugin comando
  esegui comando o plugin di WeeChat esplicito

   plugin: nome plugin ('weechat' per il comando interno di WeeChat)
  comando: comando da eseguire (una '/' viene aggiunta automaticamente se non trovata all'inizio del comando)
/debug [list | set plugin livello | dump | buffer | windows | term]
  attiva debug per core/plugin

       set: imposta il livello di log per il plugin
    plugin: nome del plugin ("core" per il core di WeeChat)
   livello: livello di debug per il plugin (0 = disabilita debug)
      dump: salva il dump della memoria nel file di log di Weechat (lo stesso dump viene salvato quando WeeChat va in crash)
    buffer: esegue il dump del contenuto con valori esadecimali nel file di log
   windows: visualizza l'albero delle finestre
      term: visualizza informazioni sul terminale e i colori disponibili
/filter [list] | [enable|disable|toggle [nome]] | [add nome plugin.buffer tag regex] | [del nome|-all]
  filtra messaggi nei buffer, per nascondere/mostrare in base a tag o regexp

           list: elenca tutti i filtri
         enable: abilita filtri (i filtri sono abilitati di default)
        disable: disabilita filtri
         toggle: abilita/disabilita filtri
           nome: nome del filtro
            add: aggiungi un filtro
            del: elimina un filtro
           -all: elimina tutti i filtri
  plugin.buffer: plugin e buffer in cui il filtro è attivo ("*" per tutti i buffer)
            tag: elenco di tag separati da virgole, per esempio: "irc_join,irc_part,irc_quit"
          regex: espressione regolare da cercare nella riga (utilizzare \t per separare il prefisso dal messaggio, caratteri speciali come "|" devono essere preceduti dal carattere escape: '\|')

  Il tasto predefinito alt+'=' abilita/disabilita il filtraggio.

  Esempi:
    usa il filtro intelligente IRC per i messaggi di entrata/uscita/abbandono:
     /filter add irc_smart * irc_smart_filter *
    filtra tutti i messaggi entrata/uscita/abbandono di IRC:
     /filter add joinquit * irc_join,irc_part,irc_quit *
    filtra il nick "tizio" sul canale IRC #weechat
     /filter add tizio irc.freenode.#esempio * tizio\t
    filtra le righe contententi la parola "spam":
     /filter add filterspam ** spam
    filtra le righe contententi "weechat fa schifo" sul canale irc #weechat:
     /filter add schifo irc.freenode.#weechat * weechat fa schifo
/help [comando | opzione]
  visualizza l'aiuto su comandi e opzioni

  comando: nome comando
  opzione: nome opzione (utilizza /set per vedere l'elenco)
/history [clear | valore]
  mostra la cronologia dei comandi del buffer

   clear: pulisci cronologia
  valore: numero delle voci nella cronologia da mostrare
/input return | complete_next | complete_previous | search_next | delete_previous_char | delete_next_char | delete_previous_word | delete_next_word | delete_beginning_of_line | delete_end_of_line | delete_line | clipboard_paste | transpose_chars | move_beginning_of_line | move_end_of_line | move_previous_char | move_next_char | move_previous_word | move_next_word | history_previous | history_next | history_global_previous | history_global_next | jump_smart | jump_last_buffer | jump_previously_visited_buffer | jump_next_visited_buffer | hotlist_clear | grab_key | grab_key_command | scroll_unread | set_unread | set_unread_current_buffer | insert [args]
  funzioni per la riga di comando

  Questo comando è utilizzato da combinazioni di tasti o plugin.
/key [bind tasto [comando [argomenti]]] | [unbind tasto] | [reset -yes] | [missing]
  associa/disassocia tasti

      bind: associa un comando ad un tasto o visualizza il comando associato al tasto
    unbind: elimina l'associazione di un tasto
     reset: ripristina le associazioni ai valori predefiniti ed elimina TUTTE le associazioni personalizzate (attenzione!)
   missing: aggiunge i tasti mancanti (utilizzando le associazioni predefinite)

  Quando viene associato un comando ad una chiave, è consigliato utilizzare il tasto alt+k (oppure Esc e k), e poi premere il tasto da associare: il codice tasto verrà inserito nella riga di comando.
/layout [[save | apply | reset] [buffers | windows]]
  salva/applica/resetta il layout per i buffer e le finestre

     save: salva il layout corrente
    apply: applica il layout salvato
    reset: elimina il layout salvato
  buffers: salva/applica modifiche solo ai buffer (ordine dei buffer)
  windows: salva/applica modifiche solo alle finestre (buffer visualizzato da ogni finestra)

  Senza argomenti, il comando visualizza il layout salvato.
/plugin [list [nome]] | [listfull [nome]] | [load file] | [autoload] | [reload [nome]] | [unload [nome]]
  elenca/attiva/disattiva plugin

      list: elenca i plugin attivi
  listfull: elenca i plugin attivi (dettagliato)
      load: carica un plugin
  autoload: attiva automaticamente i plugin nella cartella utente o di sistema
    reload: riattiva un plugin (se non specificato, disattiva i plugin e liriattiva automaticamente)
    unload: disattiva uno o tutti i plugin

  Senza argomenti, questo comando elenca i plugin attivati.
/proxy [add nome_proxy tipo indirizzo porta [nome [password]]] | [del nome_proxy|-all] | [set nome_proxy opzione valore] | [list]
  gestione proxy

            add: aggiungi un nuovo proxy
     nome_proxy: nome del proxy (deve essere unico)
           tipo: http, socks4 o socks5
      indirizzo: IP o nome host
           port: porta
         utente: nome utente (opzionale)
       password: password (opzionale)
            del: elimina un proxy (o tutti i proxy con -all)
            set: imposta un valore per una proprietà del proxy
        opzione: opzione da modificare (per un elenco di opzioni, consultare /set weechat.proxy.<nome_proxy>.*)
         valore: nuovo valore per l'opzione
           list: elenca tutti i proxy

  Esempi:
    crea un proxy http, in esecuzione su host locale, porta 8888:
      /proxy add locale http 127.0.0.1 8888
    crea un proxy http utilizzando il protocollo IPv6:
      /proxy add locale http 127.0.0.1 8888
      /proxy set locale ipv6 on
    crea un proxy socks5 con utente/password:
      /proxy add mioproxy socks5 esempio.host.org 3128 mioutente miapassword
    elimina un proxy:
      /proxy del mioproxy
/quit [argomenti]
  esci da WeeChat

  argomenti: testo inviato con il segnale "quit"
             (ad esempio il plugin irc usa questo testo per inviare il messaggio di uscita al server)
/reload [file [file....]]
  ricarica i file di configurazione da disco

  file: file di configurazione da ricaricare

  Senza argomento, tutti i file (WeeChat e plugin) vengono ricaricati.
/save [file [file....]]
  salva i file di configurazione su disco

  file: file di configurazione da salvare

  Senza argomento, tutti i file (WeeChat e plugin) verranno salvati.
/set [opzione [valore]]
  imposta le opzioni di configurazione

  opzione: nome dell'opzione
     valore: nuovo valore per l'opzione

  Il nuovo valore può essere, in base al tipo di variabile:
       bool: on, off oppure alterna
     intero: numero, ++numero o --numero
    stringa: qualsiasi stringa ("" per le stringhe vuote)
     colore: nome colore, ++numero o --numero

  Per tutti i tipi, è possibile utilizzare un valore nullo per eliminare il valore dell'opzione (non definito). Funziona solo per alcune variabili speciali dei plugin.
/unset [opzione]
  annulla/resetta opzione

  opzione: nome di un'opzione (può cominciare o finire con "*" per il reset di più opzioni, attenzione!)

  A seconda dell'opzione, viene resettata (per le opzioni standard) o rimossa (per le impostazioni opzionali, come i valori del server)
/upgrade [percorso_del_binario]
  aggiorna WeeChat senza disconnettere dai server

  percorso_del_binario: percorso del binario di WeeChat (quello corrente è il predefinito)

  Questo comando esegue nuovamente un binario WeeChat, perciò deve essere stato compilato o installato con un gestore di pacchetti prima di eseguire questo comando.
/uptime [-o]
  mostra l'uptime di WeeChat

  -o: invia l'uptime al buffer corrente come input
/version [-o]
  mostra la versione e la data di compilazione di WeeChat

  -o: invia versione al buffer corrente come input
/wait numero[unità] comando
  pianifica l'esecuzione di un comando

   numero: tempo di attesa (numero intero)
       unità: valori opzionali sono:
          ms: millisecondi
           s: secondi (predefinito)
           m: minuti
           h: ore
  comando: comando da eseguire (o testo da inviare al buffer se il comando non inizia con '/')

  Nota: il comando è eseguito sui buffer dove /wait è stato eseguito (se il buffer non viene trovato (per esempio se è stato chiuso prima dell'esecuzione), allora il comando verrà eseguito sul buffer core di WeeChat)

  Esempi:
    entra nel canale tra 10 secondi: /wait 10 /join #test
       imposta assenza in 15 minuti: /wait 15m /away -all Sono via
                dì ciao in 2 minuti: /wait 2m ciao
/window [list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv [pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | scroll_up | scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | scroll_next_highlight | zoom]
  gestione finestre

           list: elenca le finestre aperte (nessun parametro implica questa lista)
             -1: salta alla finestra precedente
             +1: salta alla finestra successiva
             b#: salta alla finestra successiva che visualizza il buffer numero #
             up: passa alla finestra superiore a quella corrente
           down: passa alla finestra inferiore a quella attiva
           left: passa alla finestra a sinistra
          right: passa alla finestra a destra
         splith: divide la finestra attiva orizzontalmente
         splitv: divide la finestra attiva verticalmente
         resize: ridimensiona finestra, la nuova dimensione è <pct> percentuale della finestra genitore
          merge: unisce la finestra con un'altra (all = mantiente una sola finestra)

        page_up: scorre di una pagina in alto
      page_down: scorre di una pagina in basso
        refresh: aggiorna lo schermo
         scroll: scorre di un numero di righe (+/-N) o in base al tempo: s=secondi, m=minuti, h=ore, d=giorni, M=mesi, y=anni
      scroll_up: scorre di alcune righe in alto
    scroll_down: scorre di alcune righe in basso
     scroll_top: scorre fino all'inizio del buffer
  scroll_bottom: scorre fino alla fine del buffer buffer
  scroll_previous_highlight: passa all'evidenziazione precedente
      scroll_next_highlight: passa all'evidenziazione successiva
           zoom: ingrandimento sulla finestra

  Per splith e splitv, pct è una percentuale che rappresenta la dimensione della nuova finestra, calcolata con la finestra attiva come riferimento per la dimensione. Per esempio 25 vuol dire creare una finestra di dimensione = dimensione_attuale / 4

  Esempi:
  salta alla finestra che visualizza il buffer #1: /window b1
                      scorre di due righe in alto: /window scroll -2
                scorre all'indietro di due giorni: /window scroll -2d
             scorre all'inizio del giorno attuale: /window scroll -d

4. Plugin

Per saperne di più riguardo lo sviluppo di plugin o script (tramite le API), per favore consultare Riferimento API dei Plugin per WeeChat oppure Guida allo Scripting di WeeChat.

4.1. Plugin in WeeChat

Un plugin è una libreria dinamica, scritta in C e compilata, che viene caricata da WeeChat. In GNU/Linux, il file ha estensione ".so", ".dll" in Windows.

I plugin trovati vengono caricati automaticamente all’avvio di WeeChat, ed è possibile attivare o disattivare i plugin durante l’esecuzione del programma.

È importante evidenziare la differenza tra un plugin ed uno script: un plugin è un file binario compilato e caricato con il comando /plugin, mentre uno script è un file di testo caricato con un plugin come perl con il comando /perl.

È possibile utilizzare il comando /plugin per attivare/disattivare un plugin, oppure elencare tutti i plugin attivi. Quando un plugin viene disattivato, tutti i buffer creati da questo plugin sono chiusi automaticamente.

Esempi per attivare, disattivare oppure elencare i plugin:

/plugin load irc
/plugin unload irc
/plugin list

I plugin predefiniti sono:

Plugin Descrizione

alias

Definisce gli alias per i comandi

aspell

Controllo ortografico per la riga di comando

charset

Set di caratteri per la codifica/decodifica nei buffer

demo

Plugin Demo (non viene compilato per default)

fifo

pipe FIFO utilizzata per inviare comandi da remoto su WeeChat

irc

protocollo chat per IRC

logger

Registra i buffer su file

perl

API per lo scripting in Perl

python

API per lo scripting in Python

ruby

API per lo scripting in Ruby

lua

API per lo scripting in Lua

tcl

API per lo scripting in TCL

xfer

Trasferimento file e chat diretta

4.2. Plugin Alias

Il plugin Alias consente di creare alias per i comandi (da WeeChat o altri plugin).

4.2.1. Comandi

/alias [nome_alias [comando [argomenti]]]
  crea un alias per un comando

  nome_alias: nome di un alias (può iniziare o terminare con "*" per un elenco di alias)
     comando: nome comando (più comandi possono essere separati da punto e virgola)
   argomenti: argomenti per un comando

  Senza argomanto, questo comando elenca tutti gli alias definiti.

  Nota: nel comando, le variabii speciali vengono sostituite:
          $n: argomento 'n' (tra 1 e 9)
         $-m: argomenti da 1 a 'm'
         $n-: argomenti da 'n' alla fine
        $n-m: argomenti da 'n' a 'm'
          $*: tutti gli argomenti
          $~: ultimo argomento
       $nick: nick corrente
    $channel: canale corrente
     $server: server corrente

4.3. Plugin Aspell

Il plugin Aspell consente di verificare l’ortografia nella riga di comando. È possibile utilizzare più lingue per buffer.

4.3.1. Opzioni (aspell.conf)

4.3.2. Comandi

/aspell dictlist | enable lingua | disable | addword [lingua] parola
  configurazione del plugin aspell

  dictlist: mostra i dizionari installati
    enable: abilita aspell sul buffer corrente
   disable: disabilita aspell sul buffer corrente
   addword: aggiunge una parola nel dizionario personale aspell

  La riga di input che comincia con '/' non viene controllata, tranne che per alcuni comandi.

4.4. Plugin Charset

Il plugin Charset consente di decodificare o codificare dati utilizzando i set caratteri.

Esiste un set caratteri predefinito per la codifica/decodifica, e set caratteri specifici per i buffer (o gruppi di buffer).

Questo plugin è opzionale, ma raccomandato: se non attivato, WeeChat può leggere/scrivere soltanto dati UTF-8.

Il plugin Charset dovrebbe essere caricato automaticamente da WeeChat. Per essere sicuri che sia caricato, provare con:

/charset

Se non trovato, allora si deve caricare il plugin con il comando:

/plugin load charset

Se il plugin non viene trovato, allora è necessario ricompilare WeeChat con il supporto ai plugin e a Charset.

Quando viene avviato il plugin Charset, mostra i set caratteri del terminale e quello interno. Il set caratteri dipende dal proprio locale, mentre quello interno è UTF-8.

Per esempio:

set caratteri: terminale: ISO-8859-15, interno: UTF-8

4.4.1. Opzioni (charset.conf)

4.4.2. Comandi

/charset [[decode | encode | set_caratteri:] | [reset]
  modifica il set di caratteri per il buffer corrente

         decode: modifica il set di caratteri per la decodifica
         encode: modifica il set di caratteri per la codifica
  set_caratteri: nuovo set di caratteri per il buffer corrente
          reset: resetta il set di caratteri per il buffer corrente

4.4.3. Impostare il set caratteri

Per impostare il set caratteri globale per la codifica e la decodifica, utilizzare il comando /set.

Per esempio:

/set charset.default.decode ISO-8859-15
/set charset.default.encode ISO-8859-15

Se il set caratteri globale per la decodifica non è impostato (ad esempio durante il primo caricamento del plugin Charset), verrà impostato automaticamente sul set caratteri del terminale (se diverso da UTF-8), oppure su ISO-8859-1.

Il valore di codifica predefinito è vuoto, perciò il testo viene inviato per default con il set caratteri interno (UTF-8).

Per impostare il set caratteri del server IRC, utilizzare il comando charset sul buffer del server. Se viene immesso solo il set caratteri, allora i valori di codifica e decodifica saranno gli stessi.

Ad esempio:

/charset ISO-8859-15

È l’equivalente di:

/charset decode ISO-8859-15
/charset encode ISO-8859-15

Per impostare il set caratteri per il canale IRC (o il privato), utilizzare gli stessi comandi per il server, ma sul buffer del canale (o quello privato).

Per visualizzare tutti i set caratteri utilizzati, utilizzare il comando seguente:

/set charset.*

4.4.4. Risoluzione problemi

Per qualunque problema con i set caratteri, per favore consultare le Domande Frequenti di WeeChat.

4.5. Plugin Fifo

È possibile controllare da remoto WeeChat, inviando comandi o del testo ad una pipe FIFO (se l’opzione "plugins.var.fifo.fifo" è abilitata, e lo è per default).

La pipe FIFO si trova in ~/.weechat/ ed è chiamata weechat_fifo_xxxx (dove xxxx è l’ID del processo (PID) dell’istanza di WeeChat in esecuzione).

La sintassi per i comandi/testo della pipe FIFO è una delle seguenti:

  plugin.buffer *testo o comando qui
  *testo o comando qui

Alcuni esempi:

$ echo 'irc.server.freenode */nick nuovonick' >~/.weechat/weechat_fifo_12345
$ echo 'irc.freenode.#weechat *hello!' >~/.weechat/weechat_fifo_12345
$ echo '*hello!' >~/.weechat/weechat_fifo_12345
$ echo -e '*/perl unload\n*/perl autoload' >~/.weechat/weechat_fifo_12345

È possibile realizzare uno script per inviare un comando a tutte le istanze di WeeChat in esecuzione, per esempio:

#!/bin/sh
if [ $# -eq 1 ]; then
    for fifo in ~/.weechat/weechat_fifo_*
    do
        echo -e "$1" >$fifo
    done
fi

Se lo script viene chiamato "auto_weechat_command", può essere eseguito con:

$ ./auto_weechat_command 'irc.freenode.#weechat *ciao'

4.6. Plugin IRC

Il plugin IRC è realizzato per chattare tramite protocollo IRC con altre persone.

È multi-server, ed offre tutti i comandi IRC supportati inclusi la chat DCC ed il trasferimento file (tramite plugin xfer, consultare [xfer_plugin]).

4.6.1. Opzioni a riga di comando

È possibile fornire un URL per uno o più server IRC, come segue:

[irc][6][s]://[nick[:password]@]irc.esempio.org[/porta][//#canale1][,#canale2[...]]

Esempio per entrare in #weechat e #tizio sul server irc.freenode.net, porta predefinita (6667), con il nick caio:

$ weechat-curses irc://caio@irc.freenode.net/#weechat,#tizio

4.6.2. Opzioni (irc.conf)

4.6.3. Comandi

/admin [obiettivo]
  informazioni sull'amministratore del server

  destinazione: server
/allchan [-current] [-exclude=canale,[,canale...]] comando [argomenti]
  esegue un comando su tutti i canali di tutti i server connessi

   -current: esegue il comando solo per i canali del server corrente
   -exclude: esclude alcunu canali ('*' è consentito all'inizio o alla fine del nome del canale, per escludere più canali)
    comando: comando da eseguire
  argomenti: argomenti per il comando

  Esempi:
    esegue '/me sta testando' su tutti i canali:
      /allchan me is testing
    dice 'ciao' dovunque tranne che su #weechat:
      /allchan -exclude=#weechat msg * ciao
    dice 'ciao' dovunque tranne che su #weechat e i canali che iniziano con #linux:
      /allchan -exclude=#weechat,#linux* msg * ciao
/allserv [-exclude=server[,server...]] comando [argomenti]
  esegue un comando su tutti i server connessi

   -exclude: esclude alcuni server ('*' è consentito all'inizio o alla fine del nome server, per escludere più server)
    comando: comando da eseguire
  argomenti: argomenti per il comando

  Esempli:
    cambia nick su tutti i server:
      /allserv nick nuovonick
    imposta l'assenza su tutti i server:
      /allserv away sono assente
/away [-all] [messaggio]
  attiva/disattiva lo stato di assenza

       -all: attiva/disattiva lo stato di assenza su tutti i server connessi
  messaggio: messaggio di assenza (se non specificato, lo stato di assenza viene rimosso)
/ban [canale] [nick [nick ...]]
  banna nick oppure host

  canale: canale per il ban
      nick: utente o host da bannare
/connect [-all [-nojoin] | nome_server [nome_server ...] [-nojoin] | nome_host[/porta] [-opzione[=valore]] [-nooption]
  connette ad uno o più server IRC

         -all: connette a tutti i server
  nome_server: nome interno del server a cui connettersi (il server deve essere stato creato con /server add)
      -nojoin: non entrare in nessun canale (anche se l'ingresso automatico è attivo sul server)
    nome_host: nome host (oppure IP) del server
        porta: porta per il server (6667 è la predefinita)
      opzione: imposta opzione per il server (per le opzioni bool, il valore può essere omesso)
     nooption: imposta il valore bool dell'opzione su off (per esempio: -nossl)
  Esempi:
    /connect freenode
    /connect irc.oftc.net/6667
    /connect irc6.oftc.net/6667 -ipv6
    /connect irc6.oftc.net/6697 -ipv6 -ssl
    /connect mio.server.org/6697 -ssl -password=test
/ctcp destinatario tipo [argomenti]
  invia un messaggio CTCP (Protocollo Client-A-Client)

  destinatario: nick o canale a cui inviare il CTCP
               tipo: tipo CTCP (esempi: "version", "ping", ..)
     argomenti: argomenti per il CTCP
/cycle [canale[,canale]] [messaggio]
  lascia e rienta in un canale

        canale: nome canale per il ciclo
  messaggio: messaggio di uscita (mostrato agli altri utenti)
/dcc azione [nick] [file]]
  avvia DCC (file o  chat)

  azione: 'send' (invia file) o 'chat'
     nick: nick a cui inviare il file o aprire la chat
       file: nome file (sull'host locale)
/dehalfop [nick [nick]]
  rimuovi lo stato di half-op da uno (o più) nick
/deop [nick [nick]]
  rimuove lo stato di operatore da uno (o più) nick
/devoice [nick [nick]]
  rimuove voice da uno (o più) nick
/die
  arresta il server
/disconnect [-all | nome_server [nome_server ...]]
  disconnette da uno o più server IRC

       -all: disconnetti da tutti i server
  nome_server: nome del server da cui disconnettersi
/halfop [nick [nick]]
  concedi lo stato di halfop ad uno (o più) nick
/ignore [list] | [add [re:]nick/host [server [canale]]] | [del numero|-all]
  ignora nick/host dai server o dai canali

          list: elenca tutti gli ignore
        add: aggiungi un ignore
         del: elimina un ignore
     numero: numero di ignore da eliminare (nella lista)
             all: elimina tutti gli ignore
  nick/host: nick o host da ignorare: la sintassi è "re:regex" o "mask" (una mask è una stringa con alcuni "*" per sostituire uno o più caratteri)
      server: nome interno del server dove l'ignore è attivo
     canale: nome del canale dove l'ignore è attivo

  Esempi:
    ignora nick "tizio" su tutti gli host/canali:
      /ignore add tizio
    ignora l'host "tizio@dominio.com" sul server freenode:
      /ignore add tizio@dominio.com freenode
    ignora l'host "tizio*@*.dominio.com" su freenode/#weechat:
      /ignore add tizio*@*.dominio.com freenode #weechat
/info [obiettivo]
  ottieni informazioni sul server

  destinazione: nome server
/invite nick canale
  invita un nick su un canale

      nick: nick da invitare
  canale: canale su cui invitare
/ison [nick [nick ...]]
  verifica se un nick è collegato su IRC

  nick: nick
/join [canale[,canale ] [chiave[,chiave]]]
  entra in un canale

  canale: nome del canale in cui entrare
  chiave: chiave per entrare nel canale
/kick [canale] nick [commento]
  caccia forzatamente un utente da un canale

        canale: canale dove si trova l'utente
            nick: nick da cacciare
  commento: commento per il kick
/kickban [canale] nick [commento]
  caccia e banna un nick da un canale

         canale: canale in cui si trova l'utente
            nick: nick da cacciare e bannare
  commento: commento per la cacciata

  È possibile cacciare/bannare con una mask, il nick verrà estratto dalla mask e sostituito da "*", per esempio:
    /kickban tizio!*@host.com
    banna "*!*@host.com" e poi caccia "tizio".
/kill nick commento
  chiude connessione client-server

      nick: nick
  commento: commento per il kill
/links [[server] mask_server]
  elenca tutti i nomi server conosciuti dal server che risponde alla richiesta

            server: questo server dovrebbe rispondere alla richiesta
  mask_server: elenco dei server devono corrispondere a questa mask
/list [canale[,canale] [server]
  elenca i canali ed i loro argomenti

  canale: canale da elencare (è consentita un'espressione regolare)
  server: nome del server
/lusers [mask [destinazione]]
  ottiene statistiche sulla dimensione del network IRC

   mask: server corrispondenti alla mask
  destinazione: server per redirigere la richiesta
/me messaggio
  invia un'azione CTCP al canale corrente

  messaggio: messaggio da inviare
/mode { [canale] {[+|-]|o|p|s|i|t|n|b|v} [limit] [utente] [ban mask] } | { nick {[+|-]|i|w|s|o} }
  cambia modalità canale o utente

  modalità canale:
    canale: nome canale da modificare (predefinito è quello attivo)
    o: concedi/ottieni privilegi di operatore del canale
    p: canale privato
    s: canale segreto
    i: canale a solo-invito
    t: argomento modificabile solo dall'operatore del canale
    n: nessun messaggio al canale da client esterni
    m: canale moderato
    l: imposta il limite massimo di utenti sul canale
    b: imposta un mask ban per tenere alla larga agli utenti
    e: imposta mask di eccezione
    v: concedi/ottieni la possibilità di parlare su un canale moderato
    k: imposta una chiave per il canale (password)
  modalità utente:
    nick: nick da modificare
    i: marca un utente come invisibile
    s: marca un utente per la ricezione dei messaggi dal server
    w: l'utente riceve wallops
    o: flag operatore
/motd [obiettivo]
  riceve il "Messaggio Del Giorno"

  destinazione: nome server
/msg [-server server] [destinatario[,destinatario] testo
  invia un messaggio ad un nick o a un canale

           server: invia a questo server (nome interno)
  destinatario: nick o canale (può essere una mask, '*' = canale corrente)
            testo: testo da inviare
/names [canale[,canale]]
  elenca i nick sul canale

  canale: nome canale
/nick [-all] nick
  modifica il nick corrente

     -all: imposta nuovo nick per tutti i server connessi
   nick: nuovo nick
/notice [-server server] nick testo
  invia messaggio di notifica all'utente

    server: invia a questo server (nome interno)
       nick: utente a cui inviare la notifica
     testo: testo da inviare
/op nick [nick]
  concedi lo stato di operatore del canale al(ai) nick
/oper utente password
  ottieni i privilegi di operatore

  utente/password: utilizzata per ottenere i privilegi sul server IRC corrente
/part [canale[,canale]] [messaggio]
  lascia un canale

                   canale: nome del canale da lasciare
  messaggio_uscita: messaggio di uscita (mostrato agli altri utenti)
/ping server1 [server2]
  invia ping al server

  server1: server su cui effettuare il ping
  server2: invia ping a questo server
/pong demone [demone2]
  risponde ad un messaggio ping

    demone: demone che ha risposto al messaggio di Ping
  demone2: invia messaggio a questo demone
/query [-server server] nick [testo]
  invia un messaggio privato ad un nick

  server: invia a questo server (nome interno)
      nick: nick per la conversazione privata
    testo: testo da inviare
/quote [-server server] dati
  invia dati grezzi al server senza analisi

  server: invia a questo server (nome interno)
      dati: dati grezzi da inviare
/reconnect [-all [-nojoin] | nome_server [nome_server ...] [-nojoin]]
  riconnetti a uno (o più) server

                 -all: riconnetti a tutti i server
  nome_server: nome del server a cui riconnettersi
             nojoin: non entrare in nessun canale (anche se l'ingresso automatico è abilitato sul server
/rehash [opzione]
  chiede al server di ricaricare il proprio file di configurazione

  opzione: opzione extra, per alcuni server
/restart
  chiede al server di riavviarsi
/sajoin nick canale[,canale]
  forza un utente ad entrare su uno o più canali

      nick: nick
  canale: nome del canale
/samode `canale modalità`
  cambia modalità sul canale, senza avere lo status di operatore

  canale: nome del canale
  modalità: modalità per il canale
/sanick nick nuovo_nick
  forza un utente ad utilizzare un altro nick

             nick: nick
  nuovo_nick: nuovo nick
/sapart nick canale[,canale]
  forza un utente a lasciare uno o più canali

      nick: nick
  canale: nome del canale
/saquit nick motivo
  forza un utente ad uscire dal server senza un motivo

      nick: nick
  motivo: motivo
/server [list [nome_server]] | [listfull [nome_server]] | [add nome_server host[/porta] [-temp | -opzione[=valore]] [-nooption] | [copy nome_server nuovo_nome_server] | [rename nome_server nuovo_nome_server] | [keep nome_server] | [del nome_server ] | [deloutq] | [jump] | [raw]
  elenca, aggiunge o rimuove server IRC

         list: elenca tutti i server (nessun parametro necessario)
     listfull: elenca tutti i server con tutte le informazioni
          add: crea un nuovo server
  nome_server: nome server, per il solo uso interno
    nome_host: nome o indirizzo IP del server, con porta opzionale (predefinita: 6667)
         temp: crea server temporaneo (non salvato)
       option: imposta opzione per il server (per opzioni bool, il valorepuò essere omesso)
     nooption: imposta l'opzione bool su 'off' (per esempio: -nossl)
         copy: duplica un server
       rename: rinomina un server
         keep: salva server nel file di configurazione (solo per server temporanei)
          del: elimina un server
      deloutq: elimina i messaggi fuori coda per tutti i server (tutti i messaggi che WeeChat sta inviando)
         jump: passa al buffer del server
          raw: apri buffer con dati grezzi IRC

  Esempi:
    /server listfull
    /server add oftc irc.oftc.net/6697 -ssl
    /server add oftc6 irc6.oftc.net/6697 -ipv6 -ssl
    /server add freenode2 chat.eu.freenode.net/6667,chat.us.freenode.net/6667
    /server copy oftc oftcbis
    /server rename oftc newoftc
    /server del freenode
    /server deloutq
/service nick distribuzione riservata tipo info riservata
  registra un nuovo servizio

  distrubuzione: visibilità del servizio
          tipo: riservato per un utilizzo futuro
/servlist [mask [tipo]]
  elenca servizi attualmente connessi al network

  mask: elenca solo i servizi che corrispondono a questa mask
    tipo: elenca solo i servizi di questo tipo
/squery servizio testo
  invia un messaggio ad un servizio

  servizio: nome del servizio
     testo: testo da inviare
/squit server commento
  disconnette collegamenti al server

    server: nome server
  commento: commento per l'uscita
/stats [query [server]]
  richiede statistiche sul server

   query: c/h/i/k/l/m/o/y/u (per info RFC1459)
  server: nome server
/summon utente [destinazione [canale]]
  invia agli utenti connessi ad un host con un server IRC in esecuzione un messaggio per invitarli ad entrare su IRC

  utente: nome utente
  destinazione: nome server
  canale: nome canale
/time [obiettivo]
  richiede l'ora locale dal server

  destinazione: richiede l'ora dal server specificato
/topic [canale] [argomento]
  legge/modifica argomento del canale

  canale: nome canale
  argomento: nuovo argomento per il canale (se l'argomento è "-delete" allora viene eliminato)
/trace [obiettivo]
  trova il percorso del server specifico

  destinazione: server
/unban [canale] nick [nick ...]
  rimuove il ban da nick o host

  canale: canale da cui rimuovere il ban
      nick: utente o host a cui rimuovere il ban
/userhost [nick [nick ...]]
  stampa una lista informativa sui nick

  nick: nick
/users [obiettivo]
  lista di utenti autenticati sul server

  destinazione: server
/version [server | nick]
  riceve informazioni di versione del nick o del server (corrente o specificato)

  server: nome server
     nick: nick
/voice [nick [nick]]
  concedi il voice ad uno (o più) utenti
/wallops testo
  invia un messaggio a tutti gli utenti attualmente connessi che hanno impostato la modalità 'w'

  testo da inviare
/who [mask ["o"]]
  genera una richiesta per ottenere una lista di informazioni

   mask: solo le informazioni corrispondenti al mask
         o: sono visualizzati solo gli operatori in base alla mask fornita
/whois [server] nick[,nick]
  richiedi informazioni su uno (o più) utenti

  server: nome server
      nick: nick (può essere una mask)
/whowas nick [,nick [,nick ...]] [count [destinazione]]
  richiede informazioni su un nick non più esistente

      nick: nick da cercare
   count: numero di risultati da visualizzare (ricerca completa se il numero è negativo)
  destinazione: la risposta dovrebbe coincidere con la mask

4.6.4. Risposte CTCP

È possibile personalizzare le risposte CTCP, o bloccare alcune richieste CTCP (non rispondere).

Ad esempio, per personalizzare la richiesta CTCP "VERSIONE", utilizzare il seguente comando:

/set irc.ctcp.version "Uso WeeChat $version, fico!"

Se si desidera bloccare CTCP "VERSIONE" (non rispondere ad una query), allora basta impostare una stringa vuota:

/set irc.ctcp.version ""

Anche un CTCP sconosciuto può essere personalizzato, per esempio si può rispondere "BLABLA":

/set irc.ctcp.blabla "Questa è la mia risposta a CTCP BLABLA"

È possibile personalizzare CTCP per un solo server, utilizzando il suo nome interno prima del nome CTCP:

/set irc.ctcp.freenode.version "WeeChat $version (per freenode)"

Se si desidera ripristinare la risposta CTCP standard, allora disabilitare l’opzione:

/unset irc.ctcp.version

I codici seguenti possono essere utilizzati nelle stringhe e vengono estese automaticamente da WeeChat quando si risponde alle CTCP

Codice Descrizione Valore/esempio
 $clientinfo  

elenco di CTCP supportate

 ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION
 $version     

versione di WeeChat

 0.3.0
 $compilation 

data di compilazione di WeeChat

 Sep 13 2009
 $osinfo      

informazioni sull’OS

 Linux 2.6.31 / i686
 $site        

sito di WeeChat

 http://www.weechat.org
 $download    

sito di WeeChat, pagina di download

 http://www.weechat.org/download
 $time        

data/ora correnti

 Sun Sep 13 15:48:31 2009
 $username    

nome utente sul server IRC

 nick
 $realname    

nome reale sul server IRC

 Mio nome

Se le opzioni CTCP non sono definite (comportamento predefinito), le risposte CTCP sono:

CTCP Formato risposta Esempio

CLIENTINFO

 $clientinfo                     
 ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION

FINGER

 WeeChat $version                
 WeeChat 0.3.0

SOURCE

 $download                       
 http://www.weechat.org/download

TIME

 $time                           
 Sun Sep 13 15:48:31 2009

USERINFO

 $username ($realname)           
 nick (Mio nome)

VERSION

 WeeChat $version ($compilation) 
 WeeChat 0.3.0 (Sep 13 2009)

4.6.5. Buffer di destinazione per i messaggi IRC

È possibile personalizzare il buffer di destinazione per i messaggi IRC (buffer usato per visualizzare messaggi) con l’opzione irc.msgbuffer.*.

Per alcuni messaggi IRC (elenco in basso), si possono usare i seguenti valori:

current

buffer attivo (se è il buffer IRC, oppure sul buffer del server, come predefinito)

private

buffer privato per il nick, o il buffer corrente se non trovato (in base all’opzione irc.look.msgbuffer_fallback)

weechat

Il buffer "core" di WeeChat

Il buffer del server è la destinazione predefinita (quando l’opzione non è impostata).

Ecco una lista incompleta dei messaggi IRC o degli alias che è possibile personalizzare:

messaggio alias descrizione

invite

invitato su un canale

notice

notifica

wallops

wallops

221

stringa modalità utente

275

whois

whois (connessione sicura)

303

ison

305

unaway

presente

306

away

assente

307

whois

whois (nick registrato)

310

whois

whois (modalità aiuto)

311

whois

whois (utente)

312

whois

whois (server)

313

whois

whois (operatore)

314

whowas

whowas

315

who

who (fine)

317

whois

whois (inattività)

318

whois

whois (fine)

319

whois

whois (canali)

320

whois

whois (utente identificato)

321

list

list (inizio)

322

list

list (canale)

323

list

list (fine)

326

whois

whois (con privilegi di operatore)

327

whois

whois (host)

330

whois

whois (loggato come)

335

whois

whois (è un bot su)

338

whois

whois (host)

341

invito

344

reop

reop sul canale

345

reop

reop sul canale (fine)

351

versione del server

352

who

who

369

whowas

whowas (fine)

378

whois

whois (connesso da)

379

whois

whois (usa le modalità)

432

nick errato

433

nick già utilizzato

438

non autorizzato a cambiare nick

671

whois

whois (connessione sicura)

901

ora si è loggati

Anche altri comandi numerici possono essere personalizzati.

Il messaggio può essere preceduto dal nome del server per essere più precisi (ad esempio: freenode.whois).

Alcuni esempi:

/set irc.msgbuffer.whois private
/unset irc.msgbuffer.whois
/set irc.msgbuffer.freenode.invite current
/set irc.msgbuffer.303 weechat

4.7. Plugin Logger

Il plugin Logger consente di salvare il contenuto dei buffer su file, con opzioni a proposito su cosa e come viene salvato.

4.7.1. Opzioni (logger.conf)

4.7.2. Comandi

/logger [list | set livello | disable]
  configurazione del plugin logger

     list: mostra lo stato del logging per i buffer aperti
      set: imposta il livello di logging per il buffer corrente
    level: livello per i messaggi da loggare (0 = disabilitato, 1 = alcuni messaggi (più importanti) .. 9 = tutti i messaggi)
  disable: disabilita il logging sul buffer corrente (imposta livello a 0)

  Le opzioni "logger.level.*" e "logger.mask.*" possono essere utilizzate per impostare un livello o una mask per un buffer, o per i buffer che cominciano per nome.

  Esempi:
    imposta il livello 5 al buffer attivo:
      /logger set 5
    disabilita logging per il buffer attivo:
      /logger disable

    imposta il livello 3 per tutti i buffer IRC:
      /set logger.level.irc 3
    disabilita logging per il buffer principale di WeeChat:
      /set logger.level.core.weechat 0
    utilizza una cartella per il server IRC e un file per il canale al suo interno:
      /set logger.mask.irc "$server/$channel.weechatlog"

  Livelli di log utilizzati dal plugin IRC:
    1: messaggio utente, notifica, privato
    2: cambio di nick
    3: messaggio del server
    4: entrata/uscita/abbandono
    9: tutti gli altri messaggi

4.7.3. Livelli di log

Il logging viene effettuato con un livello per ogni buffer. Il livello predefinito è il 9 (registra tutti i messaggi visualizzati sul buffer). È possibile cambiare il livello per un buffer, oppure per un gruppo di buffer.

I livelli possibili sono da 0 a 9. Zero vuol dire "non registrare nulla" mentre 9 "registra tutto".

I plugin utilizzano livelli diversi per i messaggi visualizzati. Il plugin IRC usa i seguenti livelli:

Se viene impostato il livello 3 per un canale IRC, WeeChat registrerà tutti i messaggi, ma non quelli di entrata/uscita/disconnessione.

Alcuni esempi:

/set logger.level.irc.freenode.#weechat 3
/set logger.level.irc.server.freenode 3
/set logger.level.irc.freenode 3
/set logger.level.irc 2

4.7.4. Mask per il nome file

È possibile definire un mask per il nome del file di ogni buffer, ed utilizzare le variabili buffer locali per costruire il nome del file. Per visualizzare le variabili locali per il buffer corrente:

/buffer localvar

Per esempio, se si vuole una cartella per server IRC e un file per canale al suo interno:

/set logger.mask.irc "irc/$server/$channel.weechatlog"

Si avranno i seguenti file:

~/.weechat/
    |--- logs/
        |--- irc/
            |--- freenode/
            |       freenode.weechatlog
            |       #weechat.weechatlog
            |       #miocanale.weechatlog
            |--- oftc/
            |       oftc.weechatlog
            |       #canale1.weechatlog
            |       #canale2.weechatlog

4.8. Plugin per gli script

WeeChat fornisce 5 plugin per lo scripting: Perl, Python, Ruby, Lua, Tcl. Questi plugin possono caricare, eseguire e disattivare gli script per questi linguaggi.

Per maggiori informazioni su come scrivere gli script, o le API WeeChat per gli script, consultare la Guida allo Scripting di WeeChat.

È possibile trovare alcuni script qui: http://www.weechat.org/scripts

4.8.1. Comandi Perl

/perl [list [nome]] | [listfull [nome]] | [load nome_file] | [autoload] | [reload] | [unload [nome]]
  elenca/attiva/disattiva script

  nome_file: file script da attivare
        nome: il nome dello script

  Senza argomenti, il comando elenca tutti gli script caricati

4.8.2. Comandi Python

/python [list [nome]] | [listfull [nome]] | [load nome_file] | [autoload] | [reload] | [unload [nome]]
  elenca/attiva/disattiva script

  nome_file: file script da attivare
        nome: il nome dello script

  Senza argomenti, il comando elenca tutti gli script caricati

4.8.3. Comandi Ruby

/ruby [list [nome]] | [listfull [nome]] | [load nome_file] | [autoload] | [reload] | [unload [nome]]
  elenca/attiva/disattiva script

  nome_file: file script da attivare
        nome: il nome dello script

  Senza argomenti, il comando elenca tutti gli script caricati

4.8.4. Comandi Lua

/lua [list [nome]] | [listfull [nome]] | [load nome_file] | [autoload] | [reload] | [unload [nome]]
  elenca/attiva/disattiva script

  nome_file: file script da attivare
        nome: il nome dello script

  Senza argomenti, il comando elenca tutti gli script caricati

4.8.5. Comandi Tcl

/tcl [list [nome]] | [listfull [nome]] | [load nome_file] | [autoload] | [reload] | [unload [nome]]
  elenca/attiva/disattiva script

  nome_file: file script da attivare
        nome: il nome dello script

  Senza argomenti, il comando elenca tutti gli script caricati

4.9. Plugin xfer

Il plugin xfer fornisce:

4.9.1. Opzioni (xfer.conf)

4.9.2. Comandi

/me messaggio
  invia un'azione CTCP all'host remoto

  messaggio: messaggio da inviare
/xfer [list | listfull]
  controllo xfer

      list: lista xfer
  listfull: lista xfer (dettagliata)

  Senza argomenti, il comando apre il buffer con la lista xfer.

5. Autori

5.1. Sviluppatori

FlashCode (Sébastien Helleu)

sviluppatore principale

5.2. Contributori

Kolter (Emmanuel Bouthenot)

packager debian

Ptitlouis

packager debian precedente

Jiri Golembiovsky

traduzione in ceco, patch

soltys

traduzione in polacco

Nils Görs
rettub
Frank Zacharias

traduzione in tedesco

Pavel Shevchuk

traduzione in russo

m4v

traduzione in spagnolo

Voroskoi

traduzione in ungherese

Marco Paolone

traduzione in italiano

Dmitry Kobylin

plugin tcl

Rudolf Polzer
Jim Ramsay
Pistos
Gwenn
Dominik Honnef

patch

Odin

SuSE RPM

6. Supporto

Prima di chieder supporto, assicurarsi di aver letto la documentazione e le FAQ fornite con WeeChat (la documentazione è questo documento, se non sono state lette tutte le righe prima di questa frase, è possibile ricominciare!).

Per ricevere supporto: