3003 lines
107 KiB
Plaintext
3003 lines
107 KiB
Plaintext
//
|
|
// This file is auto-generated by script docgen.py.
|
|
// DO NOT EDIT BY HAND!
|
|
//
|
|
|
|
// tag::irc_commands[]
|
|
[[command_irc_admin]]
|
|
* `+admin+`: find information about the administrator of the server
|
|
|
|
----
|
|
/admin [<target>]
|
|
|
|
target: server name
|
|
----
|
|
|
|
[[command_irc_allchan]]
|
|
* `+allchan+`: execute a command on all channels of all connected servers
|
|
|
|
----
|
|
/allchan [-current] [-exclude=<channel>[,<channel>...]] <command>
|
|
[-current] -include=<channel>[,<channel>...] <command>
|
|
|
|
-current: execute command for channels of current server only
|
|
-exclude: exclude some channels (wildcard "*" is allowed)
|
|
-include: include only some channels (wildcard "*" is allowed)
|
|
command: command to execute (or text to send to buffer if command does not start with '/')
|
|
|
|
Command and arguments are evaluated (see /help eval), the following variables are replaced:
|
|
$server server name
|
|
$channel channel name
|
|
$nick nick on server
|
|
${irc_server.xxx} variable xxx in server
|
|
${irc_channel.xxx} variable xxx in channel
|
|
|
|
Examples:
|
|
execute '/me is testing' on all channels:
|
|
/allchan /me is testing
|
|
say 'hello' everywhere but not on #weechat:
|
|
/allchan -exclude=#weechat hello
|
|
say 'hello' everywhere but not on #weechat and channels beginning with #linux:
|
|
/allchan -exclude=#weechat,#linux* hello
|
|
say 'hello' on all channels beginning with #linux:
|
|
/allchan -include=#linux* hello
|
|
----
|
|
|
|
[[command_irc_allpv]]
|
|
* `+allpv+`: execute a command on all private buffers of all connected servers
|
|
|
|
----
|
|
/allpv [-current] [-exclude=<nick>[,<nick>...]] <command>
|
|
[-current] -include=<nick>[,<nick>...] <command>
|
|
|
|
-current: execute command for private buffers of current server only
|
|
-exclude: exclude some nicks (wildcard "*" is allowed)
|
|
-include: include only some nicks (wildcard "*" is allowed)
|
|
command: command to execute (or text to send to buffer if command does not start with '/')
|
|
|
|
Command and arguments are evaluated (see /help eval), the following variables are replaced:
|
|
$server server name
|
|
$channel channel name
|
|
$nick nick on server
|
|
${irc_server.xxx} variable xxx in server
|
|
${irc_channel.xxx} variable xxx in channel
|
|
|
|
Examples:
|
|
execute '/me is testing' on all private buffers:
|
|
/allpv /me is testing
|
|
say 'hello' everywhere but not for nick foo:
|
|
/allpv -exclude=foo hello
|
|
say 'hello' everywhere but not for nick foo and nicks beginning with bar:
|
|
/allpv -exclude=foo,bar* hello
|
|
say 'hello' for all nicks beginning with bar:
|
|
/allpv -include=bar* hello
|
|
close all private buffers:
|
|
/allpv /close
|
|
----
|
|
|
|
[[command_irc_allserv]]
|
|
* `+allserv+`: execute a command on all connected servers
|
|
|
|
----
|
|
/allserv [-exclude=<server>[,<server>...]] <command>
|
|
-include=<server>[,<server>...] <command>
|
|
|
|
-exclude: exclude some servers (wildcard "*" is allowed)
|
|
-include: include only some servers (wildcard "*" is allowed)
|
|
command: command to execute (or text to send to buffer if command does not start with '/')
|
|
|
|
Command and arguments are evaluated (see /help eval), the following variables are replaced:
|
|
$server server name
|
|
$nick nick on server
|
|
${irc_server.xxx} variable xxx in server
|
|
|
|
Examples:
|
|
change nick on all servers:
|
|
/allserv /nick newnick
|
|
set away on all servers:
|
|
/allserv /away I'm away
|
|
do a whois on my nick on all servers:
|
|
/allserv /whois $nick
|
|
----
|
|
|
|
[[command_irc_ban]]
|
|
* `+ban+`: ban nicks or hosts
|
|
|
|
----
|
|
/ban [<channel>] [<nick> [<nick>...]]
|
|
|
|
channel: channel name
|
|
nick: nick or host
|
|
|
|
Without argument, this command displays the ban list for current channel.
|
|
----
|
|
|
|
[[command_irc_cap]]
|
|
* `+cap+`: client capability negotiation
|
|
|
|
----
|
|
/cap ls
|
|
list
|
|
req|ack [<capability> [<capability>...]]
|
|
end
|
|
|
|
ls: list the capabilities supported by the server
|
|
list: list the capabilities currently enabled
|
|
req: request a capability
|
|
ack: acknowledge capabilities which require client-side acknowledgement
|
|
end: end the capability negotiation
|
|
|
|
Without argument, "ls" and "list" are sent.
|
|
|
|
Capabilities supported by WeeChat are: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, multi-prefix, server-time, userhost-in-names.
|
|
|
|
The capabilities to automatically enable on servers can be set in option irc.server_default.capabilities (or by server in option irc.server.xxx.capabilities).
|
|
|
|
Examples:
|
|
/cap
|
|
/cap req multi-prefix away-notify
|
|
----
|
|
|
|
[[command_irc_connect]]
|
|
* `+connect+`: connect to IRC server(s)
|
|
|
|
----
|
|
/connect [<server> [<server>...]] [-<option>[=<value>]] [-no<option>] [-nojoin] [-switch]
|
|
-all|-auto|-open [-nojoin] [-switch]
|
|
|
|
server: server name, which can be:
|
|
- internal server name (added by /server add, recommended usage)
|
|
- hostname/port or IP/port, port is 6667 by default
|
|
- URL with format: irc[6][s]://[nickname[:password]@]irc.example.org[:port][/#channel1][,#channel2[...]]
|
|
Note: for an address/IP/URL, a temporary server is added (NOT SAVED), see /help irc.look.temporary_servers
|
|
option: set option for server (for boolean option, value can be omitted)
|
|
nooption: set boolean option to 'off' (for example: -nossl)
|
|
-all: connect to all servers defined in configuration
|
|
-auto: connect to servers with autoconnect enabled
|
|
-open: connect to all opened servers that are not currently connected
|
|
-nojoin: do not join any channel (even if autojoin is enabled on server)
|
|
-switch: switch to next server address
|
|
|
|
To disconnect from a server or stop any connection attempt, use command /disconnect.
|
|
|
|
Examples:
|
|
/connect freenode
|
|
/connect irc.oftc.net/6667
|
|
/connect irc6.oftc.net/6667 -ipv6
|
|
/connect irc6.oftc.net/6697 -ipv6 -ssl
|
|
/connect my.server.org/6697 -ssl -password=test
|
|
/connect irc://nick@irc.oftc.net/#channel
|
|
/connect -switch
|
|
----
|
|
|
|
[[command_irc_ctcp]]
|
|
* `+ctcp+`: send a CTCP message (Client-To-Client Protocol)
|
|
|
|
----
|
|
/ctcp [-server <server>] <target>[,<target>...] <type> [<arguments>]
|
|
|
|
server: send to this server (internal name)
|
|
target: nick or channel ('*' = current channel)
|
|
type: CTCP type (examples: "version", "ping", etc.)
|
|
arguments: arguments for CTCP
|
|
|
|
Examples:
|
|
/ctcp toto time
|
|
/ctcp toto version
|
|
/ctcp * version
|
|
----
|
|
|
|
[[command_irc_cycle]]
|
|
* `+cycle+`: leave and rejoin a channel
|
|
|
|
----
|
|
/cycle [<channel>[,<channel>...]] [<message>]
|
|
|
|
channel: channel name
|
|
message: part message (displayed to other users)
|
|
----
|
|
|
|
[[command_irc_dcc]]
|
|
* `+dcc+`: start a DCC (file transfer or direct chat)
|
|
|
|
----
|
|
/dcc chat <nick>
|
|
send <nick> <file>
|
|
|
|
nick: nick
|
|
file: filename (on local host)
|
|
|
|
Examples:
|
|
chat with nick "toto":
|
|
/dcc chat toto
|
|
send file "/home/foo/bar.txt" to nick "toto":
|
|
/dcc send toto /home/foo/bar.txt
|
|
----
|
|
|
|
[[command_irc_dehalfop]]
|
|
* `+dehalfop+`: remove channel half-operator status from nick(s)
|
|
|
|
----
|
|
/dehalfop <nick> [<nick>...]
|
|
|
|
nick: nick or mask (wildcard "*" is allowed)
|
|
*: remove channel half-operator status from everybody on channel except yourself
|
|
----
|
|
|
|
[[command_irc_deop]]
|
|
* `+deop+`: remove channel operator status from nick(s)
|
|
|
|
----
|
|
/deop <nick> [<nick>...]
|
|
* -yes
|
|
|
|
nick: nick or mask (wildcard "*" is allowed)
|
|
*: remove channel operator status from everybody on channel except yourself
|
|
----
|
|
|
|
[[command_irc_devoice]]
|
|
* `+devoice+`: remove voice from nick(s)
|
|
|
|
----
|
|
/devoice <nick> [<nick>...]
|
|
* -yes
|
|
|
|
nick: nick or mask (wildcard "*" is allowed)
|
|
*: remove voice from everybody on channel
|
|
----
|
|
|
|
[[command_irc_die]]
|
|
* `+die+`: shutdown the server
|
|
|
|
----
|
|
/die [<target>]
|
|
|
|
target: server name
|
|
----
|
|
|
|
[[command_irc_disconnect]]
|
|
* `+disconnect+`: disconnect from one or all IRC servers
|
|
|
|
----
|
|
/disconnect [<server>|-all|-pending [<reason>]]
|
|
|
|
server: internal server name
|
|
-all: disconnect from all servers
|
|
-pending: cancel auto-reconnection on servers currently reconnecting
|
|
reason: reason for the "quit"
|
|
----
|
|
|
|
[[command_irc_halfop]]
|
|
* `+halfop+`: give channel half-operator status to nick(s)
|
|
|
|
----
|
|
/halfop <nick> [<nick>...]
|
|
* -yes
|
|
|
|
nick: nick or mask (wildcard "*" is allowed)
|
|
*: give channel half-operator status to everybody on channel
|
|
----
|
|
|
|
[[command_irc_ignore]]
|
|
* `+ignore+`: ignore nicks/hosts from servers or channels
|
|
|
|
----
|
|
/ignore list
|
|
add [re:]<nick> [<server> [<channel>]]
|
|
del <number>|-all
|
|
|
|
list: list all ignores
|
|
add: add an ignore
|
|
nick: nick or hostname (can be a POSIX extended regular expression if "re:" is given or a mask using "*" to replace zero or more chars)
|
|
del: delete an ignore
|
|
number: number of ignore to delete (look at list to find it)
|
|
-all: delete all ignores
|
|
server: internal server name where ignore is working
|
|
channel: channel name where ignore is working
|
|
|
|
Note: the regular expression can start with "(?-i)" to become case sensitive.
|
|
|
|
Examples:
|
|
ignore nick "toto" everywhere:
|
|
/ignore add toto
|
|
ignore host "toto@domain.com" on freenode server:
|
|
/ignore add toto@domain.com freenode
|
|
ignore host "toto*@*.domain.com" on freenode/#weechat:
|
|
/ignore add toto*@*.domain.com freenode #weechat
|
|
----
|
|
|
|
[[command_irc_info]]
|
|
* `+info+`: get information describing the server
|
|
|
|
----
|
|
/info [<target>]
|
|
|
|
target: server name
|
|
----
|
|
|
|
[[command_irc_invite]]
|
|
* `+invite+`: invite a nick on a channel
|
|
|
|
----
|
|
/invite <nick> [<nick>...] [<channel>]
|
|
|
|
nick: nick
|
|
channel: channel name
|
|
----
|
|
|
|
[[command_irc_ison]]
|
|
* `+ison+`: check if a nick is currently on IRC
|
|
|
|
----
|
|
/ison <nick> [<nick>...]
|
|
|
|
nick: nick
|
|
----
|
|
|
|
[[command_irc_join]]
|
|
* `+join+`: join a channel
|
|
|
|
----
|
|
/join [-noswitch] [-server <server>] [<channel1>[,<channel2>...]] [<key1>[,<key2>...]]
|
|
|
|
-noswitch: do not switch to new buffer
|
|
server: send to this server (internal name)
|
|
channel: channel name to join
|
|
key: key to join the channel (channels with a key must be the first in list)
|
|
|
|
Examples:
|
|
/join #weechat
|
|
/join #protectedchan,#weechat key
|
|
/join -server freenode #weechat
|
|
/join -noswitch #weechat
|
|
----
|
|
|
|
[[command_irc_kick]]
|
|
* `+kick+`: kick a user out of a channel
|
|
|
|
----
|
|
/kick [<channel>] <nick> [<reason>]
|
|
|
|
channel: channel name
|
|
nick: nick
|
|
reason: reason (special variables $nick, $channel and $server are replaced by their value)
|
|
----
|
|
|
|
[[command_irc_kickban]]
|
|
* `+kickban+`: kick a user out of a channel and ban the host
|
|
|
|
----
|
|
/kickban [<channel>] <nick> [<reason>]
|
|
|
|
channel: channel name
|
|
nick: nick
|
|
reason: reason (special variables $nick, $channel and $server are replaced by their value)
|
|
|
|
It is possible to kick/ban with a mask, nick will be extracted from mask and replaced by "*".
|
|
|
|
Example:
|
|
ban "*!*@host.com" and then kick "toto":
|
|
/kickban toto!*@host.com
|
|
----
|
|
|
|
[[command_irc_kill]]
|
|
* `+kill+`: close client-server connection
|
|
|
|
----
|
|
/kill <nick> [<reason>]
|
|
|
|
nick: nick
|
|
reason: reason
|
|
----
|
|
|
|
[[command_irc_links]]
|
|
* `+links+`: list all server names which are known by the server answering the query
|
|
|
|
----
|
|
/links [[<target>] <server_mask>]
|
|
|
|
target: this remote server should answer the query
|
|
server_mask: list of servers must match this mask
|
|
----
|
|
|
|
[[command_irc_list]]
|
|
* `+list+`: list channels and their topic
|
|
|
|
----
|
|
/list [-server <server>] [-re <regex>] [<channel>[,<channel>...]] [<target>]
|
|
|
|
server: send to this server (internal name)
|
|
regex: POSIX extended regular expression used to filter results (case insensitive, can start by "(?-i)" to become case sensitive)
|
|
channel: channel to list
|
|
target: server name
|
|
|
|
Examples:
|
|
list all channels on server (can be very slow on large networks):
|
|
/list
|
|
list channel #weechat:
|
|
/list #weechat
|
|
list all channels beginning with "#weechat" (can be very slow on large networks):
|
|
/list -re #weechat.*
|
|
----
|
|
|
|
[[command_irc_lusers]]
|
|
* `+lusers+`: get statistics about the size of the IRC network
|
|
|
|
----
|
|
/lusers [<mask> [<target>]]
|
|
|
|
mask: servers matching the mask only
|
|
target: server for forwarding request
|
|
----
|
|
|
|
[[command_irc_map]]
|
|
* `+map+`: show a graphical map of the IRC network
|
|
|
|
----
|
|
----
|
|
|
|
[[command_irc_me]]
|
|
* `+me+`: send a CTCP action to the current channel
|
|
|
|
----
|
|
/me <message>
|
|
|
|
message: message to send
|
|
----
|
|
|
|
[[command_irc_mode]]
|
|
* `+mode+`: change channel or user mode
|
|
|
|
----
|
|
/mode [<channel>] [+|-]o|p|s|i|t|n|m|l|b|e|v|k [<arguments>]
|
|
<nick> [+|-]i|s|w|o
|
|
|
|
channel modes:
|
|
channel: channel name to modify (default is current one)
|
|
o: give/take channel operator privileges
|
|
p: private channel flag
|
|
s: secret channel flag
|
|
i: invite-only channel flag
|
|
t: topic settable by channel operator only flag
|
|
n: no messages to channel from clients on the outside
|
|
m: moderated channel
|
|
l: set the user limit to channel
|
|
b: set a ban mask to keep users out
|
|
e: set exception mask
|
|
v: give/take the ability to speak on a moderated channel
|
|
k: set a channel key (password)
|
|
user modes:
|
|
nick: nick to modify
|
|
i: mark a user as invisible
|
|
s: mark a user for receive server notices
|
|
w: user receives wallops
|
|
o: operator flag
|
|
|
|
List of modes is not comprehensive, you should read documentation about your server to see all possible modes.
|
|
|
|
Examples:
|
|
protect topic on channel #weechat:
|
|
/mode #weechat +t
|
|
become invisible on server:
|
|
/mode nick +i
|
|
----
|
|
|
|
[[command_irc_motd]]
|
|
* `+motd+`: get the "Message Of The Day"
|
|
|
|
----
|
|
/motd [<target>]
|
|
|
|
target: server name
|
|
----
|
|
|
|
[[command_irc_msg]]
|
|
* `+msg+`: send message to a nick or channel
|
|
|
|
----
|
|
/msg [-server <server>] <target>[,<target>...] <text>
|
|
|
|
server: send to this server (internal name)
|
|
target: nick or channel (may be mask, '*' = current channel)
|
|
text: text to send
|
|
----
|
|
|
|
[[command_irc_names]]
|
|
* `+names+`: list nicks on channels
|
|
|
|
----
|
|
/names [<channel>[,<channel>...]]
|
|
|
|
channel: channel name
|
|
----
|
|
|
|
[[command_irc_nick]]
|
|
* `+nick+`: change current nick
|
|
|
|
----
|
|
/nick [-all] <nick>
|
|
|
|
-all: set new nick for all connected servers
|
|
nick: new nick
|
|
----
|
|
|
|
[[command_irc_notice]]
|
|
* `+notice+`: send notice message to user
|
|
|
|
----
|
|
/notice [-server <server>] <target> <text>
|
|
|
|
server: send to this server (internal name)
|
|
target: nick or channel name
|
|
text: text to send
|
|
----
|
|
|
|
[[command_irc_notify]]
|
|
* `+notify+`: add a notification for presence or away status of nicks on servers
|
|
|
|
----
|
|
/notify add <nick> [<server> [-away]]
|
|
del <nick>|-all [<server>]
|
|
|
|
add: add a notification
|
|
nick: nick
|
|
server: internal server name (by default current server)
|
|
-away: notify when away message is changed (by doing whois on nick)
|
|
del: delete a notification
|
|
-all: delete all notifications
|
|
|
|
Without argument, this command displays notifications for current server (or all servers if command is issued on core buffer).
|
|
|
|
Examples:
|
|
notify when "toto" joins/quits current server:
|
|
/notify add toto
|
|
notify when "toto" joins/quits freenode server:
|
|
/notify add toto freenode
|
|
notify when "toto" is away or back on freenode server:
|
|
/notify add toto freenode -away
|
|
----
|
|
|
|
[[command_irc_op]]
|
|
* `+op+`: give channel operator status to nick(s)
|
|
|
|
----
|
|
/op <nick> [<nick>...]
|
|
* -yes
|
|
|
|
nick: nick or mask (wildcard "*" is allowed)
|
|
*: give channel operator status to everybody on channel
|
|
----
|
|
|
|
[[command_irc_oper]]
|
|
* `+oper+`: get operator privileges
|
|
|
|
----
|
|
/oper <user> <password>
|
|
|
|
user: user
|
|
password: password
|
|
----
|
|
|
|
[[command_irc_part]]
|
|
* `+part+`: leave a channel
|
|
|
|
----
|
|
/part [<channel>[,<channel>...]] [<message>]
|
|
|
|
channel: channel name to leave
|
|
message: part message (displayed to other users)
|
|
----
|
|
|
|
[[command_irc_ping]]
|
|
* `+ping+`: send a ping to server
|
|
|
|
----
|
|
/ping <target1> [<target2>]
|
|
|
|
target1: server
|
|
target2: forward ping to this server
|
|
----
|
|
|
|
[[command_irc_pong]]
|
|
* `+pong+`: answer to a ping message
|
|
|
|
----
|
|
/pong <daemon> [<daemon2>]
|
|
|
|
daemon: daemon who has responded to Ping message
|
|
daemon2: forward message to this daemon
|
|
----
|
|
|
|
[[command_irc_query]]
|
|
* `+query+`: send a private message to a nick
|
|
|
|
----
|
|
/query [-noswitch] [-server <server>] <nick>[,<nick>...] [<text>]
|
|
|
|
-noswitch: do not switch to new buffer
|
|
server: send to this server (internal name)
|
|
nick: nick
|
|
text: text to send
|
|
----
|
|
|
|
[[command_irc_quiet]]
|
|
* `+quiet+`: quiet nicks or hosts
|
|
|
|
----
|
|
/quiet [<channel>] [<nick> [<nick>...]]
|
|
|
|
channel: channel name
|
|
nick: nick or host
|
|
|
|
Without argument, this command displays the quiet list for current channel.
|
|
----
|
|
|
|
[[command_irc_quote]]
|
|
* `+quote+`: send raw data to server without parsing
|
|
|
|
----
|
|
/quote [-server <server>] <data>
|
|
|
|
server: send to this server (internal name)
|
|
data: raw data to send
|
|
----
|
|
|
|
[[command_irc_reconnect]]
|
|
* `+reconnect+`: reconnect to server(s)
|
|
|
|
----
|
|
/reconnect <server> [<server>...] [-nojoin] [-switch]
|
|
-all [-nojoin] [-switch]
|
|
|
|
server: server to reconnect (internal name)
|
|
-all: reconnect to all servers
|
|
-nojoin: do not join any channel (even if autojoin is enabled on server)
|
|
-switch: switch to next server address
|
|
----
|
|
|
|
[[command_irc_rehash]]
|
|
* `+rehash+`: tell the server to reload its config file
|
|
|
|
----
|
|
/rehash [<option>]
|
|
|
|
option: extra option, for some servers
|
|
----
|
|
|
|
[[command_irc_remove]]
|
|
* `+remove+`: force a user to leave a channel
|
|
|
|
----
|
|
/remove [<channel>] <nick> [<reason>]
|
|
|
|
channel: channel name
|
|
nick: nick
|
|
reason: reason (special variables $nick, $channel and $server are replaced by their value)
|
|
----
|
|
|
|
[[command_irc_restart]]
|
|
* `+restart+`: tell the server to restart itself
|
|
|
|
----
|
|
/restart [<target>]
|
|
|
|
target: server name
|
|
----
|
|
|
|
[[command_irc_sajoin]]
|
|
* `+sajoin+`: force a user to join channel(s)
|
|
|
|
----
|
|
/sajoin <nick> <channel>[,<channel>...]
|
|
|
|
nick: nick
|
|
channel: channel name
|
|
----
|
|
|
|
[[command_irc_samode]]
|
|
* `+samode+`: change mode on channel, without having operator status
|
|
|
|
----
|
|
/samode [<channel>] <mode>
|
|
|
|
channel: channel name
|
|
mode: mode for channel
|
|
----
|
|
|
|
[[command_irc_sanick]]
|
|
* `+sanick+`: force a user to use another nick
|
|
|
|
----
|
|
/sanick <nick> <new_nick>
|
|
|
|
nick: nick
|
|
new_nick: new nick
|
|
----
|
|
|
|
[[command_irc_sapart]]
|
|
* `+sapart+`: force a user to leave channel(s)
|
|
|
|
----
|
|
/sapart <nick> <channel>[,<channel>...]
|
|
|
|
nick: nick
|
|
channel: channel name
|
|
----
|
|
|
|
[[command_irc_saquit]]
|
|
* `+saquit+`: force a user to quit server with a reason
|
|
|
|
----
|
|
/saquit <nick> <reason>
|
|
|
|
nick: nick
|
|
reason: reason
|
|
----
|
|
|
|
[[command_irc_server]]
|
|
* `+server+`: list, add or remove IRC servers
|
|
|
|
----
|
|
/server list|listfull [<name>]
|
|
add <name> <hostname>[/<port>] [-temp] [-<option>[=<value>]] [-no<option>]
|
|
copy|rename <name> <new_name>
|
|
reorder <name> [<name>...]
|
|
open <name>|-all [<name>...]
|
|
del|keep <name>
|
|
deloutq|jump
|
|
raw [<filter>]
|
|
|
|
list: list servers (without argument, this list is displayed)
|
|
listfull: list servers with detailed info for each server
|
|
add: add a new server
|
|
name: server name, for internal and display use; this name is used to connect to the server (/connect name) and to set server options: irc.server.name.xxx
|
|
hostname: name or IP address of server, with optional port (default: 6667), many addresses can be separated by a comma
|
|
-temp: add a temporary server (not saved)
|
|
option: set option for server (for boolean option, value can be omitted)
|
|
nooption: set boolean option to 'off' (for example: -nossl)
|
|
copy: duplicate a server
|
|
rename: rename a server
|
|
reorder: reorder list of servers
|
|
open: open the server buffer without connecting
|
|
keep: keep server in config file (for temporary servers only)
|
|
del: delete a server
|
|
deloutq: delete messages out queue for all servers (all messages WeeChat is currently sending)
|
|
jump: jump to server buffer
|
|
raw: open buffer with raw IRC data
|
|
filter: set a new filter to see only matching messages (this filter can be used as input in raw IRC data buffer as well); allowed formats are:
|
|
* show all messages (no filter)
|
|
xxx show only messages containing "xxx"
|
|
s:xxx show only messages for server "xxx"
|
|
f:xxx show only messages with a flag: recv (message received), sent (message sent), modified (message modified by a modifier), redirected (message redirected)
|
|
m:xxx show only IRC command "xxx"
|
|
c:xxx show only messages matching the evaluated condition "xxx", using following variables: output of function irc_message_parse (like nick, command, channel, text, etc., see function info_get_hashtable in plugin API reference for the list of all variables), date (format: "yyyy-mm-dd hh:mm:ss"), server, recv, sent, modified, redirected
|
|
|
|
Examples:
|
|
/server listfull
|
|
/server add freenode chat.freenode.net
|
|
/server add freenode chat.freenode.net/6697 -ssl -autoconnect
|
|
/server add chatspike irc.chatspike.net/6667,irc.duckspike.net/6667
|
|
/server copy freenode freenode-test
|
|
/server rename freenode-test freenode2
|
|
/server reorder freenode2 freenode
|
|
/server del freenode
|
|
/server deloutq
|
|
/server raw
|
|
/server raw s:freenode
|
|
/server raw c:${recv} && ${command}==PRIVMSG && ${nick}==foo
|
|
----
|
|
|
|
[[command_irc_service]]
|
|
* `+service+`: register a new service
|
|
|
|
----
|
|
/service <nick> <reserved> <distribution> <type> <reserved> <info>
|
|
|
|
distribution: visibility of service
|
|
type: reserved for future usage
|
|
----
|
|
|
|
[[command_irc_servlist]]
|
|
* `+servlist+`: list services currently connected to the network
|
|
|
|
----
|
|
/servlist [<mask> [<type>]]
|
|
|
|
mask: list only services matching this mask
|
|
type: list only services of this type
|
|
----
|
|
|
|
[[command_irc_squery]]
|
|
* `+squery+`: deliver a message to a service
|
|
|
|
----
|
|
/squery <service> <text>
|
|
|
|
service: name of service
|
|
text: text to send
|
|
----
|
|
|
|
[[command_irc_squit]]
|
|
* `+squit+`: disconnect server links
|
|
|
|
----
|
|
/squit <target> <comment>
|
|
|
|
target: server name
|
|
comment: comment
|
|
----
|
|
|
|
[[command_irc_stats]]
|
|
* `+stats+`: query statistics about server
|
|
|
|
----
|
|
/stats [<query> [<target>]]
|
|
|
|
query: c/h/i/k/l/m/o/y/u (see RFC1459)
|
|
target: server name
|
|
----
|
|
|
|
[[command_irc_summon]]
|
|
* `+summon+`: give users who are on a host running an IRC server a message asking them to please join IRC
|
|
|
|
----
|
|
/summon <user> [<target> [<channel>]]
|
|
|
|
user: username
|
|
target: server name
|
|
channel: channel name
|
|
----
|
|
|
|
[[command_irc_time]]
|
|
* `+time+`: query local time from server
|
|
|
|
----
|
|
/time [<target>]
|
|
|
|
target: query time from specified server
|
|
----
|
|
|
|
[[command_irc_topic]]
|
|
* `+topic+`: get/set channel topic
|
|
|
|
----
|
|
/topic [<channel>] [<topic>|-delete]
|
|
|
|
channel: channel name
|
|
topic: new topic
|
|
-delete: delete channel topic
|
|
----
|
|
|
|
[[command_irc_trace]]
|
|
* `+trace+`: find the route to specific server
|
|
|
|
----
|
|
/trace [<target>]
|
|
|
|
target: server name
|
|
----
|
|
|
|
[[command_irc_unban]]
|
|
* `+unban+`: unban nicks or hosts
|
|
|
|
----
|
|
/unban [<channel>] <nick>|<number> [<nick>|<number>...]
|
|
|
|
channel: channel name
|
|
nick: nick or host
|
|
number: ban number (as displayed by command /ban)
|
|
----
|
|
|
|
[[command_irc_unquiet]]
|
|
* `+unquiet+`: unquiet nicks or hosts
|
|
|
|
----
|
|
/unquiet [<channel>] <nick>|<number> [<nick>|<number>...]
|
|
|
|
channel: channel name
|
|
nick: nick or host
|
|
number: quiet number (as displayed by command /quiet)
|
|
----
|
|
|
|
[[command_irc_userhost]]
|
|
* `+userhost+`: return a list of information about nicks
|
|
|
|
----
|
|
/userhost <nick> [<nick>...]
|
|
|
|
nick: nick
|
|
----
|
|
|
|
[[command_irc_users]]
|
|
* `+users+`: list of users logged into the server
|
|
|
|
----
|
|
/users [<target>]
|
|
|
|
target: server name
|
|
----
|
|
|
|
[[command_irc_version]]
|
|
* `+version+`: give the version info of nick or server (current or specified)
|
|
|
|
----
|
|
/version [<target>|<nick>]
|
|
|
|
target: server name
|
|
nick: nick
|
|
----
|
|
|
|
[[command_irc_voice]]
|
|
* `+voice+`: give voice to nick(s)
|
|
|
|
----
|
|
/voice <nick> [<nick>...]
|
|
|
|
nick: nick or mask (wildcard "*" is allowed)
|
|
*: give voice to everybody on channel
|
|
----
|
|
|
|
[[command_irc_wallchops]]
|
|
* `+wallchops+`: send a notice to channel ops
|
|
|
|
----
|
|
/wallchops [<channel>] <text>
|
|
|
|
channel: channel name
|
|
text: text to send
|
|
----
|
|
|
|
[[command_irc_wallops]]
|
|
* `+wallops+`: send a message to all currently connected users who have set the 'w' user mode for themselves
|
|
|
|
----
|
|
/wallops <text>
|
|
|
|
text: text to send
|
|
----
|
|
|
|
[[command_irc_who]]
|
|
* `+who+`: generate a query which returns a list of information
|
|
|
|
----
|
|
/who [<mask> [o]]
|
|
|
|
mask: only information which match this mask
|
|
o: only operators are returned according to the mask supplied
|
|
----
|
|
|
|
[[command_irc_whois]]
|
|
* `+whois+`: query information about user(s)
|
|
|
|
----
|
|
/whois [<target>] [<nick>[,<nick>...]]
|
|
|
|
target: server name
|
|
nick: nick (may be a mask)
|
|
|
|
Without argument, this command will do a whois on:
|
|
- your own nick if buffer is a server/channel
|
|
- remote nick if buffer is a private.
|
|
|
|
If option irc.network.whois_double_nick is enabled, two nicks are sent (if only one nick is given), to get idle time in answer.
|
|
----
|
|
|
|
[[command_irc_whowas]]
|
|
* `+whowas+`: ask for information about a nick which no longer exists
|
|
|
|
----
|
|
/whowas <nick>[,<nick>...] [<count> [<target>]]
|
|
|
|
nick: nick
|
|
count: number of replies to return (full search if negative number)
|
|
target: reply should match this mask
|
|
----
|
|
// end::irc_commands[]
|
|
|
|
// tag::alias_commands[]
|
|
[[command_alias_alias]]
|
|
* `+alias+`: list, add or remove command aliases
|
|
|
|
----
|
|
/alias list [<alias>]
|
|
add <alias> [<command>[;<command>...]]
|
|
addcompletion <completion> <alias> [<command>[;<command>...]]
|
|
del <alias> [<alias>...]
|
|
|
|
list: list aliases (without argument, this list is displayed)
|
|
add: add an alias
|
|
addcompletion: add an alias with a custom completion
|
|
del: delete an alias
|
|
completion: completion for alias: by default completion is done with target command
|
|
note: you can use %%command to use completion of an existing command
|
|
alias: name of alias
|
|
command: command name with arguments (many commands can be separated by semicolons)
|
|
|
|
Note: in command, special variables are replaced:
|
|
$n: argument 'n' (between 1 and 9)
|
|
$-m: arguments from 1 to 'm'
|
|
$n-: arguments from 'n' to last
|
|
$n-m: arguments from 'n' to 'm'
|
|
$*: all arguments
|
|
$~: last argument
|
|
$var: where "var" is a local variable of buffer (see /buffer localvar)
|
|
examples: $nick, $channel, $server, $plugin, $name
|
|
|
|
Examples:
|
|
alias /split to split window horizontally:
|
|
/alias add split /window splith
|
|
alias /hello to say "hello" on all channels but not on #weechat:
|
|
/alias add hello /allchan -exclude=#weechat hello
|
|
alias /forcejoin to send IRC command "forcejoin" with completion of /sajoin:
|
|
/alias addcompletion %%sajoin forcejoin /quote forcejoin
|
|
----
|
|
// end::alias_commands[]
|
|
|
|
// tag::weechat_commands[]
|
|
[[command_weechat_away]]
|
|
* `+away+`: set or remove away status
|
|
|
|
----
|
|
/away [-all] [<message>]
|
|
|
|
-all: set or remove away status on all connected servers
|
|
message: message for away (if no message is given, away status is removed)
|
|
----
|
|
|
|
[[command_weechat_bar]]
|
|
* `+bar+`: manage bars
|
|
|
|
----
|
|
/bar list|listfull|listitems
|
|
add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
|
|
default [input|title|status|nicklist]
|
|
del <name>|-all
|
|
set <name> <option> <value>
|
|
hide|show|toggle <name>
|
|
scroll <name> <window> <scroll_value>
|
|
|
|
list: list all bars
|
|
listfull: list all bars (verbose)
|
|
listitems: list all bar items
|
|
add: add a new bar
|
|
name: name of bar (must be unique)
|
|
type: root: outside windows,
|
|
window: inside windows, with optional conditions (see below)
|
|
conditions: the conditions to display the bar:
|
|
active: on active window
|
|
inactive: on inactive windows
|
|
nicklist: on windows with nicklist
|
|
other condition: see /help weechat.bar.xxx.conditions and /help eval
|
|
without conditions, the bar is always displayed
|
|
position: bottom, top, left or right
|
|
size: size of bar (in chars)
|
|
separator: 1 for using separator (line), 0 or nothing means no separator
|
|
item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items))
|
|
default: create a default bar (all default bars if no bar name is given)
|
|
del: delete a bar (or all bars with -all)
|
|
set: set a value for a bar property
|
|
option: option to change (for options list, look at /set weechat.bar.<barname>.*)
|
|
value: new value for option
|
|
hide: hide a bar
|
|
show: show an hidden bar
|
|
toggle: hide/show a bar
|
|
scroll: scroll bar
|
|
window: window number (use '*' for current window or for root bars)
|
|
scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars)
|
|
|
|
Examples:
|
|
create a bar with time, buffer number + name, and completion:
|
|
/bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
|
|
hide a bar:
|
|
/bar hide mybar
|
|
scroll nicklist 10 lines down on current buffer:
|
|
/bar scroll nicklist * y+10
|
|
scroll to end of nicklist on current buffer:
|
|
/bar scroll nicklist * ye
|
|
----
|
|
|
|
[[command_weechat_buffer]]
|
|
* `+buffer+`: manage buffers
|
|
|
|
----
|
|
/buffer list
|
|
add [-free] [-switch] <name>
|
|
clear [<number>|<name>|-merged|-all [<number>|<name>...]]
|
|
move <number>|-|+
|
|
swap <number1>|<name1> [<number2>|<name2>]
|
|
cycle <number>|<name> [<number>|<name>...]
|
|
merge <number>|<name>
|
|
unmerge [<number>|-all]
|
|
hide [<number>|<name>|-all [<number>|<name>...]]
|
|
unhide [<number>|<name>|-all [<number>|<name>...]]
|
|
renumber [<number1> [<number2> [<start>]]]
|
|
close [<n1>[-<n2>]|<name>...]
|
|
notify [<level>]
|
|
localvar [<number>|<name>]
|
|
set <property> [<value>]
|
|
get <property>
|
|
<number>|-|+|<name>
|
|
|
|
list: list buffers (without argument, this list is displayed)
|
|
add: add a new buffer (it can be closed with "/buffer close" or input "q")
|
|
clear: clear buffer content (number for a buffer, -merged for merged buffers, -all for all buffers, or nothing for current buffer)
|
|
move: move buffer in the list (may be relative, for example -1); "-" = move to first buffer number, "+" = move to last buffer number + 1
|
|
swap: swap two buffers (swap with current buffer if only one number/name given)
|
|
cycle: jump loop between a list of buffers
|
|
merge: merge current buffer to another buffer (chat area will be mix of both buffers)
|
|
(by default ctrl-x switches between merged buffers)
|
|
unmerge: unmerge buffer from other buffers which have same number
|
|
hide: hide the buffer
|
|
unhide: unhide the buffer
|
|
renumber: renumber buffers (works only if option weechat.look.buffer_auto_renumber is off)
|
|
close: close buffer (number/range or name is optional)
|
|
notify: display or set notify level for current buffer: this level determines whether buffer will be added to hotlist or not:
|
|
none: never
|
|
highlight: for highlights only
|
|
message: for messages from users + highlights
|
|
all: all messages
|
|
reset: reset to default value (all)
|
|
localvar: display local variables for the buffer
|
|
set: set a property for current buffer
|
|
get: display a property of current buffer
|
|
number: jump to buffer by number, possible prefix:
|
|
'+': relative jump, add number to current
|
|
'-': relative jump, sub number to current
|
|
'*': jump to number, using option "weechat.look.jump_current_to_previous_buffer"
|
|
-: jump to first buffer number
|
|
+: jump to last buffer number
|
|
name: jump to buffer by (partial) name
|
|
|
|
Examples:
|
|
clear current buffer:
|
|
/buffer clear
|
|
move buffer to number 5:
|
|
/buffer move 5
|
|
swap buffer 1 with 3:
|
|
/buffer swap 1 3
|
|
swap buffer #weechat with current buffer:
|
|
/buffer swap #weechat
|
|
jump on #chan1, #chan2, #chan3 and loop:
|
|
/buffer cycle #chan1 #chan2 #chan3
|
|
merge with core buffer:
|
|
/buffer merge 1
|
|
merge with #weechat buffer:
|
|
/buffer merge #weechat
|
|
unmerge buffer:
|
|
/buffer unmerge
|
|
close current buffer:
|
|
/buffer close
|
|
close buffers 5 to 7:
|
|
/buffer close 5-7
|
|
jump to #weechat:
|
|
/buffer #weechat
|
|
jump to next buffer:
|
|
/buffer +1
|
|
jump to last buffer number:
|
|
/buffer +
|
|
----
|
|
|
|
[[command_weechat_color]]
|
|
* `+color+`: define color aliases and display palette of colors
|
|
|
|
----
|
|
/color alias <color> <name>
|
|
unalias <color>
|
|
reset
|
|
term2rgb <color>
|
|
rgb2term <rgb> [<limit>]
|
|
-o
|
|
|
|
alias: add an alias for a color
|
|
unalias: delete an alias
|
|
color: color number (greater than or equal to 0, max depends on terminal, commonly 63 or 255)
|
|
name: alias name for color (for example: "orange")
|
|
reset: reset all color pairs (required when no more color pairs are available if automatic reset is disabled, see option "weechat.look.color_pairs_auto_reset")
|
|
term2rgb: convert a terminal color (0-255) to RGB color
|
|
rgb2term: convert a RGB color to terminal color (0-255)
|
|
limit: number of colors to use in terminal table (starting from 0); default is 256
|
|
-o: send terminal/colors info to current buffer as input
|
|
|
|
Without argument, this command displays colors in a new buffer.
|
|
|
|
Examples:
|
|
add alias "orange" for color 214:
|
|
/color alias 214 orange
|
|
delete color 214:
|
|
/color unalias 214
|
|
----
|
|
|
|
[[command_weechat_command]]
|
|
* `+command+`: launch explicit WeeChat or plugin command
|
|
|
|
----
|
|
/command [-buffer <name>] <plugin> <command>
|
|
|
|
-buffer: execute the command on this buffer
|
|
plugin: execute the command from this plugin; 'core' for a WeeChat command, '*' for automatic plugin (it depends on the buffer where the command is executed)
|
|
command: command to execute (a '/' is automatically added if not found at beginning of command)
|
|
----
|
|
|
|
[[command_weechat_cursor]]
|
|
* `+cursor+`: free movement of cursor on screen to execute actions on specific areas of screen
|
|
|
|
----
|
|
/cursor go chat|<bar>|<x>,<y>
|
|
move up|down|left|right|area_up|area_down|area_left|area_right
|
|
stop
|
|
|
|
go: move cursor to chat area, a bar (using bar name) or coordinates "x,y"
|
|
move: move cursor with direction
|
|
stop: stop cursor mode
|
|
|
|
Without argument, this command toggles cursor mode.
|
|
|
|
When mouse is enabled (see /help mouse), by default a middle click will start cursor mode at this point.
|
|
|
|
Default keys in cursor mode on chat messages:
|
|
m quote message
|
|
q quote prefix + message
|
|
Q quote time + prefix + message
|
|
|
|
Default keys in cursor mode on nicklist:
|
|
b ban nick (/ban)
|
|
k kick nick (/kick)
|
|
K kick and ban nick (/kickban)
|
|
q open query with nick (/query)
|
|
w query information about user (/whois)
|
|
|
|
Other default keys in cursor mode:
|
|
arrow move cursor
|
|
alt+arrow move cursor to the next area
|
|
enter exit cursor mode
|
|
|
|
Examples:
|
|
go to nicklist:
|
|
/cursor go nicklist
|
|
go to coordinates x=10, y=5:
|
|
/cursor go 10,5
|
|
----
|
|
|
|
[[command_weechat_debug]]
|
|
* `+debug+`: debug functions
|
|
|
|
----
|
|
/debug list
|
|
set <plugin> <level>
|
|
dump [<plugin>]
|
|
buffer|color|infolists|memory|tags|term|windows
|
|
mouse|cursor [verbose]
|
|
hdata [free]
|
|
time <command>
|
|
|
|
list: list plugins with debug levels
|
|
set: set debug level for plugin
|
|
plugin: name of plugin ("core" for WeeChat core)
|
|
level: debug level for plugin (0 = disable debug)
|
|
dump: save memory dump in WeeChat log file (same dump is written when WeeChat crashes)
|
|
buffer: dump buffer content with hexadecimal values in log file
|
|
color: display infos about current color pairs
|
|
cursor: toggle debug for cursor mode
|
|
dirs: display directories
|
|
hdata: display infos about hdata (with free: remove all hdata in memory)
|
|
hooks: display infos about hooks
|
|
infolists: display infos about infolists
|
|
libs: display infos about external libraries used
|
|
memory: display infos about memory usage
|
|
mouse: toggle debug for mouse
|
|
tags: display tags for lines
|
|
term: display infos about terminal
|
|
windows: display windows tree
|
|
time: measure time to execute a command or to send text to the current buffer
|
|
----
|
|
|
|
[[command_weechat_eval]]
|
|
* `+eval+`: evaluate expression
|
|
|
|
----
|
|
/eval [-n|-s] [-d] <expression>
|
|
[-n] [-d] -c <expression1> <operator> <expression2>
|
|
|
|
-n: display result without sending it to buffer (debug mode)
|
|
-s: split expression before evaluating it (many commands can be separated by semicolons)
|
|
-d: display debug output after evaluation
|
|
-c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1")
|
|
expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons
|
|
operator: a logical or comparison operator:
|
|
- logical operators:
|
|
&& boolean "and"
|
|
|| boolean "or"
|
|
- comparison operators:
|
|
== equal
|
|
!= not equal
|
|
<= less or equal
|
|
< less
|
|
>= greater or equal
|
|
> greater
|
|
=~ is matching POSIX extended regex
|
|
!~ is NOT matching POSIX extended regex
|
|
==* is matching mask, case sensitive (wildcard "*" is allowed)
|
|
!!* is NOT matching mask, case sensitive (wildcard "*" is allowed)
|
|
=* is matching mask, case insensitive (wildcard "*" is allowed)
|
|
!* is NOT matching mask, case insensitive (wildcard "*" is allowed)
|
|
==- is included, case sensitive
|
|
!!- is NOT included, case sensitive
|
|
=- is included, case insensitive
|
|
!- is NOT included, case insensitive
|
|
|
|
An expression is considered as "true" if it is not NULL, not empty, and different from "0".
|
|
The comparison is made using floating point numbers if the two expressions are valid numbers, with one of the following formats:
|
|
- integer (examples: 5, -7)
|
|
- floating point number (examples: 5.2, -7.5, 2.83e-2)
|
|
- hexadecimal number (examples: 0xA3, -0xA3)
|
|
To force a string comparison, you can add double quotes around each expression, for example:
|
|
50 > 100 ==> 0
|
|
"50" > "100" ==> 1
|
|
|
|
Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority:
|
|
1. an evaluated sub-string (format: "eval:xxx")
|
|
2. a string with escaped chars (format: "esc:xxx" or "\xxx")
|
|
3. a string with chars to hide (format: "hide:char,string")
|
|
4. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
|
|
or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string")
|
|
5. a reversed string (format: "rev:xxx" or "revscr:xxx")
|
|
6. a repeated string (format: "repeat:count,string")
|
|
7. length of a string (format: "length:xxx" or "lengthscr:xxx")
|
|
8. a color (format: "color:xxx", see "Plugin API reference", function "color")
|
|
9. a modifier (format: "modifier:name,data,string")
|
|
10. an info (format: "info:name,arguments", arguments are optional)
|
|
11. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
|
|
12. current date/time (format: "date" or "date:format")
|
|
13. an environment variable (format: "env:XXX")
|
|
14. a ternary operator (format: "if:condition?value_if_true:value_if_false")
|
|
15. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
|
|
16. an option (format: "file.section.option")
|
|
17. a local variable in buffer
|
|
18. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
|
|
Format for hdata can be one of following:
|
|
hdata.var1.var2...: start with a hdata (pointer must be known), and ask variables one after one (other hdata can be followed)
|
|
hdata[list].var1.var2...: start with a hdata using a list, for example:
|
|
${buffer[gui_buffers].full_name}: full name of first buffer in linked list of buffers
|
|
${plugin[weechat_plugins].name}: name of first plugin in linked list of plugins
|
|
hdata[pointer].var1.var2...: start with a hdata using a pointer, for example:
|
|
${buffer[0x1234abcd].full_name}: full name of the buffer with this pointer (can be used in triggers)
|
|
For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get".
|
|
|
|
Examples (simple strings):
|
|
/eval -n ${info:version} ==> 0.4.3
|
|
/eval -n ${env:HOME} ==> /home/user
|
|
/eval -n ${weechat.look.scroll_amount} ==> 3
|
|
/eval -n ${sec.data.freenode_password} ==> secret
|
|
/eval -n ${window} ==> 0x2549aa0
|
|
/eval -n ${window.buffer} ==> 0x2549320
|
|
/eval -n ${window.buffer.full_name} ==> core.weechat
|
|
/eval -n ${window.buffer.number} ==> 1
|
|
/eval -n ${\t} ==> <tab>
|
|
/eval -n ${hide:-,${relay.network.password}} ==> --------
|
|
/eval -n ${cut:3,+,test} ==> tes+
|
|
/eval -n ${cut:+3,+,test} ==> te+
|
|
/eval -n ${date:%H:%M:%S} ==> 07:46:40
|
|
/eval -n ${if:${info:term_width}>80?big:small} ==> big
|
|
/eval -n ${rev:Hello} ==> olleH
|
|
/eval -n ${repeat:5,-} ==> -----
|
|
/eval -n ${length:test} ==> 4
|
|
/eval -n ${calc:(5+2)*3} ==> 21
|
|
/eval -n ${base_encode:64,test} ==> dGVzdA==
|
|
/eval -n ${base_decode:64,dGVzdA==} ==> test
|
|
|
|
Examples (conditions):
|
|
/eval -n -c ${window.buffer.number} > 2 ==> 0
|
|
/eval -n -c ${window.win_width} > 100 ==> 1
|
|
/eval -n -c (8 > 12) || (5 > 2) ==> 1
|
|
/eval -n -c (8 > 12) && (5 > 2) ==> 0
|
|
/eval -n -c abcd =~ ^ABC ==> 1
|
|
/eval -n -c abcd =~ (?-i)^ABC ==> 0
|
|
/eval -n -c abcd =~ (?-i)^abc ==> 1
|
|
/eval -n -c abcd !~ abc ==> 0
|
|
/eval -n -c abcd =* a*d ==> 1
|
|
/eval -n -c abcd =- bc ==> 1
|
|
----
|
|
|
|
[[command_weechat_filter]]
|
|
* `+filter+`: filter messages in buffers, to hide/show them according to tags or regex
|
|
|
|
----
|
|
/filter list
|
|
enable|disable|toggle [<name>|@]
|
|
add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex>
|
|
rename <name> <new_name>
|
|
del <name>|-all
|
|
|
|
list: list all filters
|
|
enable: enable filters (filters are enabled by default)
|
|
disable: disable filters
|
|
toggle: toggle filters
|
|
name: filter name ("@" = enable/disable all filters in current buffer)
|
|
add: add a filter
|
|
addreplace: add or replace an existing filter
|
|
rename: rename a filter
|
|
del: delete a filter
|
|
-all: delete all filters
|
|
buffer: comma separated list of buffers where filter is active:
|
|
- this is full name including plugin (example: "irc.freenode.#weechat" or "irc.server.freenode")
|
|
- "*" means all buffers
|
|
- a name starting with '!' is excluded
|
|
- wildcard "*" is allowed
|
|
tags: comma separated list of tags, for example "irc_join,irc_part,irc_quit"
|
|
- logical "and": use "+" between tags (for example: "nick_toto+irc_action")
|
|
- wildcard "*" is allowed
|
|
- if tag starts with '!', then it is excluded and must NOT be in message
|
|
regex: POSIX extended regular expression to search in line
|
|
- use '\t' to separate prefix from message, special chars like '|' must be escaped: '\|'
|
|
- if regex starts with '!', then matching result is reversed (use '\!' to start with '!')
|
|
- two regular expressions are created: one for prefix and one for message
|
|
- regex are case insensitive, they can start by "(?-i)" to become case sensitive
|
|
|
|
The default key alt+'=' toggles filtering on/off globally and alt+'-' toggles filtering on/off in the current buffer.
|
|
|
|
Tags most commonly used:
|
|
no_filter, no_highlight, no_log, log0..log9 (log level),
|
|
notify_none, notify_message, notify_private, notify_highlight,
|
|
self_msg, nick_xxx (xxx is nick in message), prefix_nick_ccc (ccc is color of nick),
|
|
host_xxx (xxx is username + host in message),
|
|
irc_xxx (xxx is command name or number, see /server raw or /debug tags),
|
|
irc_numeric, irc_error, irc_action, irc_ctcp, irc_ctcp_reply, irc_smart_filter, away_info.
|
|
To see tags for lines in buffers: /debug tags
|
|
|
|
Examples:
|
|
use IRC smart filter on all buffers:
|
|
/filter add irc_smart * irc_smart_filter *
|
|
use IRC smart filter on all buffers except those with "#weechat" in name:
|
|
/filter add irc_smart *,!*#weechat* irc_smart_filter *
|
|
filter all IRC join/part/quit messages:
|
|
/filter add joinquit * irc_join,irc_part,irc_quit *
|
|
filter nicks displayed when joining channels or with /names:
|
|
/filter add nicks * irc_366 *
|
|
filter nick "toto" on IRC channel #weechat:
|
|
/filter add toto irc.freenode.#weechat nick_toto *
|
|
filter IRC join/action messages from nick "toto":
|
|
/filter add toto * nick_toto+irc_join,nick_toto+irc_action *
|
|
filter lines containing "weechat sucks" on IRC channel #weechat:
|
|
/filter add sucks irc.freenode.#weechat * weechat sucks
|
|
filter lines that are strictly equal to "WeeChat sucks" on all buffers:
|
|
/filter add sucks2 * * (?-i)^WeeChat sucks$
|
|
----
|
|
|
|
[[command_weechat_help]]
|
|
* `+help+`: display help about commands and options
|
|
|
|
----
|
|
/help -list|-listfull [<plugin> [<plugin>...]]
|
|
<command>
|
|
<option>
|
|
|
|
-list: list commands, by plugin (without argument, this list is displayed)
|
|
-listfull: list commands with description, by plugin
|
|
plugin: list commands for this plugin
|
|
command: a command name
|
|
option: an option name (use /set to see list)
|
|
----
|
|
|
|
[[command_weechat_history]]
|
|
* `+history+`: show buffer command history
|
|
|
|
----
|
|
/history clear
|
|
<value>
|
|
|
|
clear: clear history
|
|
value: number of history entries to show
|
|
----
|
|
|
|
[[command_weechat_input]]
|
|
* `+input+`: functions for command line
|
|
|
|
----
|
|
/input <action> [<arguments>]
|
|
|
|
list of actions:
|
|
return: simulate key "enter"
|
|
complete_next: complete word with next completion
|
|
complete_previous: complete word with previous completion
|
|
search_text_here: search text in buffer at current position
|
|
search_text: search text in buffer
|
|
search_switch_case: switch exact case for search
|
|
search_switch_regex: switch search type: string/regular expression
|
|
search_switch_where: switch search in messages/prefixes
|
|
search_previous: search previous line
|
|
search_next: search next line
|
|
search_stop_here: stop search at current position
|
|
search_stop: stop search
|
|
delete_previous_char: delete previous char
|
|
delete_next_char: delete next char
|
|
delete_previous_word: delete previous word
|
|
delete_next_word: delete next word
|
|
delete_beginning_of_line: delete from beginning of line until cursor
|
|
delete_end_of_line: delete from cursor until end of line
|
|
delete_line: delete entire line
|
|
clipboard_paste: paste from the internal clipboard
|
|
transpose_chars: transpose two chars
|
|
undo: undo last command line action
|
|
redo: redo last command line action
|
|
move_beginning_of_line: move cursor to beginning of line
|
|
move_end_of_line: move cursor to end of line
|
|
move_previous_char: move cursor to previous char
|
|
move_next_char: move cursor to next char
|
|
move_previous_word: move cursor to previous word
|
|
move_next_word: move cursor to next word
|
|
history_previous: recall previous command in current buffer history
|
|
history_next: recall next command in current buffer history
|
|
history_global_previous: recall previous command in global history
|
|
history_global_next: recall next command in global history
|
|
jump_smart: jump to next buffer with activity
|
|
jump_last_buffer_displayed: jump to last buffer displayed (before last jump to a buffer)
|
|
jump_previously_visited_buffer: jump to previously visited buffer
|
|
jump_next_visited_buffer: jump to next visited buffer
|
|
hotlist_clear: clear hotlist (optional argument: "lowest" to clear only lowest level in hotlist, "highest" to clear only highest level in hotlist, or level mask: integer which is a combination of 1=join/part, 2=message, 4=private, 8=highlight)
|
|
grab_key: grab a key (optional argument: delay for end of grab, default is 500 milliseconds)
|
|
grab_key_command: grab a key with its associated command (optional argument: delay for end of grab, default is 500 milliseconds)
|
|
grab_mouse: grab mouse event code
|
|
grab_mouse_area: grab mouse event code with area
|
|
set_unread: set unread marker for all buffers
|
|
set_unread_current_buffer: set unread marker for current buffer
|
|
switch_active_buffer: switch to next merged buffer
|
|
switch_active_buffer_previous: switch to previous merged buffer
|
|
zoom_merged_buffer: zoom on merged buffer
|
|
insert: insert text in command line (escaped chars are allowed, see /help print)
|
|
send: send text to the buffer
|
|
paste_start: start paste (bracketed paste mode)
|
|
paste_stop: stop paste (bracketed paste mode)
|
|
|
|
This command is used by key bindings or plugins.
|
|
----
|
|
|
|
[[command_weechat_key]]
|
|
* `+key+`: bind/unbind keys
|
|
|
|
----
|
|
/key list|listdefault|listdiff [<context>]
|
|
bind <key> [<command> [<args>]]
|
|
bindctxt <context> <key> [<command> [<args>]]
|
|
unbind <key>
|
|
unbindctxt <context> <key>
|
|
reset <key>
|
|
resetctxt <context> <key>
|
|
resetall -yes [<context>]
|
|
missing [<context>]
|
|
|
|
list: list all current keys (without argument, this list is displayed)
|
|
listdefault: list default keys
|
|
listdiff: list differences between current and default keys (keys added, redefined or deleted)
|
|
context: name of context ("default" or "search")
|
|
bind: bind a command to a key or display command bound to key (for context "default")
|
|
bindctxt: bind a command to a key or display command bound to key, for given context
|
|
command: command (many commands can be separated by semicolons)
|
|
unbind: remove a key binding (for context "default")
|
|
unbindctxt: remove a key binding for given context
|
|
reset: reset a key to default binding (for context "default")
|
|
resetctxt: reset a key to default binding, for given context
|
|
resetall: restore bindings to the default values and delete ALL personal bindings (use carefully!)
|
|
missing: add missing keys (using default bindings), useful after installing new WeeChat version
|
|
|
|
When binding a command to a key, it is recommended to use key alt+k (or Esc then k), and then press the key to bind: this will insert key code in command line.
|
|
|
|
For context "mouse" (possible in context "cursor" too), key has format: "@area:key" or "@area1>area2:key" where area can be:
|
|
*: any area on screen
|
|
chat: chat area (any buffer)
|
|
chat(xxx): chat area for buffer with name "xxx" (full name including plugin)
|
|
bar(*): any bar
|
|
bar(xxx): bar "xxx"
|
|
item(*): any bar item
|
|
item(xxx): bar item "xxx"
|
|
Wildcard "*" is allowed in key to match many mouse events.
|
|
A special value for command with format "hsignal:name" can be used for context mouse, this will send the hsignal "name" with the focus hashtable as argument.
|
|
Another special value "-" can be used to disable key (it will be ignored when looking for keys).
|
|
|
|
Examples:
|
|
key alt-t to toggle nicklist bar:
|
|
/key bind meta-t /bar toggle nicklist
|
|
key alt-r to jump to #weechat IRC channel:
|
|
/key bind meta-r /buffer #weechat
|
|
restore default binding for key alt-r:
|
|
/key reset meta-r
|
|
key "tab" to stop search in buffer:
|
|
/key bindctxt search ctrl-I /input search_stop
|
|
middle button of mouse on a nick to retrieve info on nick:
|
|
/key bindctxt mouse @item(buffer_nicklist):button3 /msg nickserv info ${nick}
|
|
----
|
|
|
|
[[command_weechat_layout]]
|
|
* `+layout+`: manage buffers/windows layouts
|
|
|
|
----
|
|
/layout store [<name>] [buffers|windows]
|
|
apply [<name>] [buffers|windows]
|
|
leave
|
|
del [<name>] [buffers|windows]
|
|
rename <name> <new_name>
|
|
|
|
store: store current buffers/windows in a layout
|
|
apply: apply stored layout
|
|
leave: leave current layout (does not update any layout)
|
|
del: delete buffers and/or windows in a stored layout
|
|
(if neither "buffers" nor "windows" is given after the name, the layout is deleted)
|
|
rename: rename a layout
|
|
name: name for stored layout (default is "default")
|
|
buffers: store/apply only buffers (order of buffers)
|
|
windows: store/apply only windows (buffer displayed by each window)
|
|
|
|
Without argument, this command displays stored layouts.
|
|
|
|
The current layout can be saved on /quit command with the option "weechat.look.save_layout_on_exit".
|
|
----
|
|
|
|
[[command_weechat_mouse]]
|
|
* `+mouse+`: mouse control
|
|
|
|
----
|
|
/mouse enable|disable|toggle [<delay>]
|
|
|
|
enable: enable mouse
|
|
disable: disable mouse
|
|
toggle: toggle mouse
|
|
delay: delay (in seconds) after which initial mouse state is restored (useful to temporarily disable mouse)
|
|
|
|
The mouse state is saved in option "weechat.look.mouse".
|
|
|
|
Examples:
|
|
enable mouse:
|
|
/mouse enable
|
|
toggle mouse for 5 seconds:
|
|
/mouse toggle 5
|
|
----
|
|
|
|
[[command_weechat_mute]]
|
|
* `+mute+`: execute a command silently
|
|
|
|
----
|
|
/mute [-core | -current | -buffer <name>] <command>
|
|
|
|
-core: no output on WeeChat core buffer
|
|
-current: no output on current buffer
|
|
-buffer: no output on specified buffer
|
|
name: full buffer name (examples: "irc.server.freenode", "irc.freenode.#weechat")
|
|
command: command to execute silently (a '/' is automatically added if not found at beginning of command)
|
|
|
|
If no target is specified (-core, -current or -buffer), then default is to mute all buffers.
|
|
|
|
Examples:
|
|
config save:
|
|
/mute save
|
|
message to current IRC channel:
|
|
/mute -current msg * hi!
|
|
message to #weechat channel:
|
|
/mute -buffer irc.freenode.#weechat msg #weechat hi!
|
|
----
|
|
|
|
[[command_weechat_plugin]]
|
|
* `+plugin+`: list/load/unload plugins
|
|
|
|
----
|
|
/plugin list|listfull [<name>]
|
|
load <filename> [<arguments>]
|
|
autoload [<arguments>]
|
|
reload [<name>|* [<arguments>]]
|
|
unload [<name>]
|
|
|
|
list: list loaded plugins
|
|
listfull: list loaded plugins (verbose)
|
|
load: load a plugin
|
|
autoload: autoload plugins in system or user directory
|
|
reload: reload a plugin (if no name given, unload all plugins, then autoload plugins)
|
|
unload: unload a plugin (if no name given, unload all plugins)
|
|
filename: plugin (file) to load
|
|
name: a plugin name
|
|
arguments: arguments given to plugin on load
|
|
|
|
Without argument, this command lists loaded plugins.
|
|
----
|
|
|
|
[[command_weechat_print]]
|
|
* `+print+`: display text on a buffer
|
|
|
|
----
|
|
/print [-buffer <number>|<name>] [-newbuffer <name>] [-free] [-switch] [-core|-current] [-y <line>] [-escape] [-date <date>] [-tags <tags>] [-action|-error|-join|-network|-quit] [<text>]
|
|
-stdout|-stderr [<text>]
|
|
-beep
|
|
|
|
-buffer: display text in this buffer (default: buffer where command is executed)
|
|
-newbuffer: create a new buffer and display text in this buffer
|
|
-free: create a buffer with free content (with -newbuffer only)
|
|
-switch: switch to the buffer
|
|
-core: alias of "-buffer core.weechat"
|
|
-current: display text on current buffer
|
|
-y: display on a custom line (for buffer with free content only)
|
|
line: line number for buffer with free content (first line is 0, a negative number displays after last line: -1 = after last line, -2 = two lines after last line, etc.)
|
|
-escape: interpret escaped chars (for example \a, \07, \x07)
|
|
-date: message date, format can be:
|
|
-n: 'n' seconds before now
|
|
+n: 'n' seconds in the future
|
|
n: 'n' seconds since the Epoch (see man time)
|
|
date/time (ISO 8601): yyyy-mm-ddThh:mm:ss, example: 2014-01-19T04:32:55
|
|
time: hh:mm:ss (example: 04:32:55)
|
|
-tags: comma-separated list of tags (see /help filter for a list of tags most commonly used)
|
|
text: text to display (prefix and message must be separated by "\t", if text starts with "-", then add a "\" before)
|
|
-stdout: display text on stdout (escaped chars are interpreted)
|
|
-stderr: display text on stderr (escaped chars are interpreted)
|
|
-beep: alias of "-stderr \a"
|
|
|
|
The options -action ... -quit use the prefix defined in options "weechat.look.prefix_*".
|
|
|
|
Following escaped chars are supported:
|
|
\" \\ \a \b \e \f \n \r \t \v \0ooo \xhh \uhhhh \Uhhhhhhhh
|
|
|
|
Examples:
|
|
display a reminder on core buffer with a highlight:
|
|
/print -core -tags notify_highlight Reminder: buy milk
|
|
display an error on core buffer:
|
|
/print -core -error Some error here
|
|
display message on core buffer with prefix "abc":
|
|
/print -core abc\tThe message
|
|
display a message on channel #weechat:
|
|
/print -buffer irc.freenode.#weechat Message on #weechat
|
|
display a snowman (U+2603):
|
|
/print -escape \u2603
|
|
send alert (BEL):
|
|
/print -beep
|
|
----
|
|
|
|
[[command_weechat_proxy]]
|
|
* `+proxy+`: manage proxies
|
|
|
|
----
|
|
/proxy list
|
|
add <name> <type> <address> <port> [<username> [<password>]]
|
|
del <name>|-all
|
|
set <name> <option> <value>
|
|
|
|
list: list all proxies
|
|
add: add a new proxy
|
|
name: name of proxy (must be unique)
|
|
type: http, socks4 or socks5
|
|
address: IP or hostname
|
|
port: port
|
|
username: username (optional)
|
|
password: password (optional)
|
|
del: delete a proxy (or all proxies with -all)
|
|
set: set a value for a proxy property
|
|
option: option to change (for options list, look at /set weechat.proxy.<proxyname>.*)
|
|
value: new value for option
|
|
|
|
Examples:
|
|
add a http proxy, running on local host, port 8888:
|
|
/proxy add local http 127.0.0.1 8888
|
|
add a http proxy using IPv6 protocol:
|
|
/proxy add local http ::1 8888
|
|
/proxy set local ipv6 on
|
|
add a socks5 proxy with username/password:
|
|
/proxy add myproxy socks5 sample.host.org 3128 myuser mypass
|
|
delete a proxy:
|
|
/proxy del myproxy
|
|
----
|
|
|
|
[[command_weechat_quit]]
|
|
* `+quit+`: quit WeeChat
|
|
|
|
----
|
|
/quit [-yes] [<arguments>]
|
|
|
|
-yes: required if option "weechat.look.confirm_quit" is enabled
|
|
arguments: text sent with signal "quit"
|
|
(for example irc plugin uses this text to send quit message to server)
|
|
|
|
By default when quitting the configuration files are saved (see option "weechat.look.save_config_on_exit") and the current layout can be saved (see option "weechat.look.save_layout_on_exit").
|
|
----
|
|
|
|
[[command_weechat_reload]]
|
|
* `+reload+`: reload configuration files from disk
|
|
|
|
----
|
|
/reload [<file> [<file>...]]
|
|
|
|
file: configuration file to reload (without extension ".conf")
|
|
|
|
Without argument, all files (WeeChat and plugins) are reloaded.
|
|
----
|
|
|
|
[[command_weechat_repeat]]
|
|
* `+repeat+`: execute a command several times
|
|
|
|
----
|
|
/repeat [-interval <delay>[<unit>]] <count> <command>
|
|
|
|
delay: delay between execution of commands
|
|
unit: optional, values are:
|
|
ms: milliseconds
|
|
s: seconds (default)
|
|
m: minutes
|
|
h: hours
|
|
count: number of times to execute command
|
|
command: command to execute (or text to send to buffer if command does not start with '/')
|
|
|
|
Note: the command is executed on buffer where /repeat was executed (if the buffer does not exist any more, the command is not executed).
|
|
|
|
Example:
|
|
scroll 2 pages up:
|
|
/repeat 2 /window page_up
|
|
----
|
|
|
|
[[command_weechat_save]]
|
|
* `+save+`: save configuration files to disk
|
|
|
|
----
|
|
/save [<file> [<file>...]]
|
|
|
|
file: configuration file to save (without extension ".conf")
|
|
|
|
Without argument, all files (WeeChat and plugins) are saved.
|
|
|
|
By default all configuration files are saved to disk on /quit command (see option "weechat.look.save_config_on_exit").
|
|
----
|
|
|
|
[[command_weechat_secure]]
|
|
* `+secure+`: manage secured data (passwords or private data encrypted in file sec.conf)
|
|
|
|
----
|
|
/secure passphrase <passphrase>|-delete
|
|
decrypt <passphrase>|-discard
|
|
set <name> <value>
|
|
del <name>
|
|
|
|
passphrase: change the passphrase (without passphrase, data is stored as plain text in file sec.conf)
|
|
-delete: delete passphrase
|
|
decrypt: decrypt data still encrypted (it happens only if passphrase was not given on startup)
|
|
-discard: discard all data still encrypted
|
|
set: add or change secured data
|
|
del: delete secured data
|
|
|
|
Without argument, this command displays secured data in a new buffer.
|
|
|
|
Keys on secure buffer:
|
|
alt+v toggle values
|
|
|
|
When a passphrase is used (data encrypted), it is asked by WeeChat on startup.
|
|
It is possible to set environment variable "WEECHAT_PASSPHRASE" to prevent the prompt (this same variable is used by WeeChat on /upgrade), or to set option sec.crypt.passphrase_file to read the passphrase from a file (see /help sec.crypt.passphrase_file).
|
|
|
|
Secured data with format ${sec.data.xxx} can be used in:
|
|
- command /eval
|
|
- command line argument "--run-command"
|
|
- options weechat.startup.command_{before|after}_plugins
|
|
- other options that may contain a password or sensitive data (for example proxy, irc server and relay); see /help on the options to check if they are evaluated.
|
|
|
|
Examples:
|
|
set a passphrase:
|
|
/secure passphrase this is my passphrase
|
|
encrypt freenode SASL password:
|
|
/secure set freenode mypassword
|
|
/set irc.server.freenode.sasl_password "${sec.data.freenode}"
|
|
encrypt oftc password for nickserv:
|
|
/secure set oftc mypassword
|
|
/set irc.server.oftc.command "/msg nickserv identify ${sec.data.oftc}"
|
|
alias to ghost the nick "mynick":
|
|
/alias add ghost /eval /msg -server freenode nickserv ghost mynick ${sec.data.freenode}
|
|
----
|
|
|
|
[[command_weechat_set]]
|
|
* `+set+`: set config options and environment variables
|
|
|
|
----
|
|
/set [<option> [<value>]]
|
|
diff [<option> [<option>...]]
|
|
env [<variable> [<value>]]
|
|
|
|
option: name of an option (wildcard "*" is allowed to list options, if no value is specified)
|
|
value: new value for option, according to type:
|
|
boolean: on, off or toggle
|
|
integer: number, ++number or --number
|
|
string: any string ("" for empty string)
|
|
color: color name, ++number or --number
|
|
Note: for all types, you can use null to remove option value (undefined value). This works only for some special plugin variables.
|
|
diff: display only changed options
|
|
env: display or set an environment variable (use value "" to unset a variable)
|
|
|
|
Examples:
|
|
display options about highlight:
|
|
/set *highlight*
|
|
add a word to highlight:
|
|
/set weechat.look.highlight "word"
|
|
display changed options:
|
|
/set diff
|
|
display changed options in irc plugin:
|
|
/set diff irc.*
|
|
display value of environment variable LANG:
|
|
/set env LANG
|
|
set environment variable LANG and use it:
|
|
/set env LANG fr_FR.UTF-8
|
|
/upgrade
|
|
unset environment variable ABC:
|
|
/set env ABC ""
|
|
----
|
|
|
|
[[command_weechat_unset]]
|
|
* `+unset+`: unset/reset config options
|
|
|
|
----
|
|
/unset <option>
|
|
-mask <option>
|
|
|
|
option: name of an option
|
|
-mask: use a mask in option (wildcard "*" is allowed to mass-reset options, use carefully!)
|
|
|
|
According to option, it's reset (for standard options) or removed (for optional settings, like server values).
|
|
|
|
Examples:
|
|
reset one option:
|
|
/unset weechat.look.item_time_format
|
|
reset all color options:
|
|
/unset -mask weechat.color.*
|
|
----
|
|
|
|
[[command_weechat_upgrade]]
|
|
* `+upgrade+`: reload the WeeChat binary without disconnecting from servers
|
|
|
|
----
|
|
/upgrade [-yes] [<path_to_binary>|-quit]
|
|
|
|
-yes: required if option "weechat.look.confirm_upgrade" is enabled
|
|
path_to_binary: path to WeeChat binary (default is current binary)
|
|
-dummy: do nothing (option used to prevent accidental completion with "-quit")
|
|
-quit: close *ALL* connections, save session and quit WeeChat, which makes possible a delayed restoration (see below)
|
|
|
|
This command upgrades and reloads a running WeeChat session. The new WeeChat binary must have been compiled or installed with a package manager before running this command.
|
|
|
|
Note: SSL connections are lost during upgrade, because reload of SSL sessions is currently not possible with GnuTLS. There is automatic reconnection after upgrade.
|
|
|
|
Upgrade process has 4 steps:
|
|
1. save session into files for core and plugins (buffers, history, ..)
|
|
2. unload all plugins (configuration files (*.conf) are written on disk)
|
|
3. save WeeChat configuration (weechat.conf)
|
|
4. execute new WeeChat binary and reload session.
|
|
|
|
With option "-quit", the process is slightly different:
|
|
1. close *ALL* connections (irc, xfer, relay, ...)
|
|
2. save session into files (*.upgrade)
|
|
3. unload all plugins
|
|
4. save WeeChat configuration
|
|
5. quit WeeChat
|
|
Then later you can restore session with command: weechat --upgrade
|
|
IMPORTANT: you must restore the session with exactly same configuration (files *.conf).
|
|
It is possible to restore WeeChat session on another machine if you copy the content of directory "~/.weechat".
|
|
----
|
|
|
|
[[command_weechat_uptime]]
|
|
* `+uptime+`: show WeeChat uptime
|
|
|
|
----
|
|
/uptime [-o|-ol]
|
|
|
|
-o: send uptime to current buffer as input (English string)
|
|
-ol: send uptime to current buffer as input (translated string)
|
|
----
|
|
|
|
[[command_weechat_version]]
|
|
* `+version+`: show WeeChat version and compilation date
|
|
|
|
----
|
|
/version [-o|-ol]
|
|
|
|
-o: send version to current buffer as input (English string)
|
|
-ol: send version to current buffer as input (translated string)
|
|
|
|
The default alias /v can be used to execute this command on all buffers (otherwise the irc command /version is used on irc buffers).
|
|
----
|
|
|
|
[[command_weechat_wait]]
|
|
* `+wait+`: schedule a command execution in future
|
|
|
|
----
|
|
/wait <number>[<unit>] <command>
|
|
|
|
number: amount of time to wait (integer number)
|
|
unit: optional, values are:
|
|
ms: milliseconds
|
|
s: seconds (default)
|
|
m: minutes
|
|
h: hours
|
|
command: command to execute (or text to send to buffer if command does not start with '/')
|
|
|
|
Note: the command is executed on buffer where /wait was executed (if the buffer does not exist any more, the command is not executed).
|
|
|
|
Examples:
|
|
join channel in 10 seconds:
|
|
/wait 10 /join #test
|
|
set away in 15 minutes:
|
|
/wait 15m /away -all I'm away
|
|
say 'hello' in 2 minutes:
|
|
/wait 2m hello
|
|
----
|
|
|
|
[[command_weechat_window]]
|
|
* `+window+`: manage windows
|
|
|
|
----
|
|
/window list
|
|
-1|+1|b#|up|down|left|right [-window <number>]
|
|
<number>
|
|
splith|splitv [-window <number>] [<pct>]
|
|
resize [-window <number>] [h|v][+|-]<pct>
|
|
balance
|
|
merge [-window <number>] [all]
|
|
close [-window <number>]
|
|
page_up|page_down [-window <number>]
|
|
refresh
|
|
scroll [-window <number>] [+|-]<value>[s|m|h|d|M|y]
|
|
scroll_horiz [-window <number>] [+|-]<value>[%]
|
|
scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_beyond_end|scroll_previous_highlight|scroll_next_highlight|scroll_unread [-window <number>]
|
|
swap [-window <number>] [up|down|left|right]
|
|
zoom [-window <number>]
|
|
bare [<delay>]
|
|
|
|
list: list opened windows (without argument, this list is displayed)
|
|
-1: jump to previous window
|
|
+1: jump to next window
|
|
b#: jump to next window displaying buffer number #
|
|
up: switch to window above current one
|
|
down: switch to window below current one
|
|
left: switch to window on the left
|
|
right: switch to window on the right
|
|
number: window number (see /window list)
|
|
splith: split current window horizontally (to undo: /window merge)
|
|
splitv: split current window vertically (to undo: /window merge)
|
|
resize: resize window size, new size is <pct> percentage of parent window
|
|
if "h" or "v" is specified, the resize affects the nearest parent window with a split of this type (horizontal/vertical)
|
|
balance: balance the sizes of all windows
|
|
merge: merge window with another (all = keep only one window)
|
|
close: close window
|
|
page_up: scroll one page up
|
|
page_down: scroll one page down
|
|
refresh: refresh screen
|
|
scroll: scroll a number of lines (+/-N) or with time: s=seconds, m=minutes, h=hours, d=days, M=months, y=years
|
|
scroll_horiz: scroll horizontally a number of columns (+/-N) or percentage of window size (this scrolling is possible only on buffers with free content)
|
|
scroll_up: scroll a few lines up
|
|
scroll_down: scroll a few lines down
|
|
scroll_top: scroll to top of buffer
|
|
scroll_bottom: scroll to bottom of buffer
|
|
scroll_beyond_end: scroll beyond the end of buffer
|
|
scroll_previous_highlight: scroll to previous highlight
|
|
scroll_next_highlight: scroll to next highlight
|
|
scroll_unread: scroll to unread marker
|
|
swap: swap buffers of two windows (with optional direction for target window)
|
|
zoom: zoom on window
|
|
bare: toggle bare display (with optional delay in seconds for automatic return to standard display mode)
|
|
|
|
For splith and splitv, pct is a percentage which represents size of new window, computed with current window as size reference. For example 25 means create a new window with size = current_size / 4
|
|
|
|
Examples:
|
|
jump to window displaying buffer #1:
|
|
/window b1
|
|
scroll 2 lines up:
|
|
/window scroll -2
|
|
scroll 2 days up:
|
|
/window scroll -2d
|
|
scroll to beginning of current day:
|
|
/window scroll -d
|
|
zoom on window #2:
|
|
/window zoom -window 2
|
|
split window horizontally using 30% of space for the window on top:
|
|
/window splith 30
|
|
resize window to 75% of the parent window size:
|
|
/window resize 75
|
|
resize vertical split, add 10% in size:
|
|
/window resize v+10
|
|
remove the split, keep the current window:
|
|
/window merge
|
|
close the current window:
|
|
/window close
|
|
enable bare display for 2 seconds:
|
|
/window bare 2
|
|
----
|
|
// end::weechat_commands[]
|
|
|
|
// tag::buflist_commands[]
|
|
[[command_buflist_buflist]]
|
|
* `+buflist+`: bar item with list of buffers
|
|
|
|
----
|
|
/buflist enable|disable|toggle
|
|
bar
|
|
refresh
|
|
|
|
enable: enable buflist
|
|
disable: disable buflist
|
|
toggle: toggle buflist
|
|
bar: add the "buflist" bar
|
|
refresh: force the refresh of the bar items (buflist, buflist2 and buflist3)
|
|
|
|
The lines with buffers are displayed using string evaluation (see /help eval for the format), with these options:
|
|
- buflist.look.display_conditions: conditions to display a buffer in the list
|
|
- buflist.format.buffer: format for a buffer which is not current buffer
|
|
- buflist.format.buffer_current: format for the current buffer
|
|
|
|
The following variables can be used in these options:
|
|
- bar item data (see hdata "bar_item" in API doc for a complete list), for example:
|
|
- ${bar_item.name}
|
|
- window data, where the bar item is displayed (there's no window in root bars, see hdata "window" in API doc for a complete list), for example:
|
|
- ${window.number}
|
|
- ${window.buffer.full_name}
|
|
- buffer data (see hdata "buffer" in API doc for a complete list), for example:
|
|
- ${buffer.number}
|
|
- ${buffer.name}
|
|
- ${buffer.full_name}
|
|
- ${buffer.short_name}
|
|
- ${buffer.nicklist_nicks_count}
|
|
- irc_server: IRC server data, defined only on an IRC buffer (see hdata "irc_server" in API doc)
|
|
- irc_channel: IRC channel data, defined only on an IRC channel buffer (see hdata "irc_channel" in API doc)
|
|
- extra variables added by buflist for convenience:
|
|
- ${format_buffer}: the evaluated value of option buflist.format.buffer; this can be used in option buflist.format.buffer_current to just change the background color for example
|
|
- ${current_buffer}: a boolean ("0" or "1"), "1" if this is the current buffer; it can be used in a condition: ${if:${current_buffer}?...:...}
|
|
- ${merged}: a boolean ("0" or "1"), "1" if the buffer is merged with at least another buffer; it can be used in a condition: ${if:${merged}?...:...}
|
|
- ${format_number}: indented number with separator (evaluation of option buflist.format.number)
|
|
- ${number}: indented number, for example " 1" if there are between 10 and 99 buffers; for merged buffers, this variable is set with number for the first buffer and spaces for the next buffers with same number
|
|
- ${number2}: indented number, for example " 1" if there are between 10 and 99 buffers
|
|
- ${number_displayed}: "1" if the number is displayed, otherwise "0"
|
|
- ${indent}: indentation for name (channel and private buffers are indented) (evaluation of option buflist.format.indent)
|
|
- ${format_nick_prefix}: colored nick prefix for a channel (evaluation of option buflist.format.nick_prefix)
|
|
- ${color_nick_prefix}: color of nick prefix for a channel (set only if the option buflist.look.nick_prefix is enabled)
|
|
- ${nick_prefix}: nick prefix for a channel (set only if the option buflist.look.nick_prefix is enabled)
|
|
- ${format_name}: formatted name (evaluation of option buflist.format.name)
|
|
- ${name}: the short name (if set), with a fallback on the name
|
|
- ${color_hotlist}: the color depending on the highest hotlist level for the buffer (evaluation of option buflist.format.hotlist_xxx where xxx is the level)
|
|
- ${format_hotlist}: the formatted hotlist (evaluation of option buflist.format.hotlist)
|
|
- ${hotlist}: the raw hotlist
|
|
- ${hotlist_priority}: "none", "low", "message", "private" or "highlight"
|
|
- ${format_lag}: the lag for an IRC server buffer, empty if there's no lag (evaluation of option buflist.format.lag)
|
|
----
|
|
// end::buflist_commands[]
|
|
|
|
// tag::charset_commands[]
|
|
[[command_charset_charset]]
|
|
* `+charset+`: change charset for current buffer
|
|
|
|
----
|
|
/charset decode|encode <charset>
|
|
reset
|
|
|
|
decode: change decoding charset
|
|
encode: change encoding charset
|
|
charset: new charset for current buffer
|
|
reset: reset charsets for current buffer
|
|
----
|
|
// end::charset_commands[]
|
|
|
|
// tag::exec_commands[]
|
|
[[command_exec_exec]]
|
|
* `+exec+`: execute external commands
|
|
|
|
----
|
|
/exec -list
|
|
[-sh|-nosh] [-bg|-nobg] [-stdin|-nostdin] [-buffer <name>] [-l|-o|-n|-nf] [-cl|-nocl] [-sw|-nosw] [-ln|-noln] [-flush|-noflush] [-color ansi|auto|irc|weechat|strip] [-rc|-norc] [-timeout <timeout>] [-name <name>] [-pipe <command>] [-hsignal <name>] <command>
|
|
-in <id> <text>
|
|
-inclose <id> [<text>]
|
|
-signal <id> <signal>
|
|
-kill <id>
|
|
-killall
|
|
-set <id> <property> <value>
|
|
-del <id>|-all [<id>...]
|
|
|
|
-list: list commands
|
|
-sh: use the shell to execute the command, many commands can be piped (WARNING: use this option ONLY if all arguments are safe, see option -nosh)
|
|
-nosh: do not use the shell to execute the command (required if the command has some unsafe data, for example the content of a message from another user) (default)
|
|
-bg: run process in background: do not display process output neither return code (not compatible with options -o/-oc/-n/-nf/-pipe/-hsignal)
|
|
-nobg: catch process output and display return code (default)
|
|
-stdin: create a pipe for sending data to the process (with /exec -in/-inclose)
|
|
-nostdin: do not create a pipe for stdin (default)
|
|
-buffer: display/send output of command on this buffer (if the buffer is not found, a new buffer with name "exec.exec.xxx" is created)
|
|
-l: display locally output of command on buffer (default)
|
|
-o: send output of command to the buffer without executing commands (not compatible with options -bg/-pipe/-hsignal)
|
|
-oc: send output of command to the buffer and execute commands (lines starting with "/" or another custom command char) (not compatible with options -bg/-pipe/-hsignal)
|
|
-n: display output of command in a new buffer (not compatible with options -bg/-pipe/-hsignal)
|
|
-nf: display output of command in a new buffer with free content (no word-wrap, no limit on number of lines) (not compatible with options -bg/-pipe/-hsignal)
|
|
-cl: clear the new buffer before displaying output
|
|
-nocl: append to the new buffer without clear (default)
|
|
-sw: switch to the output buffer (default)
|
|
-nosw: don't switch to the output buffer
|
|
-ln: display line numbers (default in new buffer only)
|
|
-noln: don't display line numbers
|
|
-flush: display output of command in real time (default)
|
|
-noflush: display output of command after its end
|
|
-color: action on ANSI colors in output:
|
|
ansi: keep ANSI codes as-is
|
|
auto: convert ANSI colors to WeeChat/IRC (default)
|
|
irc: convert ANSI colors to IRC colors
|
|
weechat: convert ANSI colors to WeeChat colors
|
|
strip: remove ANSI colors
|
|
-rc: display return code (default)
|
|
-norc: don't display return code
|
|
-timeout: set a timeout for the command (in seconds)
|
|
-name: set a name for the command (to name it later with /exec)
|
|
-pipe: send the output to a WeeChat/plugin command (line by line); if there are spaces in command/arguments, enclose them with double quotes; variable $line is replaced by the line (by default the line is added after the command, separated by a space) (not compatible with options -bg/-o/-oc/-n/-nf)
|
|
-hsignal: send the output as a hsignal (to be used for example in a trigger) (not compatible with options -bg/-o/-oc/-n/-nf)
|
|
command: the command to execute; if beginning with "url:", the shell is disabled and the content of URL is downloaded and sent as output
|
|
id: command identifier: either its number or name (if set with "-name xxx")
|
|
-in: send text on standard input of process
|
|
-inclose: same as -in, but stdin is closed after (and text is optional: without text, the stdin is just closed)
|
|
-signal: send a signal to the process; the signal can be an integer or one of these names: hup, int, quit, kill, term, usr1, usr2
|
|
-kill: alias of "-signal <id> kill"
|
|
-killall: kill all running processes
|
|
-set: set a hook property (see function hook_set in plugin API reference)
|
|
property: hook property
|
|
value: new value for hook property
|
|
-del: delete a terminated command
|
|
-all: delete all terminated commands
|
|
|
|
Default options can be set in the option exec.command.default_options.
|
|
|
|
Examples:
|
|
/exec -n ls -l /tmp
|
|
/exec -sh -n ps xu | grep weechat
|
|
/exec -n -norc url:https://pastebin.com/raw.php?i=xxxxxxxx
|
|
/exec -nf -noln links -dump https://weechat.org/files/doc/devel/weechat_user.en.html
|
|
/exec -o uptime
|
|
/exec -pipe "/print Machine uptime:" uptime
|
|
/exec -n tail -f /var/log/messages
|
|
/exec -kill 0
|
|
----
|
|
// end::exec_commands[]
|
|
|
|
// tag::fifo_commands[]
|
|
[[command_fifo_fifo]]
|
|
* `+fifo+`: fifo plugin configuration
|
|
|
|
----
|
|
/fifo enable|disable|toggle
|
|
|
|
enable: enable FIFO pipe
|
|
disable: disable FIFO pipe
|
|
toggle: toggle FIFO pipe
|
|
|
|
FIFO pipe is used as remote control of WeeChat: you can send commands or text to the FIFO pipe from your shell.
|
|
By default the FIFO pipe is in ~/.weechat/weechat_fifo
|
|
|
|
The expected format is one of:
|
|
plugin.buffer *text or command here
|
|
*text or command here
|
|
|
|
For example to change your freenode nick:
|
|
echo 'irc.server.freenode */nick newnick' >~/.weechat/weechat_fifo
|
|
|
|
Please read the user's guide for more info and examples.
|
|
|
|
Examples:
|
|
/fifo toggle
|
|
----
|
|
// end::fifo_commands[]
|
|
|
|
// tag::fset_commands[]
|
|
[[command_fset_fset]]
|
|
* `+fset+`: fast set WeeChat and plugins options
|
|
|
|
----
|
|
/fset -bar
|
|
-refresh
|
|
-up|-down [<number>]
|
|
-left|-right [<percent>]
|
|
-go <line>|end
|
|
-toggle
|
|
-add [<value>]
|
|
-reset
|
|
-unset
|
|
-set
|
|
-setnew
|
|
-append
|
|
-mark
|
|
-format
|
|
-export [-help|-nohelp] <filename>
|
|
<filter>
|
|
|
|
-bar: add the help bar
|
|
-refresh: refresh list of options, then whole screen (command: /window refresh)
|
|
-up: move the selected line up by "number" lines
|
|
-down: move the selected line down by "number" lines
|
|
-left: scroll the fset buffer by "percent" of width on the left
|
|
-right: scroll the fset buffer by "percent" of width on the right
|
|
-go: select a line by number, first line number is 0 ("end" to select the last line)
|
|
-toggle: toggle the boolean value
|
|
-add: add "value" (which can be a negative number) for integers and colors, set/append to value for other types (set for a negative value, append for a positive value)
|
|
-reset: reset the value of option
|
|
-unset: unset the option
|
|
-set: add the /set command in input to edit the value of option (move the cursor at the beginning of value)
|
|
-setnew: add the /set command in input to edit a new value for the option
|
|
-append: add the /set command to append something in the value of option (move the cursor at the end of value)
|
|
-mark: toggle mark
|
|
-format: switch to the next available format
|
|
-export: export the options and values displayed in a file (each line has format: "/set name value" or "/unset name")
|
|
-help: force writing of help on options in exported file (see /help fset.look.export_help_default)
|
|
-nohelp: do not write help on options in exported file (see /help fset.look.export_help_default)
|
|
filter: set a new filter to see only matching options (this filter can be used as input in fset buffer as well); allowed formats are:
|
|
* show all options (no filter)
|
|
xxx show only options with "xxx" in name
|
|
f:xxx show only configuration file "xxx"
|
|
t:xxx show only type "xxx" (bool/int/str/col)
|
|
d show only changed options
|
|
d:xxx show only changed options with "xxx" in name
|
|
d=xxx show only changed options with "xxx" in value
|
|
d==xxx show only changed options with exact value "xxx"
|
|
h=xxx show only options with "xxx" in description (translated)
|
|
he=xxx show only options with "xxx" in description (in English)
|
|
=xxx show only options with "xxx" in value
|
|
==xxx show only options with exact value "xxx"
|
|
c:xxx show only options matching the evaluated condition "xxx", using following variables: file, section, option, name, parent_name, type, type_en, type_short (bool/int/str/col), type_tiny (b/i/s/c), default_value, default_value_undef, value, quoted_value, value_undef, value_changed, parent_value, min, max, description, description2, description_en, description_en2, string_values
|
|
|
|
The lines with options are displayed using string evaluation (see /help eval for the format), with these options:
|
|
- fset.format.option1: first format for an option
|
|
- fset.format.option2: second format for an option
|
|
|
|
The following variables can be used in these options:
|
|
- option data, with color and padded by spaces on the right:
|
|
- ${file}: configuration file (for example "weechat" or "irc")
|
|
- ${section}: section
|
|
- ${option}: option name
|
|
- ${name}: full option name (file.section.option)
|
|
- ${parent_name}: parent option name
|
|
- ${type}: option type (translated)
|
|
- ${type_en}: option type (in English)
|
|
- ${type_short}: short option type (bool/int/str/col)
|
|
- ${type_tiny}: tiny option type (b/i/s/c)
|
|
- ${default_value}: option default value
|
|
- ${default_value_undef}: "1" if default value is null, otherwise "0"
|
|
- ${value}: option value
|
|
- ${value_undef}: "1" if value is null, otherwise "0"
|
|
- ${value_changed}: "1" if value is different from default value, otherwise "0"
|
|
- ${value2}: option value, with inherited value if null
|
|
- ${parent_value}: parent option value
|
|
- ${min}: min value
|
|
- ${max}: max value
|
|
- ${description}: option description (translated)
|
|
- ${description2}: option description (translated), "(no description)" (translated) if there's no description
|
|
- ${description_en}: option description (in English)
|
|
- ${description_en2}: option description (in English), "(no description)" if there's no description
|
|
- ${string_values}: string values allowed for set of an integer option using strings
|
|
- ${marked}: "1" if option is marked, otherwise "0"
|
|
- ${index}: index of option in list
|
|
- option data, with color but no spaces:
|
|
- same names prefixed by underscore, for example: ${_name}, ${_type}, ...
|
|
- option data, raw format (no colors/spaces):
|
|
- same names prefixed by two underscores, for example: ${__name}, ${__type}, ...
|
|
- option data, only spaces:
|
|
- same names prefixed with "empty_", for example: ${empty_name}, ${empty_type}
|
|
- other data:
|
|
- ${selected_line}: "1" if the line is selected, otherwise "0"
|
|
- ${newline}: insert a new line at point, so the option is displayed on multiple lines
|
|
|
|
Keys and input to move in on fset buffer:
|
|
up move one line up
|
|
down move one line down
|
|
pgup move one page up
|
|
pgdn move one page down
|
|
alt-home << move to first line
|
|
alt-end >> move to last line
|
|
F11 < scroll horizontally on the left
|
|
F12 > scroll horizontally on the right
|
|
|
|
Keys and input to set options on fset buffer:
|
|
alt+space t toggle boolean value
|
|
alt+'-' - subtract 1 from value for integer/color, set value for other types
|
|
alt+'+' + add 1 to value for integer/color, append to value for other types
|
|
alt+f, alt+r r reset value
|
|
alt+f, alt+u u unset value
|
|
alt+enter s set value
|
|
alt+f, alt+n n set new value
|
|
alt+f, alt+a a append to value
|
|
alt+',' , mark/unmark option
|
|
shift+up move one line up and mark/unmark option
|
|
shift+down mark/unmark option and move one line down
|
|
m:xxx mark options displayed that are matching filter "xxx" (any filter on option or value is allowed, see filters above)
|
|
u:xxx unmark options displayed that are matching filter "xxx" (any filter on option or value is allowed, see filters above)
|
|
|
|
Other keys and input on fset buffer:
|
|
ctrl+L refresh options and whole screen (command: /fset -refresh)
|
|
$ refresh options (keep marked options)
|
|
$$ refresh options (unmark all options)
|
|
alt+p p toggle plugin description options (plugins.desc.*)
|
|
alt+v v toggle help bar
|
|
s:x,y sort options by fields x,y (see /help fset.look.sort)
|
|
s: reset sort to its default value (see /help fset.look.sort)
|
|
w:xxx export options in file "xxx"
|
|
w-:xxx export options in file "xxx" without help
|
|
w+:xxx export options in file "xxx" with help
|
|
ctrl+X x switch the format used to display options
|
|
q close fset buffer
|
|
|
|
Mouse actions on fset buffer:
|
|
wheel up/down move line up/down
|
|
left button move line here
|
|
right button toggle boolean (on/off) or edit the option value
|
|
right button + drag left/right increase/decrease value for integer/color, set/append to value for other types
|
|
right button + drag up/down mark/unmark multiple options
|
|
|
|
Note: if input has one or more leading spaces, the following text is interpreted as a filter, without the spaces. For example " q" searches all options with "q" inside name while "q" closes the fset buffer.
|
|
|
|
Examples:
|
|
show IRC options changed:
|
|
/fset d:irc.*
|
|
show all options with "nicklist" in name:
|
|
/fset nicklist
|
|
show all values which contain "red":
|
|
/fset =red
|
|
show all values which are exactly "red":
|
|
/fset ==red
|
|
show all integer options in irc plugin:
|
|
/fset c:${file} == irc && ${type_en} == integer
|
|
----
|
|
// end::fset_commands[]
|
|
|
|
// tag::guile_commands[]
|
|
[[command_guile_guile]]
|
|
* `+guile+`: list/load/unload scripts
|
|
|
|
----
|
|
/guile list|listfull [<name>]
|
|
load [-q] <filename>
|
|
autoload
|
|
reload|unload [-q] [<name>]
|
|
eval [-o|-oc] <code>
|
|
version
|
|
|
|
list: list loaded scripts
|
|
listfull: list loaded scripts (verbose)
|
|
load: load a script
|
|
autoload: load all scripts in "autoload" directory
|
|
reload: reload a script (if no name given, unload all scripts, then load all scripts in "autoload" directory)
|
|
unload: unload a script (if no name given, unload all scripts)
|
|
filename: script (file) to load
|
|
-q: quiet mode: do not display messages
|
|
name: a script name (name used in call to "register" function)
|
|
eval: evaluate source code and display result on current buffer
|
|
-o: send evaluation result to the buffer without executing commands
|
|
-oc: send evaluation result to the buffer and execute commands
|
|
code: source code to evaluate
|
|
version: display the version of interpreter used
|
|
|
|
Without argument, this command lists all loaded scripts.
|
|
----
|
|
// end::guile_commands[]
|
|
|
|
// tag::javascript_commands[]
|
|
[[command_javascript_javascript]]
|
|
* `+javascript+`: list/load/unload scripts
|
|
|
|
----
|
|
/javascript list|listfull [<name>]
|
|
load [-q] <filename>
|
|
autoload
|
|
reload|unload [-q] [<name>]
|
|
eval [-o|-oc] <code>
|
|
version
|
|
|
|
list: list loaded scripts
|
|
listfull: list loaded scripts (verbose)
|
|
load: load a script
|
|
autoload: load all scripts in "autoload" directory
|
|
reload: reload a script (if no name given, unload all scripts, then load all scripts in "autoload" directory)
|
|
unload: unload a script (if no name given, unload all scripts)
|
|
filename: script (file) to load
|
|
-q: quiet mode: do not display messages
|
|
name: a script name (name used in call to "register" function)
|
|
eval: evaluate source code and display result on current buffer
|
|
-o: send evaluation result to the buffer without executing commands
|
|
-oc: send evaluation result to the buffer and execute commands
|
|
code: source code to evaluate
|
|
version: display the version of interpreter used
|
|
|
|
Without argument, this command lists all loaded scripts.
|
|
----
|
|
// end::javascript_commands[]
|
|
|
|
// tag::logger_commands[]
|
|
[[command_logger_logger]]
|
|
* `+logger+`: logger plugin configuration
|
|
|
|
----
|
|
/logger list
|
|
set <level>
|
|
flush
|
|
disable
|
|
|
|
list: show logging status for opened buffers
|
|
set: set logging level on current buffer
|
|
level: level for messages to be logged (0 = logging disabled, 1 = a few messages (most important) .. 9 = all messages)
|
|
flush: write all log files now
|
|
disable: disable logging on current buffer (set level to 0)
|
|
|
|
Options "logger.level.*" and "logger.mask.*" can be used to set level or mask for a buffer, or buffers beginning with name.
|
|
|
|
Log levels used by IRC plugin:
|
|
1: user message (channel and private), notice (server and channel)
|
|
2: nick change
|
|
3: server message
|
|
4: join/part/quit
|
|
9: all other messages
|
|
|
|
Examples:
|
|
set level to 5 for current buffer:
|
|
/logger set 5
|
|
disable logging for current buffer:
|
|
/logger disable
|
|
set level to 3 for all IRC buffers:
|
|
/set logger.level.irc 3
|
|
disable logging for main WeeChat buffer:
|
|
/set logger.level.core.weechat 0
|
|
use a directory per IRC server and a file per channel inside:
|
|
/set logger.mask.irc "$server/$channel.weechatlog"
|
|
----
|
|
// end::logger_commands[]
|
|
|
|
// tag::lua_commands[]
|
|
[[command_lua_lua]]
|
|
* `+lua+`: list/load/unload scripts
|
|
|
|
----
|
|
/lua list|listfull [<name>]
|
|
load [-q] <filename>
|
|
autoload
|
|
reload|unload [-q] [<name>]
|
|
eval [-o|-oc] <code>
|
|
version
|
|
|
|
list: list loaded scripts
|
|
listfull: list loaded scripts (verbose)
|
|
load: load a script
|
|
autoload: load all scripts in "autoload" directory
|
|
reload: reload a script (if no name given, unload all scripts, then load all scripts in "autoload" directory)
|
|
unload: unload a script (if no name given, unload all scripts)
|
|
filename: script (file) to load
|
|
-q: quiet mode: do not display messages
|
|
name: a script name (name used in call to "register" function)
|
|
eval: evaluate source code and display result on current buffer
|
|
-o: send evaluation result to the buffer without executing commands
|
|
-oc: send evaluation result to the buffer and execute commands
|
|
code: source code to evaluate
|
|
version: display the version of interpreter used
|
|
|
|
Without argument, this command lists all loaded scripts.
|
|
----
|
|
// end::lua_commands[]
|
|
|
|
// tag::xfer_commands[]
|
|
[[command_xfer_me]]
|
|
* `+me+`: send a CTCP action to remote host
|
|
|
|
----
|
|
/me <message>
|
|
|
|
message: message to send
|
|
----
|
|
|
|
[[command_xfer_xfer]]
|
|
* `+xfer+`: xfer control
|
|
|
|
----
|
|
/xfer [list|listfull]
|
|
|
|
list: list xfer
|
|
listfull: list xfer (verbose)
|
|
|
|
Without argument, this command opens buffer with xfer list.
|
|
----
|
|
// end::xfer_commands[]
|
|
|
|
// tag::perl_commands[]
|
|
[[command_perl_perl]]
|
|
* `+perl+`: list/load/unload scripts
|
|
|
|
----
|
|
/perl list|listfull [<name>]
|
|
load [-q] <filename>
|
|
autoload
|
|
reload|unload [-q] [<name>]
|
|
eval [-o|-oc] <code>
|
|
version
|
|
|
|
list: list loaded scripts
|
|
listfull: list loaded scripts (verbose)
|
|
load: load a script
|
|
autoload: load all scripts in "autoload" directory
|
|
reload: reload a script (if no name given, unload all scripts, then load all scripts in "autoload" directory)
|
|
unload: unload a script (if no name given, unload all scripts)
|
|
filename: script (file) to load
|
|
-q: quiet mode: do not display messages
|
|
name: a script name (name used in call to "register" function)
|
|
eval: evaluate source code and display result on current buffer
|
|
-o: send evaluation result to the buffer without executing commands
|
|
-oc: send evaluation result to the buffer and execute commands
|
|
code: source code to evaluate
|
|
version: display the version of interpreter used
|
|
|
|
Without argument, this command lists all loaded scripts.
|
|
----
|
|
// end::perl_commands[]
|
|
|
|
// tag::php_commands[]
|
|
[[command_php_php]]
|
|
* `+php+`: list/load/unload scripts
|
|
|
|
----
|
|
/php list|listfull [<name>]
|
|
load [-q] <filename>
|
|
autoload
|
|
reload|unload [-q] [<name>]
|
|
eval [-o|-oc] <code>
|
|
version
|
|
|
|
list: list loaded scripts
|
|
listfull: list loaded scripts (verbose)
|
|
load: load a script
|
|
autoload: load all scripts in "autoload" directory
|
|
reload: reload a script (if no name given, unload all scripts, then load all scripts in "autoload" directory)
|
|
unload: unload a script (if no name given, unload all scripts)
|
|
filename: script (file) to load
|
|
-q: quiet mode: do not display messages
|
|
name: a script name (name used in call to "register" function)
|
|
eval: evaluate source code and display result on current buffer
|
|
-o: send evaluation result to the buffer without executing commands
|
|
-oc: send evaluation result to the buffer and execute commands
|
|
code: source code to evaluate
|
|
version: display the version of interpreter used
|
|
|
|
Without argument, this command lists all loaded scripts.
|
|
----
|
|
// end::php_commands[]
|
|
|
|
// tag::python_commands[]
|
|
[[command_python_python]]
|
|
* `+python+`: list/load/unload scripts
|
|
|
|
----
|
|
/python list|listfull [<name>]
|
|
load [-q] <filename>
|
|
autoload
|
|
reload|unload [-q] [<name>]
|
|
eval [-o|-oc] <code>
|
|
version
|
|
|
|
list: list loaded scripts
|
|
listfull: list loaded scripts (verbose)
|
|
load: load a script
|
|
autoload: load all scripts in "autoload" directory
|
|
reload: reload a script (if no name given, unload all scripts, then load all scripts in "autoload" directory)
|
|
unload: unload a script (if no name given, unload all scripts)
|
|
filename: script (file) to load
|
|
-q: quiet mode: do not display messages
|
|
name: a script name (name used in call to "register" function)
|
|
eval: evaluate source code and display result on current buffer
|
|
-o: send evaluation result to the buffer without executing commands
|
|
-oc: send evaluation result to the buffer and execute commands
|
|
code: source code to evaluate
|
|
version: display the version of interpreter used
|
|
|
|
Without argument, this command lists all loaded scripts.
|
|
----
|
|
// end::python_commands[]
|
|
|
|
// tag::relay_commands[]
|
|
[[command_relay_relay]]
|
|
* `+relay+`: relay control
|
|
|
|
----
|
|
/relay list|listfull|listrelay
|
|
add <name> <port>|<path>
|
|
del|start|restart|stop <name>
|
|
raw
|
|
sslcertkey
|
|
|
|
list: list relay clients (only active relays)
|
|
listfull: list relay clients (verbose, all relays)
|
|
listrelay: list relays (name and port)
|
|
add: add a relay (listen on a port/path)
|
|
del: remove a relay (clients remain connected)
|
|
start: listen on port
|
|
restart: close the server socket and listen again on port (clients remain connected)
|
|
stop: close the server socket (clients remain connected)
|
|
name: relay name (see format below)
|
|
port: port used for relay
|
|
path: path used for relay (for UNIX domain socket only); "%h" at beginning of string is replaced by WeeChat home ("~/.weechat" by default), content is evaluated (see /help eval)
|
|
raw: open buffer with raw Relay data
|
|
sslcertkey: set SSL certificate/key using path in option relay.network.ssl_cert_key
|
|
|
|
Relay name is: [ipv4.][ipv6.][ssl.]<protocol.name> or unix.[ssl.]<protocol.name>
|
|
ipv4: force use of IPv4
|
|
ipv6: force use of IPv6
|
|
ssl: enable SSL
|
|
unix: use UNIX domain socket
|
|
protocol.name: protocol and name to relay:
|
|
- protocol "irc": name is the server to share (optional, if not given, the server name must be sent by client in command "PASS", with format: "PASS server:password")
|
|
- protocol "weechat" (name is not used)
|
|
|
|
The "irc" protocol allows any IRC client (including WeeChat itself) to connect on the port.
|
|
The "weechat" protocol allows a remote interface to connect on the port, see the list here: https://weechat.org/about/interfaces
|
|
|
|
Without argument, this command opens buffer with list of relay clients.
|
|
|
|
Examples:
|
|
irc proxy, for server "freenode":
|
|
/relay add irc.freenode 8000
|
|
irc proxy, for server "freenode", with SSL:
|
|
/relay add ssl.irc.freenode 8001
|
|
irc proxy, for all servers (client will choose), with SSL:
|
|
/relay add ssl.irc 8002
|
|
weechat protocol:
|
|
/relay add weechat 9000
|
|
weechat protocol with SSL:
|
|
/relay add ssl.weechat 9001
|
|
weechat protocol with SSL, using only IPv4:
|
|
/relay add ipv4.ssl.weechat 9001
|
|
weechat protocol with SSL, using only IPv6:
|
|
/relay add ipv6.ssl.weechat 9001
|
|
weechat protocol with SSL, using IPv4 + IPv6:
|
|
/relay add ipv4.ipv6.ssl.weechat 9001
|
|
weechat protocol over UNIX domain socket:
|
|
/relay add unix.weechat %h/relay_socket
|
|
----
|
|
// end::relay_commands[]
|
|
|
|
// tag::ruby_commands[]
|
|
[[command_ruby_ruby]]
|
|
* `+ruby+`: list/load/unload scripts
|
|
|
|
----
|
|
/ruby list|listfull [<name>]
|
|
load [-q] <filename>
|
|
autoload
|
|
reload|unload [-q] [<name>]
|
|
eval [-o|-oc] <code>
|
|
version
|
|
|
|
list: list loaded scripts
|
|
listfull: list loaded scripts (verbose)
|
|
load: load a script
|
|
autoload: load all scripts in "autoload" directory
|
|
reload: reload a script (if no name given, unload all scripts, then load all scripts in "autoload" directory)
|
|
unload: unload a script (if no name given, unload all scripts)
|
|
filename: script (file) to load
|
|
-q: quiet mode: do not display messages
|
|
name: a script name (name used in call to "register" function)
|
|
eval: evaluate source code and display result on current buffer
|
|
-o: send evaluation result to the buffer without executing commands
|
|
-oc: send evaluation result to the buffer and execute commands
|
|
code: source code to evaluate
|
|
version: display the version of interpreter used
|
|
|
|
Without argument, this command lists all loaded scripts.
|
|
----
|
|
// end::ruby_commands[]
|
|
|
|
// tag::script_commands[]
|
|
[[command_script_script]]
|
|
* `+script+`: WeeChat script manager
|
|
|
|
----
|
|
/script list [-o|-ol|-i|-il]
|
|
search <text>
|
|
show <script>
|
|
load|unload|reload <script> [<script>...]
|
|
autoload|noautoload|toggleautoload <script> [<script>...]
|
|
install|remove|installremove|hold [-q] <script> [<script>...]
|
|
upgrade
|
|
update
|
|
|
|
list: list loaded scripts (all languages)
|
|
-o: send list of loaded scripts to buffer (string in English)
|
|
-ol: send list of loaded scripts to buffer (translated string)
|
|
-i: copy list of loaded scripts in command line (for sending to buffer) (string in English)
|
|
-il: copy list of loaded scripts in command line (for sending to buffer) (translated string)
|
|
search: search scripts by tags, language (python, perl, ...), filename extension (py, pl, ...) or text; result is displayed on scripts buffer
|
|
show: show detailed info about a script
|
|
load: load script(s)
|
|
unload: unload script(s)
|
|
reload: reload script(s)
|
|
autoload: autoload the script
|
|
noautoload: do not autoload the script
|
|
toggleautoload: toggle autoload
|
|
install: install/upgrade script(s)
|
|
remove: remove script(s)
|
|
installremove: install or remove script(s), depending on current state
|
|
hold: hold/unhold script(s) (a script held will not be upgraded any more and cannot be removed)
|
|
-q: quiet mode: do not display messages
|
|
upgrade: upgrade all installed scripts which are obsolete (new version available)
|
|
update: update local scripts cache
|
|
|
|
Without argument, this command opens a buffer with list of scripts.
|
|
|
|
On script buffer, the possible status for each script are:
|
|
* i a H r N
|
|
| | | | | |
|
|
| | | | | obsolete (new version available)
|
|
| | | | running (loaded)
|
|
| | | held
|
|
| | autoloaded
|
|
| installed
|
|
popular script
|
|
|
|
Keys on script buffer:
|
|
alt+i install script
|
|
alt+r remove script
|
|
alt+l load script
|
|
alt+L reload script
|
|
alt+u unload script
|
|
alt+A autoload script
|
|
alt+h (un)hold script
|
|
alt+v view script
|
|
|
|
Input allowed on script buffer:
|
|
i/r/l/L/u/A/h/v action on script (same as keys above)
|
|
q close buffer
|
|
$ refresh buffer
|
|
s:x,y sort buffer using keys x and y (see /help script.look.sort)
|
|
s: reset sort (use default sort)
|
|
word(s) filter scripts: search word(s) in scripts (description, tags, ...)
|
|
* remove filter
|
|
|
|
Mouse actions on script buffer:
|
|
wheel scroll list
|
|
left button select script
|
|
right button install/remove script
|
|
|
|
Examples:
|
|
/script search url
|
|
/script install go.py urlserver.py
|
|
/script remove go.py
|
|
/script hold urlserver.py
|
|
/script reload urlserver
|
|
/script upgrade
|
|
----
|
|
// end::script_commands[]
|
|
|
|
// tag::spell_commands[]
|
|
[[command_spell_spell]]
|
|
* `+spell+`: spell plugin configuration
|
|
|
|
----
|
|
/spell enable|disable|toggle
|
|
listdict
|
|
setdict <dict>[,<dict>...]
|
|
deldict
|
|
addword [<dict>] <word>
|
|
|
|
enable: enable spell checker
|
|
disable: disable spell checker
|
|
toggle: toggle spell checker
|
|
listdict: show installed dictionaries
|
|
setdict: set dictionary for current buffer (multiple dictionaries can be separated by a comma)
|
|
deldict: delete dictionary used on current buffer
|
|
addword: add a word in personal dictionary
|
|
|
|
Input line beginning with a '/' is not checked, except for some commands (see /set spell.check.commands).
|
|
|
|
To enable spell checker on all buffers, use option "default_dict", then enable spell checker, for example:
|
|
/set spell.check.default_dict "en"
|
|
/spell enable
|
|
|
|
To display a list of suggestions in a bar, use item "spell_suggest".
|
|
|
|
Default key to toggle spell checker is alt-s.
|
|
----
|
|
// end::spell_commands[]
|
|
|
|
// tag::tcl_commands[]
|
|
[[command_tcl_tcl]]
|
|
* `+tcl+`: list/load/unload scripts
|
|
|
|
----
|
|
/tcl list|listfull [<name>]
|
|
load [-q] <filename>
|
|
autoload
|
|
reload|unload [-q] [<name>]
|
|
eval [-o|-oc] <code>
|
|
version
|
|
|
|
list: list loaded scripts
|
|
listfull: list loaded scripts (verbose)
|
|
load: load a script
|
|
autoload: load all scripts in "autoload" directory
|
|
reload: reload a script (if no name given, unload all scripts, then load all scripts in "autoload" directory)
|
|
unload: unload a script (if no name given, unload all scripts)
|
|
filename: script (file) to load
|
|
-q: quiet mode: do not display messages
|
|
name: a script name (name used in call to "register" function)
|
|
eval: evaluate source code and display result on current buffer
|
|
-o: send evaluation result to the buffer without executing commands
|
|
-oc: send evaluation result to the buffer and execute commands
|
|
code: source code to evaluate
|
|
version: display the version of interpreter used
|
|
|
|
Without argument, this command lists all loaded scripts.
|
|
----
|
|
// end::tcl_commands[]
|
|
|
|
// tag::trigger_commands[]
|
|
[[command_trigger_trigger]]
|
|
* `+trigger+`: manage triggers, the Swiss Army knife for WeeChat
|
|
|
|
----
|
|
/trigger list|listfull|listdefault
|
|
add|addoff|addreplace <name> <hook> ["<arguments>" ["<conditions>" ["<regex>" ["<command>" ["<return_code>" ["<post_action>"]]]]]]
|
|
addinput [<hook>]
|
|
input|output|recreate <name>
|
|
set <name> <option> <value>
|
|
rename|copy <name> <new_name>
|
|
enable|disable|toggle [<name>|-all [<name>...]]
|
|
restart <name>|-all [<name>...]
|
|
show <name>
|
|
del <name>|-all [<name>...]
|
|
restore <name> [<name>...]
|
|
default -yes
|
|
monitor [<filter>]
|
|
|
|
list: list triggers (without argument, this list is displayed)
|
|
listfull: list triggers with detailed info for each trigger
|
|
listdefault: list default triggers
|
|
add: add a trigger
|
|
addoff: add a trigger (disabled)
|
|
addreplace: add or replace an existing trigger
|
|
name: name of trigger
|
|
hook: signal, hsignal, modifier, line, print, command, command_run, timer, config, focus, info, info_hashtable
|
|
arguments: arguments for the hook, depending on hook (separated by semicolons):
|
|
signal: name(s) of signal (required)
|
|
hsignal: name(s) of hsignal (required)
|
|
modifier: name(s) of modifier (required)
|
|
line: buffer type ("formatted", "free" or "*"), list of buffer masks, tags
|
|
print: buffer, tags, message, strip colors
|
|
command: command (required), description, arguments, description of arguments, completion (all arguments except command are evaluated, see /help eval)
|
|
command_run: command(s) (required)
|
|
timer: interval (required), align on second, max calls
|
|
config: name(s) of option (required)
|
|
focus: name(s) of area (required)
|
|
info: name(s) of info (required)
|
|
info_hashtable: name(s) of info (required)
|
|
conditions: evaluated conditions for the trigger
|
|
regex: one or more regular expressions to replace strings in variables
|
|
command: command to execute (many commands can be separated by ";")
|
|
return_code: return code in callback (ok (default), ok_eat, error)
|
|
post_action: action to take after execution (none (default), disable, delete)
|
|
addinput: set input with default arguments to create a trigger
|
|
input: set input with the command used to create the trigger
|
|
output: send the command to create the trigger on the buffer
|
|
recreate: same as "input", with option "addreplace" instead of "add"
|
|
set: set an option in a trigger
|
|
option: name of option: name, hook, arguments, conditions, regex, command, return_code
|
|
(for help on option, you can type: /help trigger.trigger.<name>.<option>)
|
|
value: new value for the option
|
|
rename: rename a trigger
|
|
copy: copy a trigger
|
|
enable: enable trigger(s) (without arguments: enable triggers globally)
|
|
disable: disable trigger(s) (without arguments: disable triggers globally)
|
|
toggle: toggle trigger(s) (without arguments: toggle triggers globally)
|
|
restart: restart trigger(s) (recreate the hooks)
|
|
show: show detailed info on a trigger (with some stats)
|
|
del: delete a trigger
|
|
-all: do action on all triggers
|
|
restore: restore trigger(s) with the default values (works only for default triggers)
|
|
default: delete all triggers and restore default ones
|
|
monitor: open the trigger monitor buffer, with optional filter:
|
|
filter: filter hooks/triggers to display (a hook must start with "@", for example "@signal"), many filters can be separated by commas; wildcard "*" is allowed in each trigger name
|
|
|
|
When a trigger callback is called, following actions are performed, in this order:
|
|
1. check conditions; if false, exit
|
|
2. replace text using POSIX extended regular expression(s) (if defined in trigger)
|
|
3. execute command(s) (if defined in trigger)
|
|
4. exit with a return code (except for modifier, line, focus, info and info_hashtable)
|
|
5. perform post action
|
|
|
|
Examples (you can also look at default triggers with /trigger listdefault):
|
|
add text attributes *bold*, _underline_ and /italic/ (only in user messages):
|
|
/trigger add effects modifier weechat_print "${tg_tag_nick}" "==\*([^ ]+)\*==*${color:bold}${re:1}${color:-bold}*== ==_([^ ]+)_==_${color:underline}${re:1}${color:-underline}_== ==/([^ ]+)/==/${color:italic}${re:1}${color:-italic}/"
|
|
hide nicklist bar on small terminals:
|
|
/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"
|
|
silently save config each hour:
|
|
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
|
|
open trigger monitor and show only modifiers and triggers whose name starts with "resize":
|
|
/trigger monitor @modifier,resize*
|
|
----
|
|
// end::trigger_commands[]
|