//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//

// tag::irc_commands[]
[[command_irc_admin]]
* `+admin+`: サーバ管理者に関する情報を探す

----
/admin  [<target>]

target: サーバ名
----

[[command_irc_allchan]]
* `+allchan+`: 全てのサーバ、全てのチャンネルに対してコマンドを実行

----
/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+`: 全ての接続済みサーバの全てのプライベートバッファに対してコマンドを実行

----
/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+`: 全ての接続済みサーバでコマンドを実行

----
/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  [<channel>] [<nick> [<nick>...]]

channel: チャンネル名
   nick: ニックネームまたはホスト名

引数無しの場合は、現在のチャンネルのバンリストを表示。
----

[[command_irc_cap]]
* `+cap+`: クライアント機能情報の交換

----
/cap  ls
      list
      req|ack [<capability> [<capability>...]]
      end

   ls: サーバがサポートする機能をリスト
 list: 現在有効化されている機能をリスト
  req: 機能情報を要求
  ack: クライアント側に承認を要求する機能を承認
  end: 機能情報交換を終了

引数無しの場合、"ls" と "list" を送信します。

WeeChat がサポートする機能: account-notify、away-notify、cap-notify、chghost、extended-join、invite-notify、multi-prefix、server-time、userhost-in-names。

自動的に有効化する機能を設定するにはオプション irc.server_default.capabilities (または対象のサーバに関するオプション irc.server.xxx.capabilities) を使ってください。

例:
   /cap
   /cap req multi-prefix away-notify
----

[[command_irc_connect]]
* `+connect+`: IRC サーバに接続

----
/connect  [<server> [<server>...]] [-<option>[=<value>]] [-no<option>] [-nojoin] [-switch]
          -all|-auto|-open [-nojoin] [-switch]

    server: サーバ名、これは:
            - 内部サーバ名 (/server add で追加されたもの、利用推奨)
            - ホスト名/ポート番号または IP アドレス/ポート番号、デフォルトのポート番号は 6667
            - 次の書式に従う URL: irc[6][s]://[nickname[:password]@]irc.example.org[:port][/#channel1][,#channel2[...]]
            注意: アドレス/IP/URL を指定した場合、サーバを一時的に追加します (保存しません)、/help irc.look.temporary_servers を参照してください。
    option: サーバに関するオプション (ブール型オプションでは、value は無視される)
  nooption: ブール型オプションを 'off' にする (例: -nossl)
      -all: 設定された全てのサーバに接続
     -auto: 自動接続を有効化してサーバに接続
     -open: 現在接続されていないがオープンされているサーバに接続
   -nojoin: チャンネルに入らない (autojoin が有効化されていても)
   -switch: 次のサーバアドレスに移動

サーバとの接続を切断するか、接続試行を中止するには /disconnect コマンドを使ってください。

例:
  /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+`: CTCP メッセージの送信 (Client-To-Client Protocol)

----
/ctcp  [-server <server>] <target>[,<target>...] <type> [<arguments>]

   server: 送信先サーバ名 (内部名)
   target: 送信先ニックネームまたはチャンネル ('*' の場合現在のチャンネル宛に送信)
     type: CTCP タイプ (例: "version"、"ping"、など)
arguments: CTCP の引数

例:
  /ctcp toto time
  /ctcp toto version
  /ctcp * version
----

[[command_irc_cycle]]
* `+cycle+`: チャンネルから退出し再参加

----
/cycle  [<channel>[,<channel>...]] [<message>]

channel: チャンネル名
message: 退出メッセージ (他のユーザに宛てる)
----

[[command_irc_dcc]]
* `+dcc+`: DCC の開始 (ファイル転送かダイレクトチャット)

----
/dcc  chat <nick>
      send <nick> <file>

nick: ニックネーム
file: ファイル名 (ローカルホスト上の)

例:
  "toto" とチャット:
    /dcc chat toto
  ファイル "/home/foo/bar.txt" を ニックネーム "toto" に送信:
    /dcc send toto /home/foo/bar.txt
----

[[command_irc_dehalfop]]
* `+dehalfop+`: ニックネームから half-operator 権を剥奪

----
/dehalfop  <nick> [<nick>...]

nick: ニックネームまたはマスク (ワイルドカード "*" を使うことができます)
   *: 自分以外のチャンネル参加者からチャンネルの half-operator 権を剥奪
----

[[command_irc_deop]]
* `+deop+`: ニックネームからチャンネルオペレータ権を剥奪

----
/deop  <nick> [<nick>...]
       * -yes

nick: ニックネームまたはマスク (ワイルドカード "*" を使うことができます)
   *: 自分以外のチャンネル参加者からチャンネルオペレータ権を剥奪
----

[[command_irc_devoice]]
* `+devoice+`: ニックネームから発言権を剥奪

----
/devoice  <nick> [<nick>...]
          * -yes

nick: ニックネームまたはマスク (ワイルドカード "*" を使うことができます)
   *: チャンネル参加者全員から voice 状態を剥奪
----

[[command_irc_die]]
* `+die+`: サーバのシャットダウン

----
/die  [<target>]

target: サーバ名
----

[[command_irc_disconnect]]
* `+disconnect+`: 特定のまたは全ての IRC サーバとの接続を切断

----
/disconnect  [<server>|-all|-pending [<reason>]]

  server: 内部サーバ名
    -all: 全てのサーバとの接続を切る
-pending: 現在再接続試行中のサーバに対する自動再接続を止める
  reason: "quit" の理由
----

[[command_irc_halfop]]
* `+halfop+`: 指定したニックネームに half-operator 権を付与

----
/halfop  <nick> [<nick>...]
         * -yes

nick: ニックネームまたはマスク (ワイルドカード "*" を使うことができます)
   *: チャンネル参加者全員に half-operator 権を付与
----

[[command_irc_ignore]]
* `+ignore+`: あるサーバかチャンネルで、指定したニックネーム/ホスト名を無視

----
/ignore  list
         add [re:]<nick> [<server> [<channel>]]
         del <number>|-all

     list: 無視エントリをリストアップ
      add: 無視エントリを追加
     nick: ニックネームまたはホスト名 ("re:" を付けることで POSIX 拡張正規表現を使えます、"*" は 0 個以上の文字にマッチします)
      del: 無視エントリの削除
   number: 削除する無視エントリ番号 (番号はリストを参照してください)
     -all: 全ての無視エントリを削除
   server: 無視設定を有効にする内部サーバ名
  channel: 無視設定を有効にするチャンネル名

注意: 正規表現で大文字小文字を区別するには "(?-i)" を最初につけてください。

例:
  全てのサーバ上のニックネーム "toto" を無視:
    /ignore add toto
  freenode サーバ上のホスト名 "toto@domain.com" を無視:
    /ignore add toto@domain.com freenode
  freenode サーバの #weechat チャンネル上のホスト名 "toto*@*.domain.com" を無視:
    /ignore add toto*@*.domain.com freenode #weechat
----

[[command_irc_info]]
* `+info+`: サーバに関する情報を入手

----
/info  [<target>]

target: サーバ名
----

[[command_irc_invite]]
* `+invite+`: チャンネルにニックネームを招待

----
/invite  <nick> [<nick>...] [<channel>]

   nick: ニックネーム
channel: チャンネル名
----

[[command_irc_ison]]
* `+ison+`: ニックネームが IRC 上にいるか確認

----
/ison  <nick> [<nick>...]

nick: ニックネーム
----

[[command_irc_join]]
* `+join+`: チャンネルに参加

----
/join  [-noswitch] [-server <server>] [<channel1>[,<channel2>...]] [<key1>[,<key2>...]]

-noswitch: 新しいバッファに移動しない
   server: 送信先サーバ (内部サーバ名)
  channel: 参加するチャンネルの名前
      key: チャンネルに参加するためのキー (キーが必要なチャンネルは最初に置くこと)

例:
  /join #weechat
  /join #protectedchan,#weechat key
  /join -server freenode #weechat
  /join -noswitch #weechat
----

[[command_irc_kick]]
* `+kick+`: チャンネルからユーザをキック

----
/kick  [<channel>] <nick> [<reason>]

channel: チャンネル名
   nick: ニックネーム
 reason: 理由 (特殊変数 $nick、$channel、$server はそれぞれの値に置換されます)
----

[[command_irc_kickban]]
* `+kickban+`: チャンネルからユーザをキック、そのホストを参加禁止に

----
/kickban  [<channel>] <nick> [<reason>]

channel: チャンネル名
   nick: ニックネーム
 reason: 理由 (特殊変数 $nick、$channel、$server はそれぞれの値に置換されます)

キックと参加禁止にマスクを使うことが可能で、"*" のマスク展開後にマッチするニックネームがこれらの対象になります。

例:
  "*!*@host.com" を参加禁止して "toto" をキック:
    /kickban toto!*@host.com
----

[[command_irc_kill]]
* `+kill+`: クライアント - サーバの接続を閉じる

----
/kill  <nick> [<reason>]

  nick: ニックネーム
reason: 理由
----

[[command_irc_links]]
* `+links+`: list all server names which are known by the server answering the query

----
/links  [[<target>] <server_mask>]

     target: このクエリに応答するべきリモートサーバ
server_mask: このマスクにマッチするサーバのリスト
----

[[command_irc_list]]
* `+list+`: チャンネルとトピックをリストアップ

----
/list  [-server <server>] [-re <regex>] [<channel>[,<channel>...]] [<target>]

 server: 宛先サーバ (内部名)
  regex: 結果をフィルタする POSIX 拡張正規表現 (大文字小文字は区別しない、"(?-i)" で始めれば区別する)
channel: リストアップするチャンネル名
 server: サーバ名

例:
  サーバ上の全てのチャンネルをリストアップ (大きなネットワークでは非常に遅い):
    /list
  #weechat チャンネルをリストアップ:
    /list #weechat
  "#weechat" で始まる全てのチャンネルをリストアップ (大きなネットワークでは非常に遅い):
    /list -re #weechat.*
----

[[command_irc_lusers]]
* `+lusers+`: IRC ネットワークのサイズに関する統計を入手

----
/lusers  [<mask> [<target>]]

  mask: このマスクにマッチするサーバ
target: リクエストを送信するサーバ
----

[[command_irc_map]]
* `+map+`: IRC ネットワークのグラフィカルマップを表示

----
----

[[command_irc_me]]
* `+me+`: 現在のチャンネルに CTCP action を送信

----
/me  <message>

message: 送信メッセージ
----

[[command_irc_mode]]
* `+mode+`: チャンネルかユーザのモードを変更

----
/mode  [<channel>] [+|-]o|p|s|i|t|n|m|l|b|e|v|k [<arguments>]
       <nick> [+|-]i|s|w|o

チャンネルモード:
  channel: 変更するチャンネル名 (デフォルトは現在のチャンネル)
  o: チャンネルオペレータ権の付与/剥奪
  p: プライベートチャンネルフラグ
  s: 秘密チャンネルフラグ
  i: 招待専用チャンネルフラグ
  t: チャンネルトピックの変更をオペレータだけに許可するフラグ
  n: チャンネルに参加していないクライアントからのメッセージの送信を禁止
  m: 司会付きチャンネル
  l: クライアント数の制限値を設定
  b: ユーザの入室禁止マスクを設定
  e: 入室禁止の除外マスクを設定
  v: 司会付きチャンネルで発言権を付与/剥奪
  k: チャンネルキーを設定 (パスワード)
ユーザモード:
  nick: 変更するユーザ名
  i: ユーザを不可視状態にする
  s: ユーザがサーバ notices を受け取る状態にする
  w: ユーザが wallops を受け取る状態にする
  o: オペレータフラグ

上のモードのリストは完全なものではない、設定可能なモードを確認するために、サーバに関するドキュメントを読むこと。

例:
  #weechat チャンネルのトピックを保護:
    /mode #weechat +t
  サーバ上で不可視にする:
    /mode nick +i
----

[[command_irc_motd]]
* `+motd+`: "今日のメッセージ" を取得

----
/motd  [<target>]

target: サーバ名
----

[[command_irc_msg]]
* `+msg+`: ニックネームかチャンネルにメッセージを送る

----
/msg  [-server <server>] <target>[,<target>...] <text>

server: このサーバに送信 (内部サーバ名)
target: ニックネームまたはチャンネル名 (マスクを使えるかもしれない、'*' = 現在のチャンネル)
  text: 送信するテキスト
----

[[command_irc_names]]
* `+names+`: チャンネルに参加しているニックネームをリストアップ

----
/names  [<channel>[,<channel>...]]

channel: チャンネル名
----

[[command_irc_nick]]
* `+nick+`: 現在のニックネームを変更

----
/nick  [-all] <nick>

-all: 全ての接続済みサーバで新しいニックネームを設定
nick: 新しいニックネーム
----

[[command_irc_notice]]
* `+notice+`: ユーザに notice メッセージを送信

----
/notice  [-server <server>] <target> <text>

server: このサーバに送信 (内部サーバ名)
target: ニックネームまたはチャンネル名
  text: 送信するテキスト
----

[[command_irc_notify]]
* `+notify+`: サーバ上のニックネームに対して接続か離席状態の通知を追加する

----
/notify  add <nick> [<server> [-away]]
         del <nick>|-all [<server>]

   add: 通知の追加
  nick: ニックネーム
server: 内部サーバ名 (デフォルトでは現在のサーバ)
 -away: 離席メッセージが変更されたときに通知 (ニックネームの whois を行う)
   del: 通知を削除
  -all: 全ての通知を削除

引数無しの場合は、現在のサーバに関する通知設定を表示します (コアバッファで実行された場合は全てのサーバに関する設定)。

例:
  "toto" が現在のサーバに接続/切断した場合に通知:
    /notify add toto
  "toto" が freenode サーバに接続/切断した場合に通知:
    /notify add toto freenode
  "toto" が freenode サーバに戻るか離席状態になった場合に通知:
    /notify add toto freenode -away
----

[[command_irc_op]]
* `+op+`: ニックネームにオペレータ権を付与

----
/op  <nick> [<nick>...]
     * -yes

nick: ニックネームまたはマスク (ワイルドカード "*" を使うことができます)
   *: チャンネル参加者全員にチャンネルオペレータ権を付与
----

[[command_irc_oper]]
* `+oper+`: オペレータ権を入手

----
/oper  <user> <password>

    user: ユーザ
password: パスワード
----

[[command_irc_part]]
* `+part+`: チャンネルから退出

----
/part  [<channel>[,<channel>...]] [<message>]

channel: 退出するチャンネル名
message: 退出メッセージ (他のユーザに対して)
----

[[command_irc_ping]]
* `+ping+`: サーバにピンを送信

----
/ping  <target1> [<target2>]

target1: ピン送信先サーバ
target2: ピン転送先サーバ
----

[[command_irc_pong]]
* `+pong+`: ピンメッセージに応答

----
/pong  <daemon> [<daemon2>]

 daemon: ピンメッセージに応答したデーモン
daemon2: メッセージをデーモンに転送
----

[[command_irc_query]]
* `+query+`: ニックネーム宛にプライベートメッセージを送信

----
/query  [-noswitch] [-server <server>] <nick>[,<nick>...] [<text>]

-noswitch: 新しいバッファに切り替えない
   server: このサーバに送信 (内部サーバ名)
     nick: ニックネーム
     text: 送信するテキスト
----

[[command_irc_quiet]]
* `+quiet+`: ニックネームかホストを発言禁止に

----
/quiet  [<channel>] [<nick> [<nick>...]]

channel: チャンネル名
   nick: ニックネームまたはホスト名

引数無しの場合は、現在のチャンネルの発言禁止リストを表示。
----

[[command_irc_quote]]
* `+quote+`: パースせずにサーバ宛に生データを送信

----
/quote  [-server <server>] <data>

server: 送信先サーバ (内部サーバ名)
  data: 送信する生データ
----

[[command_irc_reconnect]]
* `+reconnect+`: サーバに再接続

----
/reconnect  <server> [<server>...] [-nojoin] [-switch]
            -all [-nojoin] [-switch]

 server: 再接続するサーバ (内部名)
   -all: 全てのサーバに再接続
-nojoin: チャンネルに参加しない (autojoin がサーバで有効化されていても)
-switch: 次のサーバアドレスに移動
----

[[command_irc_rehash]]
* `+rehash+`: サーバに設定ファイルのリロードを指示

----
/rehash  [<option>]

option: 追加オプション、いくつかのサーバ用
----

[[command_irc_remove]]
* `+remove+`: ユーザがチャンネルから退出することを強制

----
/remove  [<channel>] <nick> [<reason>]

channel: チャンネル名
   nick: ニックネーム
 reason: 理由 (特殊変数 $nick、$channel、$server はそれぞれの値に置換されます)
----

[[command_irc_restart]]
* `+restart+`: サーバに再起動を指示

----
/restart  [<target>]

target: サーバ名
----

[[command_irc_sajoin]]
* `+sajoin+`: ユーザがチャンネルへ参加することを強制

----
/sajoin  <nick> <channel>[,<channel>...]

   nick: ニックネーム
channel: チャンネル名
----

[[command_irc_samode]]
* `+samode+`: チャンネルモードを変更、オペレータ権無しに

----
/samode  [<channel>] <mode>

channel: チャンネル名
   mode: チャンネルモード
----

[[command_irc_sanick]]
* `+sanick+`: 強制的にユーザのニックネームを変更

----
/sanick  <nick> <new_nick>

    nick: ニックネーム
new_nick: 新しいニックネーム
----

[[command_irc_sapart]]
* `+sapart+`: 強制的にユーザをチャンネルから退出

----
/sapart  <nick> <channel>[,<channel>...]

   nick: ニックネーム
channel: チャンネル名
----

[[command_irc_saquit]]
* `+saquit+`: ある理由で強制的にユーザをサーバから切断

----
/saquit  <nick> <reason>

  nick: ニックネーム
reason: 理由
----

[[command_irc_server]]
* `+server+`: IRC サーバのリストアップ、追加、削除

----
/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+`: 新しいサービスを登録

----
/service  <nick> <reserved> <distribution> <type> <reserved> <info>

distribution: サービスの可視性
        type: 将来のために予約
----

[[command_irc_servlist]]
* `+servlist+`: 現在ネットワークに接続されたサービスをリストアップ

----
/servlist  [<mask> [<type>]]

mask: マスクにマッチするサービスだけをリストアップ
type: タイプにマッチするサービスだけをリストアップ
----

[[command_irc_squery]]
* `+squery+`: サービスにメッセージを配送

----
/squery  <service> <text>

service: サービス名
   text: 送信テキスト
----

[[command_irc_squit]]
* `+squit+`: サーバリンクを切断

----
/squit  <target> <comment>

 target: サーバ名
comment: コメント
----

[[command_irc_stats]]
* `+stats+`: サーバに関するクエリ統計

----
/stats  [<query> [<target>]]

 query: c/h/i/k/l/m/o/y/u (RFC1459 を参照してください)
target: サーバ名
----

[[command_irc_summon]]
* `+summon+`: IRC サーバを実行中のホストにいるユーザ宛てに、IRC に参加することを要請するメッセージを送信

----
/summon  <user> [<target> [<channel>]]

   user: ユーザ名
 target: サーバ名
channel: チャンネル名
----

[[command_irc_time]]
* `+time+`: サーバのローカル時間を要求

----
/time  [<target>]

target: 時間を要求するサーバを指定
----

[[command_irc_topic]]
* `+topic+`: チャンネルトピックの取得/設定

----
/topic  [<channel>] [<topic>|-delete]

channel: チャンネル名
  topic: 新しいトピック
-delete: チャンネルトピックを削除
----

[[command_irc_trace]]
* `+trace+`: 指定されたサーバへのルートを探す

----
/trace  [<target>]

target: サーバ名
----

[[command_irc_unban]]
* `+unban+`: ニックネームかホストの禁止設定を解除

----
/unban  [<channel>] <nick>|<number> [<nick>|<number>...]

channel: チャンネル名
   nick: ニックネームまたはホスト名
 number: バンするニックネームの番号 (コマンド /ban で表示される番号)
----

[[command_irc_unquiet]]
* `+unquiet+`: ニックネームまたはホスト名に対する発言禁止を解除

----
/unquiet  [<channel>] <nick>|<number> [<nick>|<number>...]

channel: チャンネル名
   nick: ニックネームまたはホスト名
 number: 発言禁止するニックネームの番号 (コマンド /quiet で表示される番号)
----

[[command_irc_userhost]]
* `+userhost+`: ニックネームに関する情報のリストを返す

----
/userhost  <nick> [<nick>...]

nick: ニックネーム
----

[[command_irc_users]]
* `+users+`: サーバにログインしているユーザのリスト

----
/users  [<target>]

target: サーバ名
----

[[command_irc_version]]
* `+version+`: ニックネームかサーバのバージョン情報を取得 (現在のサーバか指定したサーバ)

----
/version  [<target>|<nick>]

target: サーバ名
  nick: ニックネーム
----

[[command_irc_voice]]
* `+voice+`: ニックネームに発言権を付与

----
/voice  <nick> [<nick>...]

nick: ニックネームまたはマスク (ワイルドカード "*" を使うことができます)
   *: チャンネル参加者全員に voice 権を付与
----

[[command_irc_wallchops]]
* `+wallchops+`: チャンネルオペレータに notice を送信

----
/wallchops  [<channel>] <text>

channel: チャンネル名
   text: 送信テキスト
----

[[command_irc_wallops]]
* `+wallops+`: ユーザモードに 'w' を設定した全ての接続済みユーザ宛てにメッセージを送信

----
/wallops  <text>

text: 送信テキスト
----

[[command_irc_who]]
* `+who+`: 情報のリストを返すクエリを生成

----
/who  [<mask> [o]]

mask: マスクにマッチする情報
   o: マスクにマッチするオペレータだけを返す
----

[[command_irc_whois]]
* `+whois+`: ユーザに関する情報を要求

----
/whois  [<target>] [<nick>[,<nick>...]]

target: サーバ名
  nick: ニックネーム (マスクも可)

引数が無い場合、このコマンドは以下のユーザに対する whois を行います:
- バッファがサーバ/チャンネルの場合、自分自身のニックネーム
- バッファがプライベートの場合、相手のニックネーム。

オプション irc.network.whois_double_nick が有効の場合、アイドル時間を返してもらうためにニックネームを 2 つ送信します (ニックネームを 1 つ指定した場合でも)。
----

[[command_irc_whowas]]
* `+whowas+`: 既に存在しないニックネームに関する情報を要求

----
/whowas  <nick>[,<nick>...] [<count> [<target>]]

  nick: ニックネーム
 count: リプライの個数 (負の値で完全な検索)
target: マスクに一致するものだけを返す
----
// end::irc_commands[]

// tag::alias_commands[]
[[command_alias_alias]]
* `+alias+`: 別名コマンドのリストアップ、追加、削除

----
/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+`: 離席状態の切り替え

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

   -all: 全ての接続済みサーバに対して離席状態を切り替え
message: 離席メッセージ (メッセージが無い場合は、離席状態を解除)
----

[[command_weechat_bar]]
* `+bar+`: バーの管理

----
/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: 全てのバーをリストアップ
     listfull: 全てのバーをリストアップ (詳細)
    listitems: 全てのバー要素をリストアップ
          add: 新しいバーを追加
         name: バーの名称 (ユニークな)
         type:   root: 外側のウィンドウ、
               window: 内側のウィンドウ、任意の状態を取れる (以下を参照してください)
   conditions: バーを表示する条件:
                 active: アクティブウィンドウの場合に表示
               inactive: 非アクティブウィンドウの場合に表示
               nicklist: ニックネームリストを持つウィンドウの場合に表示
               その他の条件: /help weechat.bar.xxx.conditions と /help eval を参照してください
               表示条件の指定が無ければ、バーは常に表示されます。
     position: bottom、top、left、right
         size: バーのサイズ (文字数で指定)
    separator: 1 はセパレータ (線) を使用、0 または指定無しはセパレータ無し
    item1,...: バーの要素 (要素はコンマ (要素間にスペース) または "+" (要素間にスペース無し) で区切ります)
      default: デフォルトバーを作成 (バーの名前が無ければ全てのデフォルトバーが作成されます)
          del: バーを削除 (-all を付ければ全てのバーを削除)
          set: バー属性に値を設定
       option: 変更するオプション (オプション一覧は /set weechat.bar.<barname>.* を参照してください)
        value: オプションの新しい値
         hide: バーを隠す
         show: 隠されたバーを表示
       toggle: バーの非表示/表示を切り替え
       scroll: バーをスクロール
       window: ウィンドウ番号 (現在のウィンドウかルートバーを指定するには '*' を使う)
 scroll_value: スクロールする量: 'x' または 'y' (任意)の後に、'+' か '-' か 'b' (最初) か 'e' (最後)の後に、値 (+/- を付けて)、任意で % (スクロールする幅/高さの割合、% が無ければ値は文字数と解釈されます)

例:
  時間、バー番号 + 名前、補完候補からなるバーを作成:
    /bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
  バーを隠す:
    /bar hide mybar
  現在のバッファに対応したニックネームリストを 10 行分、下方向にスクロール:
    /bar scroll nicklist * y+10
  現在のバッファに対応したニックネームリストを最後までスクロール:
    /bar scroll nicklist * ye
----

[[command_weechat_buffer]]
* `+buffer+`: バッファの管理

----
/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+`: 色の別名の定義と、色パレットの表示

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

   alias: ある色に別名を追加
 unalias: 別名の削除
   color: 色番号 (0 以上、最大値は端末依存、多くの場合 63 か 255)
    name: 色の別名 (例: "orange")
   reset: 全ての色ペアをリセット (自動的なリセットが無効化されており、これ以上の色ペアが利用できない場合に必要、オプション "weechat.look.color_pairs_auto_reset" を参照してください)
term2rgb: 端末色 (0-255) を RGB 色に変換
rgb2term: RGB 色を端末色 (0-255) に変換
   limit: 端末テーブル内で使う色の数 (0 から始まる); デフォルトは 256
     -o: 端末/色情報を現在の入力としてバッファに送る

引数無しの場合、コマンドは新しいバッファに色を表示します。

例:
  色番号 214 に対応する別名 "orange" を追加:
    /color alias 214 orange
  色番号 214 を削除:
    /color unalias 214
----

[[command_weechat_command]]
* `+command+`: WeeChat かプラグインのコマンドを起動

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

-buffer: このバッファでコマンドを実行
 plugin: このプラグインからコマンドを実行; 'core' は WeeChat コマンド、'*' は自動的にプラグインを選択 (このコマンドを実行したバッファに依存)
command: 実行するコマンド (コマンドの最初に '/' が無い場合はこれを自動的に追加します)
----

[[command_weechat_cursor]]
* `+cursor+`: カーソルを移動してアクションを実行するエリアを指定

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

     list: デバッグレベルの設定されたプラグインをリストアップ
      set: プラグインのデバッグレベルを設定
   plugin: プラグインの名前 ("core" は WeeChat コアを意味する)
    level: プラグインのデバッグレベル (0 はデバッグの無効化)
     dump: WeeChat ログファイルにメモリダンプを保存 (WeeChat がクラッシュした場合と同じダンプが書き込まれます)
   buffer: ログファイルに 16 進値でバッファの内容をダンプ
    color: 現在の色ペアに関する情報を表示
   cursor: カーソルモードのデバッグを切り替え
     dirs: ディレクトリを表示
    hdata: hdata に関する情報を表示 (free を付けた場合: メモリから全ての hdata を削除)
    hooks: フックに関する情報を表示
infolists: インフォリストに関する情報を表示
     libs: 使用中の外部ライブラリに関する情報を表示
   memory: メモリ使用量に関する情報を表示
    mouse: マウスのデバックを切り替え
     tags: 行のタグを表示
     term: 端末に関する情報を表示
  windows: ウィンドウツリーの情報を表示
     time: コマンドの実行時間や現在のバッファへのテキスト送信にかかった時間を測定
----

[[command_weechat_eval]]
* `+eval+`: 式を評価

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

      list: 全てのフィルタをリストアップ
    enable: フィルタを有効化 (フィルタはデフォルトで有効になっています)
   disable: フィルタを無効化
    toggle: フィルタの有効無効を切り替え
      name: フィルタの名前 ("@" = 現在のバッファに設定されている全てのフィルタを有効化/無効化)
       add: フィルタを追加
addreplace: 既存のフィルタに追加もしくは置換
    rename: フィルタをリネーム
       del: フィルタを削除
      -all: 全てのフィルタを削除
    buffer: フィルタが有効化されているバッファのコンマ区切りリスト:
            - これはプラグイン名を含む完全な名前です (例: "irc.freenode.#weechat" または "irc.server.freenode")
            - "*" は全てのバッファを意味します
            - 名前が '!' から始まるものは除外されます
            - ワイルドカード "*" を使うことができます
      tags: タグのコンマ区切りリスト、例えば "irc_join,irc_part,irc_quit"
            - 論理積 "and": タグ同士を "+" でつなげてください (例: "nick_toto+irc_action")
            - ワイルドカード "*" を使うことができます
            - タグを '!' で始めると、そのタグが付けられたメッセージとそのタグを含むメッセージはフィルタされません
     regex: 行単位検索の正規表現
            - '\t' を使うと、プレフィックスをメッセージから分離できます。'|' 等の特別な文字は '\|' のようにエスケープしなければいけません
            - 正規表現の最初に '!' が含まれる場合は、マッチ結果が反転されます (最初の '!' にマッチさせたければ、'\!' を使ってください)
            - 2 種類の正規表現があります: 一方はプレフィックス用、他方はメッセージ用
            - 正規表現は大文字小文字を区別しません、"(?-i)" から始まる場合は区別します

デフォルトではキー alt+'=' ですべてのバッファについてフィルタリングの on/off を切り替えられます。現在のバッファに限りフィルタリングを切り替えるには alt+'-' を使います。

よく使われるタグ:
  no_filter、no_highlight、no_log、log0..log9 (ログレベル)、
  notify_none、notify_message、notify_private、notify_highlight、
  self_msg、nick_xxx (xxx はメッセージのニックネーム部分)、prefix_nick_ccc (ccc はニックネームの色)、
  host_xxx (xxx はメッセージのユーザ名 + ホスト名部分)、
  irc_xxx (xxx はコマンド名または番号、/server raw または /debug tags で確認)、
  irc_numeric、irc_error、irc_action、irc_ctcp、irc_ctcp_reply、irc_smart_filter、away_info。
バッファ内でタグを見るには: /debug tags

例:
  全てのバッファで IRC スマートフィルタを使用:
    /filter add irc_smart * irc_smart_filter *
  名前に "#weechat" を含むバッファを除いた全てのバッファで IRC スマートフィルタを使用:
    /filter add irc_smart *,!*#weechat* irc_smart_filter *
  全ての IRC join/part/quit メッセージをフィルタ:
    /filter add joinquit * irc_join,irc_part,irc_quit *
  チャンネルに入った時や /names で表示されるニックネームをフィルタ:
    /filter add nicks * irc_366 *
  IRC チャンネル #weechat で "toto" を含むニックネームをフィルタ:
    /filter add toto irc.freenode.#weechat nick_toto *
  ニックネーム "toto" からの IRC の参加/アクションメッセージをフィルタ:
    /filter add toto * nick_toto+irc_join,nick_toto+irc_action *
  IRC チャンネル #weechat で "weechat sucks" を含む行をフィルタ:
    /filter add sucks irc.freenode.#weechat * weechat sucks
  すべてのバッファで "WeeChat sucks" と完全に一致する行をフィルタ:
    /filter add sucks2 * * (?-i)^WeeChat sucks$
----

[[command_weechat_help]]
* `+help+`: コマンドとオプションに関するヘルプを表示

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

    -list: プラグイン毎にコマンドをリストアップ (引数が無ければ、このリストを表示)
-listfull: プラグイン毎に説明付きでコマンドをリストアップ
   plugin: このプラグインに関するコマンドをリストアップ
  command: コマンドの名前
   option: オプションの名前 (リストを見るには /set を使用)
----

[[command_weechat_history]]
* `+history+`: バッファコマンド履歴を表示

----
/history  clear
          <value>

clear: 履歴の削除
value: 表示する履歴エントリの数
----

[[command_weechat_input]]
* `+input+`: コマンドライン関数

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

アクションリスト:
  return: "enter" キーをシミュレート
  complete_next: 次の補完候補で単語を補完
  complete_previous: 一つ前の補完候補で単語を補完
  search_text_here: 現在の位置でテキストを検索
  search_text: バッファ内のテキストを検索
  search_switch_case: 完全一致検索に変更
  search_switch_regex: 検索タイプの切り替え: 文字列/正規表現
  search_switch_where: 検索範囲の切り替え: メッセージ/プレフィックス
  search_previous: 一つ前の行を検索
  search_next: 次の行を検索
  search_stop_here: 現在の位置で検索を終了
  search_stop: 検索を終了
  delete_previous_char: 一つ前の文字を削除
  delete_next_char: 次の文字を削除
  delete_previous_word: 一つ前の単語を削除
  delete_next_word: 次の単語を削除
  delete_beginning_of_line: 行の最初からカーソル位置までを削除
  delete_end_of_line: カーソルから行の最後までを削除
  delete_line: 行を削除
  clipboard_paste: WeeChat 専用の内部クリップボードの内容をペースト
  transpose_chars: 2 つの文字を入れ替え
  undo: 最新のコマンドラインアクションまで元に戻す
  redo: 最新のコマンドラインアクションまでやり直す
  move_beginning_of_line: カーソルを行頭に移動
  move_end_of_line: カーソルを行末まで移動
  move_previous_char: カーソルを一つ前の文字に移動
  move_next_char: カーソルを次の文字に移動
  move_previous_word: カーソルを一つ前の単語に移動
  move_next_word: カーソルを次の単語に移動
  history_previous: 現在のバッファ履歴のひとつ前のコマンドを再呼び出し
  history_next: 現在のバッファ履歴の次のコマンドを再呼び出し
  history_global_previous: グローバル履歴の一つ前のコマンドを再呼び出し
  history_global_next: グローバル履歴の次のコマンドを再呼び出し
  jump_smart: 次のアクティブバッファに飛ぶ
  jump_last_buffer_displayed: 表示されている最後のバッファに移動 (最新のバッファ移動の一つ前に表示されていたバッファ)
  jump_previously_visited_buffer: 一つ前に訪れたバッファに移動
  jump_next_visited_buffer: 次に訪れたバッファに移動
  hotlist_clear: ホットリストを消去 (オプション引数: "lowest" はホットリスト内の最も低いレベルだけを消去。"highest" はホットリスト内の最も高いレベルだけを消去。レベルマスクは 1 (参加/退出)、2 (メッセージ)、4 (プライベートメッセージ)、8 (ハイライト) を合計した整数値で指定したレベルを消去)
  grab_key: キーを横取り (任意引数: 最後の横取りからの遅延時間、デフォルトは 500 ミリ秒)
  grab_key_command: あるコマンドに関連してキーを横取り (任意引数: 最後の横取りからの遅延時間、デフォルトは 500 ミリ秒)
  grab_mouse: grab マウスイベントコードを横取り
  grab_mouse_area: 範囲指定のマウスイベントコードを横取り
  set_unread: 全てのバッファに対して未読マーカーを設定
  set_unread_current_buffer: 現在のバッファに対して未読マーカーを設定
  switch_active_buffer: 次のマージされたバッファに移動
  switch_active_buffer_previous: 一つ前のマージされたバッファに移動
  zoom_merged_buffer: マージされたバッファにズーム
  insert: コマンドラインにテキストを挿入 (エスケープ文字も可、/help print を参照してください)
  send: バッファにテキストを送信
  paste_start: ペーストの開始 (括弧付きペーストモード)
  paste_stop: ペーストの終了 (括弧付きペーストモード)

これらのコマンドはキーバインドかプラグインで利用できます。
----

[[command_weechat_key]]
* `+key+`: キーの割り当てと割り当て解除

----
/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: 現在のキーをリストアップ (引数無しの場合、このリストが表示されます)
listdefault: デフォルトキーをリストアップ
   listdiff: デフォルトと現在のキーの違いをリストアップ (追加、再定義、削除されたキー)
    context: コンテキストの名前 ("default" または "search")
       bind: キーにコマンドを割り当てるか、キーに割り当てられたコマンドを表示 ("default" コンテキストに対する)
   bindctxt: キーにコマンドを割り当てるか、キーに割り当てられたコマンドを表示 (指定されたコンテキストに対する)
    command: コマンド (複数のコマンドはセミコロンで分けて書く)
     unbind: キーバインドを削除 ("default" コンテキストに対する)
 unbindctxt: キーバインドを削除 (指定されたコンテキストに対する)
      reset: キーをデフォルトの割り当てにリセットする ("default" コンテキストに対する)
  resetctxt: キーをデフォルトの割り当てにリセットする (指定されたコンテキストに対する)
   resetall: デフォルトの割り当てにリストアし、全ての個人的な設定を削除 (注意して使用!)
    missing: 未割り当てのキーを追加 (デフォルトの割り当てに無い)、新しい WeeChat バージョンをインストールした後に便利

キーにコマンドを割り当てる場合、alt+k (または Esc の後に k) した後に、割り当てたいキーを押すことをお勧めします: これはコマンドラインにキーコードを入力することになります。

"mouse" コンテント ("cursor" コンテキストの一部) に対しては、キーは以下の書式: "@area:key" または "@area1>area2:key"。ここで、area は以下の値を取れます:
          *: 画面上の任意のエリア
       chat: チャットエリア (任意のバッファ)
  chat(xxx): 名前 "xxx" を持つチャットエリア (プラグイン含む完全な名前)
     bar(*): 任意のバー
   bar(xxx): バー "xxx"
    item(*): 任意のバー要素
  item(xxx): バー要素 "xxx"
多くのマウスイベントにマッチさせるにはワイルドカード "*" をキーに使ってください。
"hsignal:name" という書式のコマンドに対する特別な値はマウスコンテキストに使えます、これはフォーカスハッシュテーブルを引数にして hsignal "name" を送ります。
その他の特別な値 "-" はキーを無効化するために利用されます。(これはキーの探索時には無視されます)

例:
  alt-t キーをニックネームリストバーに割り当てる:
    /key bind meta-t /bar toggle nicklist
  alt-r キーを #weechat IRC チャンネルへの移動に割り当てる:
    /key bind meta-r /buffer #weechat
  alt-r キーの割り当てをデフォルトに戻す:
    /key reset meta-r
  "tab" キーをバッファ検索の終了に割り当てる:
    /key bindctxt search ctrl-I /input search_stop
  ニック上でのマウスのセンターボタンをニックネームの情報取得に割り当てる:
    /key bindctxt mouse @item(buffer_nicklist):button3 /msg nickserv info ${nick}
----

[[command_weechat_layout]]
* `+layout+`: バッファ/ウィンドウレイアウトの管理

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

  store: レイアウトに現在のバッファ/ウィンドウを保存
  apply: 保存されたレイアウトを適用
  leave: 現在のレイアウトを保持する (レイアウトを更新しない)
    del: レイアウトとして保存されているバッファとウィンドウを削除
         (名前の後に "バッファ" や "ウィンドウ" を指定しない場合、レイアウトを削除)
 rename: レイアウトのリネーム
   name: 保存されたレイアウトの名前 (初期状態は "default")
buffers: バッファのみに対してレイアウトを保存/適用 (バッファの順番)
windows: ウィンドウのみに対してレイアウトを保存/適用 (それぞれのウィンドウに表示されるバッファ)

引数を指定しなかった場合、保存されたレイアウトを表示します。

"weechat.look.save_layout_on_exit" オプションを使えば、現在のレイアウトを /quit コマンドの実行時に保存することが可能です。
----

[[command_weechat_mouse]]
* `+mouse+`: マウス操作

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

 enable: マウスの有効化
disable: マウスの無効化
 toggle: マウスの有効無効の切り替え
  delay: 初期マウス状態がリストアされてからの遅延時間 (秒単位) (一時的にマウスを無効化するときに便利)

マウス状態はオプション "weechat.look.mouse" に保存されます。

例:
  マウスの有効化:
    /mouse enable
  5 秒間マウスの有効無効を切り替え:
    /mouse toggle 5
----

[[command_weechat_mute]]
* `+mute+`: 静かにコマンドを実行

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

   -core: WeeChat コアバッファへの出力を抑制
-current: 現在のバッファへの出力を抑制
 -buffer: 指定したバッファへの出力を抑制
    name: 完全なバッファの名前 (例: "irc.server.freenode"、"irc.freenode.#weechat")
 command: 静かに実行するコマンド (最初に '/' が無い場合は自動的に追加されます)

ターゲット (-core、-current、-buffer) が指定されなかった場合、デフォルトでは全ての出力を抑制します。

例:
  save を行う:
    /mute save
  現在の IRC チャンネルへのメッセージ:
    /mute -current msg * hi!
  #weechat チャンネルへのメッセージ:
    /mute -buffer irc.freenode.#weechat msg #weechat hi!
----

[[command_weechat_plugin]]
* `+plugin+`: プラグインの表示/ロード/アンロード

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

     list: ロードされたプラグインをリストアップ
 listfull: ロードされたプラグインをリストアップ (詳細)
     load: プラグインをロード
 autoload: システムかユーザディレクトリ指定の自動ロードプラグインをロード
   reload: プラグインを再ロード (名前が指定されない場合は、全てのプラグインをアンロードし、プラグインを自動ロード)
   unload: プラグインのアンロード (名前が指定されない場合は、全てのプラグインをアンロード)
 filename: ロードするプラグイン (ファイル)
     name: プラグイン名
arguments: ロードするプラグインに与える引数

引数無しでは、ロードされたプラグインをリストアップ。
----

[[command_weechat_print]]
* `+print+`: バッファ内にテキストを表示

----
/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: 指定したバッファにテキストを表示 (デフォルト: コマンドを実行したバッファ)
-newbuffer: 新しいバッファの作成、そのバッファ内にテキストの表示
     -free: 自由内容バッファの作成 (-newbuffer と共に使用)
   -switch: 指定したバッファに切り替え
     -core: "-buffer core.weechat" のエイリアス
  -current: 現在のバッファにテキストを表示
        -y: 指定した行番号に表示 (自由内容バッファ専用)
      line: 自由内容バッファの行番号 (1 行目は 0、負数は最後の行から数えた行: -1 = 最終行から数えて 1 行目、-2 = 最終行から数えて 2 行目、など)
   -escape: エスケープ文字を解釈 (例えば \a、\07、\x07)
     -date: メッセージの日付、書式:
              -n: 今から 'n' 秒前
              +n: 今から 'n' 秒後
               n: エポックから 'n' 秒目 (man time を参照してください)
              日付/時間 (ISO 8601): yyyy-mm-ddThh:mm:ss、例: 2014-01-19T04:32:55
              時間: hh:mm:ss (example: 04:32:55)
     -tags: タグのコンマ区切りリスト (よく使うタグのリストは /help filter を参照してください)
      text: 表示するテキスト (プレフィックスとメッセージは必ず \t で区切ってください、"-" で始まるテキストは "\" を前置してください)
   -stdout: 標準出力にテキストを表示 (エスケープ文字を解釈)
   -stderr: 標準エラー出力にテキストを表示 (エスケープ文字を解釈)
     -beep: "-stderr \a" の別名

オプション -action ... -quit をつけた場合、プレフィックスは "weechat.look.prefix_*" で定義されているものになります。

以下のエスケープ文字を使うことができます:
  \" \\ \a \b \e \f \n \r \t \v \0ooo \xhh \uhhhh \Uhhhhhhhh

例:
  コアバッファにハイライトを付けてリマインダを表示:
    /print -core -tags notify_highlight Reminder: buy milk
  コアバッファにエラーを表示:
    /print -core -error Some error here
  コアバッファにプレフィックス "abc" を付けてメッセージを表示:
    /print -core abc\tThe message
  チャンネル #weechat にメッセージを表示:
    /print -buffer irc.freenode.#weechat Message on #weechat
  雪だるまを表示 (U+2603):
    /print -escape \u2603
  警告を送信 (BEL):
    /print -beep
----

[[command_weechat_proxy]]
* `+proxy+`: プロキシの管理

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

    list: 全てのプロキシをリストアップ
     add: 新しいプロキシを追加
    name: プロキシの名前 (一意的な)
    type: http、socks4、socks5
 address: IP アドレスまたはホスト名
    port: ポート
username: ユーザ名 (任意)
password: パスワード (任意)
     del: プロキシの削除 (-all を付ければ全てのプロキシを削除)
     set: プロキシのプロパティを設定
  option: 変更するオプション (オプションリストを見るには、/set weechat.proxy.<proxyname>.*)
   value: オプションに設定する新しい値

例:
  ローカルホストの 8888 番ポートで動いている http プロキシを追加:
    /proxy add local http 127.0.0.1 8888
  IPv6 プロトコルを使う http プロキシを追加:
    /proxy add local http ::1 8888
    /proxy set local ipv6 on
  ユーザ名とパスワードが必要な socks5 プロキシを追加:
    /proxy add myproxy socks5 sample.host.org 3128 myuser mypass
  プロキシを削除:
    /proxy del myproxy
----

[[command_weechat_quit]]
* `+quit+`: WeeChat の終了

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

     -yes: weechat.look.confirm_quit オプションが有効な場合に必要
arguments: "quit" シグナルと共に送られるテキスト
           (例えば irc プラグインはサーバに quit メッセージを送る際にこのテキストを使います)

デフォルト設定では、終了時に設定ファイルを保存します (オプション "weechat.look.save_config_on_exit" 参照)。また、終了時に現在のレイアウトを保存することも可能です (オプション "weechat.look.save_layout_on_exit" 参照)。
----

[[command_weechat_reload]]
* `+reload+`: ディスクから設定ファイルをリロード

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

file: リロードする設定ファイル (拡張子 ".conf" は不要)

引数無しでは、全てのファイル (WeeChat とプラグイン) がリロードされます。
----

[[command_weechat_repeat]]
* `+repeat+`: 複数回コマンドを実行

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

  delay: コマンドの実行間隔
   unit: 任意、以下の値を使ってください:
           ms: ミリ秒
            s: 秒 (デフォルト)
            m: 分
            h: 時間
  count: コマンドの実行回数
command: 実行するコマンド (最初に '/' が無い場合はバッファに送信するテキストと解釈されます)

注意: コマンドは /repeat を実行したバッファで実行されます (バッファが存在しない場合、コマンドは実行されません)。

例:
  2 ページ分上方向にスクロール:
    /repeat 2 /window page_up
----

[[command_weechat_save]]
* `+save+`: 設定をファイルに保存

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

file: 保存する設定ファイル (拡張子 ".conf" は不要)

引数無しでは、全てのファイル (WeeChat とプラグイン) が保存されます。

デフォルト設定では、/quit コマンドの実行時にすべての設定ファイルがディスクに保存されます (オプション "weechat.look.save_config_on_exit" 参照)。
----

[[command_weechat_secure]]
* `+secure+`: 保護データを管理します (パスワードやプライベートデータは暗号化されて sec.conf ファイルに保存)

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

passphrase: パスフレーズを変更 (パスフレーズがない場合、sec.conf ファイルに平文でデータを保存します)
   -delete: パスフレーズを削除
   decrypt: 暗号化されているデータを復号化 (起動時にパスフレーズが設定されていない場合に起きます)
  -discard: 全ての暗号化データを破棄
       set: 保護データを追加または変更
       del: 保護データを削除

引数がない場合、新しいバッファに保護データを表示します。

保護バッファ内で利用可能なキー:
  alt+v  値を切り替えます

パスフレーズを利用する場合 (データが暗号化されている場合)、WeeChat は起動時にパスフレーズを尋ねます。
入力を回避するには、環境変数 "WEECHAT_PASSPHRASE" を利用するか (WeeChat は /upgrade の時に同じ変数を利用します)、sec.crypt.passphrase_file オプションを設定してファイルからパスフレーズを読み込みます (/help sec.crypt.passphrase_file を参照してください)。

${sec.data.xxx} の形で書かれた保護データは以下の様に利用できます:
  - /eval コマンド
  - コマンドライン引数 "--run-command"
  - weechat.startup.command_{before|after}_plugins オプション
  - パスワードや機密データを含むと思われるその他のオプション (例えば、プロキシ、irc サーバ、リレー); 保護データが評価されるかを確認するには各オプションの /help を参照してください。

例:
  パスフレーズを設定:
    /secure passphrase this is my passphrase
  freenode の SASL パスワードを暗号化:
    /secure set freenode mypassword
    /set irc.server.freenode.sasl_password "${sec.data.freenode}"
  oftc の nickserv 用パスワードを暗号化:
    /secure set oftc mypassword
    /set irc.server.oftc.command "/msg nickserv identify ${sec.data.oftc}"
  ニックネーム "mynick" を取り戻すためのエイリアス ghost を設定
    /alias add ghost /eval /msg -server freenode nickserv ghost mynick ${sec.data.freenode}
----

[[command_weechat_set]]
* `+set+`: 設定オプションと環境変数を設定

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

option: オプションの名前 (value を指定せずにワイルドカード "*" を使えばオプションをリストアップできます)
 value: オプションに対する新しい値、以下の型に従う:
          boolean: on、off、toggle
          integer: 番号、++番号、--番号
           string: 任意の文字列 (空文字列は "")
            color: 色の名前、++色番号、--色番号
        注意: どんな型であっても、オプションの値を削除する (未定義値にする) には null が使えます。これはいくつかの特別なプラグイン変数でのみ有効です。
  diff: 変更されたオプションのみを表示
   env: 環境変数を表示または設定 (変数の値を削除するには値に "" を入れてください)

例:
  ハイライトに関するオプションを表示:
    /set *highlight*
  highlight に単語を追加:
    /set weechat.look.highlight "word"
  変更されたオプションを表示:
    /set diff
  irc プラグインのオプションの内、変更されたオプションを表示:
    /set diff irc.*
  環境変数 LANG の値を表示:
    /set env LANG
  環境変数 LANG を設定し、これを使う:
    /set env LANG fr_FR.UTF-8
    /upgrade
  環境変数 ABC の値を削除する:
    /set env ABC ""
----

[[command_weechat_unset]]
* `+unset+`: オプションのアンセット/リセット

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

option: オプションの名前
 -mask: オプション内でマスクを使う (大量のオプションをリセットするにはワイルドカード "*" を使ってください、使用に注意!)

オプションの種類によって (一般的なオプションを) リセットまたは (サーバなどの任意な設定を) 削除が行われます。

例:
  オプションのリセット:
    /unset weechat.look.item_time_format
  全ての色関連オプションをリセット:
    /unset -mask weechat.color.*
----

[[command_weechat_upgrade]]
* `+upgrade+`: サーバとの接続を維持して WeeChat 実行バイナリを再読込

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

          -yes: "weechat.look.confirm_upgrade" オプションが有効化されていた場合、このオプションは必須です。
path_to_binary: WeeChat バイナリへのパス (デフォルトは現在のバイナリ)
        -dummy: 何もしない (補完された "-quit" オプションを不用意に使わないためのオプション)
         -quit: *すべての* 接続を閉じ、セッションを保存して WeeChat を終了。遅延復帰 (詳しくは後述) が可能になります。

このコマンドは起動中の WeeChat セッションのアップグレードとリロードを行います。このコマンドを実行する前に、新しい WeeChat バイナリをコンパイルするか、パッケージマネージャでインストールしなければいけません。

注意: SSL 接続はアップグレード中に破棄されます、これは今のところ GnuTLS では SSL セッションのリロードができないからです。アップグレードの後に自動的に再接続されます。

アップグレードは 4 つの手順を踏みます:
  1. コアとプラグイン (バッファ、履歴、...) のセッションをファイルに保存
  2. 全てのプラグインをアンロード (設定ファイル (*.conf) はディスクに書き込まれます)
  3. WeeChat 設定を保存 (weechat.conf)
  4. 新しい WeeChat バイナリを実行してセッションをリロード。

オプション "-quit" を使うと、上の挙動が少し変わります:
  1. *すべての* 接続を閉じる (irc、xfer、relay、...)
  2. すべてのセッションをファイルに保存 (*.upgrade)
  3. すべてのプラグインをアンロード
  4. WeeChat 設定を保存
  5. WeeChat を終了
この後、セッションを回復させるには weechat --upgrade を使ってください。
重要: 完全に同一の設定で (*.conf ファイルで) セッションを回復させてください。
"~/.weechat" ディレクトリの内容をコピーすれば異なるマシンで WeeChat のセッションを回復することも可能です。
----

[[command_weechat_uptime]]
* `+uptime+`: WeeChat 連続稼働時間の表示

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

 -o: 連続稼働時間を現在のバッファの入力に送る (英語で)
-ol: 連続稼働時間を現在のバッファの入力に送る (翻訳済み)
----

[[command_weechat_version]]
* `+version+`: WeeChat のバージョンとコンパイル日時を表示

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

 -o: バージョンを現在のバッファの入力に送る (英語で)
-ol: バージョンを現在のバッファの入力に送る (翻訳済み)

任意のバッファでこのコマンドを実行するにはデフォルトエイリアス /v を使ってください (irc バッファでこのコマンドを実行した場合、irc コマンド /version の意味になります)。
----

[[command_weechat_wait]]
* `+wait+`: コマンドの実行を予約

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

 number: 遅延時間 (整数)
   unit: 任意、値は:
           ms: ミリ秒
            s: 秒 (デフォルト)
            m: 分
            h: 時
command: 実行するコマンド (コマンドが '/' で始まらない場合はバッファに送信するテキスト)

注意: コマンドは /wait が実行されたバッファで実行されます (バッファが見つからない場合 (例えばコマンド実行前にバッファが閉じられた場合) は、コマンドは WeeChat コアバッファで実行されます)。

例:
  10 秒後にチャンネルに入る:
    /wait 10 /join #test
  15 分後に離席状態に変更:
    /wait 15m /away -all I'm away
  2 分後に 'hello' と発言:
    /wait 2m hello
----

[[command_weechat_window]]
* `+window+`: ウィンドウの操作

----
/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+`: バッファのリストを表示するバー要素

----
/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+`: 現在のバッファの文字セットを変更

----
/charset  decode|encode <charset>
          reset

 decode: デコード文字セットを変更
 encode: エンコード文字セットを変更
charset: 現在のバッファの新しい文字セット
  reset: 現在のバッファの文字セットをリセット
----
// end::charset_commands[]

// tag::exec_commands[]
[[command_exec_exec]]
* `+exec+`: 外部コマンドを実行

----
/exec  -list
       [-sh|-nosh] [-bg|-nobg] [-stdin|-nostdin] [-buffer <name>] [-l|-o|-oc|-n|-nf] [-oerr] [-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)
   -oerr: also send stderr (error output) to the buffer (can be used only with options -o and -oc)
     -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 プラグイン設定

----
/fifo  enable|disable|toggle

 enable: FIFO パイプを有効化します
disable: FIFO パイプを無効化します
 toggle: FIFO パイプの有効無効を切り替えます

FIFO パイプは WeeChat をリモート操作する際に使われます: FIFO パイプを通じてシェルからコマンドやテキストを送信できます。
デフォルトの場合 FIFO パイプは ~/.weechat/weechat_fifo です。

書式は次のうちのどれか 1 つを使ってください:
  plugin.buffer *テキストまたはコマンド
  *テキストまたはコマンド

freenode のニックネームを変更する例:
  echo 'irc.server.freenode */nick newnick' >~/.weechat/weechat_fifo

詳しい情報と例はユーザーズガイドを参照してください。

例:
  /fifo toggle
----
// end::fifo_commands[]

// tag::fset_commands[]
[[command_fset_fset]]
* `+fset+`: WeeChat とプラグインのオプションを高速設定

----
/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+`: スクリプトをリストアップ/ロード/アンロード

----
/guile  list|listfull [<name>]
        load [-q] <filename>
        autoload
        reload|unload [-q] [<name>]
        eval [-o|-oc] <code>
        version

    list: ロード済みスクリプトをリストアップ
listfull: ロード済みスクリプトをリストアップ (詳細)
    load: スクリプトをロード
autoload: "autoload" ディレクトリに含まれる全てのスクリプトをロード
  reload: スクリプトのリロード (名前を指定しなかった場合、全てのスクリプトをアンロードし、"autoload" ディレクトリに含まれる全てのスクリプトをロード)
  unload: スクリプトのアンロード (名前を指定しなかった場合、全てのスクリプトをアンロード)
filename: ロードするスクリプト (ファイル)
      -q: 出力抑制モード: メッセージを表示しない
    name: スクリプト名 (名前は "register" 関数を呼び出すために使われる)
    eval: ソースコードを評価して現在のバッファへ結果を表示
      -o: バッファへ評価結果を送信するがコマンドを実行しない
     -oc: バッファへ評価結果を送信してコマンドを実行
    code: 評価するソースコード
 version: 使用中のインタプリタのバージョンを表示

引数無しの場合、全てのロード済みスクリプトをリストアップします。
----
// end::guile_commands[]

// tag::javascript_commands[]
[[command_javascript_javascript]]
* `+javascript+`: スクリプトをリストアップ/ロード/アンロード

----
/javascript  list|listfull [<name>]
             load [-q] <filename>
             autoload
             reload|unload [-q] [<name>]
             eval [-o|-oc] <code>
             version

    list: ロード済みスクリプトをリストアップ
listfull: ロード済みスクリプトをリストアップ (詳細)
    load: スクリプトをロード
autoload: "autoload" ディレクトリに含まれる全てのスクリプトをロード
  reload: スクリプトのリロード (名前を指定しなかった場合、全てのスクリプトをアンロードし、"autoload" ディレクトリに含まれる全てのスクリプトをロード)
  unload: スクリプトのアンロード (名前を指定しなかった場合、全てのスクリプトをアンロード)
filename: ロードするスクリプト (ファイル)
      -q: 出力抑制モード: メッセージを表示しない
    name: スクリプト名 (名前は "register" 関数を呼び出すために使われる)
    eval: ソースコードを評価して現在のバッファへ結果を表示
      -o: バッファへ評価結果を送信するがコマンドを実行しない
     -oc: バッファへ評価結果を送信してコマンドを実行
    code: 評価するソースコード
 version: 使用中のインタプリタのバージョンを表示

引数無しの場合、全てのロード済みスクリプトをリストアップします。
----
// end::javascript_commands[]

// tag::logger_commands[]
[[command_logger_logger]]
* `+logger+`: logger プラグイン設定

----
/logger  list
         set <level>
         flush
         disable

   list: オープンされたバッファのログ保存設定を表示
    set: 現在のバッファのログ保存レベルを設定
  level: ログ保存されるメッセージのレベル (0 = ログ保存しない、1 = いくつかのメッセージ (最も重要) .. 9 = 全てのメッセージ)
  flush: 全てのログファイルに今すぐ書き込む
disable: 現在のバッファのログ保存を無効化 (レベルを 0 に設定)

オプション "logger.level.*" と "logger.mask.*" は任意のバッファに対するログレベルとログ保存先の設定を意味します。

IRC プラグインで使われるログレベル:
  1: ユーザメッセージ (チャンネルとプライベート)、通知 (サーバとチャンネル)
  2: ニックネームの変更
  3: サーバメッセージ
  4: 参加/退出/終了
  9: その他の全てのメッセージ

例:
  現在のバッファのレベルを 5 に設定:
    /logger set 5
  現在のバッファのログ保存を無効化:
    /logger disable
  全ての IRC バッファのレベルを 3 に設定:
    /set logger.level.irc 3
  メインの WeeChat バッファのログ保存を無効化:
    /set logger.level.core.weechat 0
  IRC サーバごとのディレクトリ、チャンネルごとのファイルを使う:
    /set logger.mask.irc "$server/$channel.weechatlog"
----
// end::logger_commands[]

// tag::lua_commands[]
[[command_lua_lua]]
* `+lua+`: スクリプトをリストアップ/ロード/アンロード

----
/lua  list|listfull [<name>]
      load [-q] <filename>
      autoload
      reload|unload [-q] [<name>]
      eval [-o|-oc] <code>
      version

    list: ロード済みスクリプトをリストアップ
listfull: ロード済みスクリプトをリストアップ (詳細)
    load: スクリプトをロード
autoload: "autoload" ディレクトリに含まれる全てのスクリプトをロード
  reload: スクリプトのリロード (名前を指定しなかった場合、全てのスクリプトをアンロードし、"autoload" ディレクトリに含まれる全てのスクリプトをロード)
  unload: スクリプトのアンロード (名前を指定しなかった場合、全てのスクリプトをアンロード)
filename: ロードするスクリプト (ファイル)
      -q: 出力抑制モード: メッセージを表示しない
    name: スクリプト名 (名前は "register" 関数を呼び出すために使われる)
    eval: ソースコードを評価して現在のバッファへ結果を表示
      -o: バッファへ評価結果を送信するがコマンドを実行しない
     -oc: バッファへ評価結果を送信してコマンドを実行
    code: 評価するソースコード
 version: 使用中のインタプリタのバージョンを表示

引数無しの場合、全てのロード済みスクリプトをリストアップします。
----
// end::lua_commands[]

// tag::xfer_commands[]
[[command_xfer_me]]
* `+me+`: CTCP action をリモートホストに送信

----
/me  <message>

message: 送信メッセージ
----

[[command_xfer_xfer]]
* `+xfer+`: xfer 管理

----
/xfer  [list|listfull]

    list: xfer をリストアップ
listfull: xfer をリストアップ (詳細)

引数無しでは、xfer リストを含むバッファを開きます。
----
// end::xfer_commands[]

// tag::perl_commands[]
[[command_perl_perl]]
* `+perl+`: スクリプトをリストアップ/ロード/アンロード

----
/perl  list|listfull [<name>]
       load [-q] <filename>
       autoload
       reload|unload [-q] [<name>]
       eval [-o|-oc] <code>
       version

    list: ロード済みスクリプトをリストアップ
listfull: ロード済みスクリプトをリストアップ (詳細)
    load: スクリプトをロード
autoload: "autoload" ディレクトリに含まれる全てのスクリプトをロード
  reload: スクリプトのリロード (名前を指定しなかった場合、全てのスクリプトをアンロードし、"autoload" ディレクトリに含まれる全てのスクリプトをロード)
  unload: スクリプトのアンロード (名前を指定しなかった場合、全てのスクリプトをアンロード)
filename: ロードするスクリプト (ファイル)
      -q: 出力抑制モード: メッセージを表示しない
    name: スクリプト名 (名前は "register" 関数を呼び出すために使われる)
    eval: ソースコードを評価して現在のバッファへ結果を表示
      -o: バッファへ評価結果を送信するがコマンドを実行しない
     -oc: バッファへ評価結果を送信してコマンドを実行
    code: 評価するソースコード
 version: 使用中のインタプリタのバージョンを表示

引数無しの場合、全てのロード済みスクリプトをリストアップします。
----
// end::perl_commands[]

// tag::php_commands[]
[[command_php_php]]
* `+php+`: スクリプトをリストアップ/ロード/アンロード

----
/php  list|listfull [<name>]
      load [-q] <filename>
      autoload
      reload|unload [-q] [<name>]
      eval [-o|-oc] <code>
      version

    list: ロード済みスクリプトをリストアップ
listfull: ロード済みスクリプトをリストアップ (詳細)
    load: スクリプトをロード
autoload: "autoload" ディレクトリに含まれる全てのスクリプトをロード
  reload: スクリプトのリロード (名前を指定しなかった場合、全てのスクリプトをアンロードし、"autoload" ディレクトリに含まれる全てのスクリプトをロード)
  unload: スクリプトのアンロード (名前を指定しなかった場合、全てのスクリプトをアンロード)
filename: ロードするスクリプト (ファイル)
      -q: 出力抑制モード: メッセージを表示しない
    name: スクリプト名 (名前は "register" 関数を呼び出すために使われる)
    eval: ソースコードを評価して現在のバッファへ結果を表示
      -o: バッファへ評価結果を送信するがコマンドを実行しない
     -oc: バッファへ評価結果を送信してコマンドを実行
    code: 評価するソースコード
 version: 使用中のインタプリタのバージョンを表示

引数無しの場合、全てのロード済みスクリプトをリストアップします。
----
// end::php_commands[]

// tag::python_commands[]
[[command_python_python]]
* `+python+`: スクリプトをリストアップ/ロード/アンロード

----
/python  list|listfull [<name>]
         load [-q] <filename>
         autoload
         reload|unload [-q] [<name>]
         eval [-o|-oc] <code>
         version

    list: ロード済みスクリプトをリストアップ
listfull: ロード済みスクリプトをリストアップ (詳細)
    load: スクリプトをロード
autoload: "autoload" ディレクトリに含まれる全てのスクリプトをロード
  reload: スクリプトのリロード (名前を指定しなかった場合、全てのスクリプトをアンロードし、"autoload" ディレクトリに含まれる全てのスクリプトをロード)
  unload: スクリプトのアンロード (名前を指定しなかった場合、全てのスクリプトをアンロード)
filename: ロードするスクリプト (ファイル)
      -q: 出力抑制モード: メッセージを表示しない
    name: スクリプト名 (名前は "register" 関数を呼び出すために使われる)
    eval: ソースコードを評価して現在のバッファへ結果を表示
      -o: バッファへ評価結果を送信するがコマンドを実行しない
     -oc: バッファへ評価結果を送信してコマンドを実行
    code: 評価するソースコード
 version: 使用中のインタプリタのバージョンを表示

引数無しの場合、全てのロード済みスクリプトをリストアップします。
----
// end::python_commands[]

// tag::relay_commands[]
[[command_relay_relay]]
* `+relay+`: リレー管理

----
/relay  list|listfull|listrelay
        add <name> <port>|<path>
        del|start|restart|stop <name>
        raw
        sslcertkey

         list: リレーするクライアントをリストアップ (アクティブなもののみ)
     listfull: リレーするクライアントをリストアップ (詳細、全てのリレー)
    listrelay: リレーをリストアップ (名前とポート番号)
          add: リレーを追加 (ポート/パスで接続を待ち受ける)
          del: リレーを削除 (クライアントとの接続は保持)
        start: ポートリッスンを開始する
      restart: サーバソケットを閉じて同じポートで接続を待つ (クライアントとの接続は保持)
         stop: サーバソケットを閉じる (クライアントとの接続は保持)
         name: リレー名 (以下の書式を参照してください)
         port: リレーが使うポート
         path: リレーが使うパス (UNIX ドメインソケット); 文字列先頭の "%h" は WeeChat ホーム (デフォルトは "~/.weechat") で置き換えられ、内容は評価されます (/help eval を参照してください)
          raw: 生リレーデータを表示するバッファを開く
   sslcertkey: オプション relay.network.ssl_cert_key のパスを使って SSL 証明書/鍵を指定

リレー名の書式: [ipv4.][ipv6.][ssl.]<protocol.name> または unix.[ssl.]<protocol.name>
         ipv4: IPv4 を強制的に利用
         ipv6: IPv6 を強制的に利用
          ssl: SSL を有効化
         unix: UNIX ドメインソケットを利用
protocol.name: リレーするプロトコルと名前:
                 - "irc" プロトコル: name は共有するサーバ名 (任意指定、指定しない場合、サーバ名は "PASS" コマンドでクライアントが送信するものと同じでなければいけません、"PASS" コマンドの書式は "PASS server:password")
                 - "weechat" プロトコル (name は使われません)

"irc" プロトコルを指定した場合、どんな IRC クライアント (WeeChat 自身を含めて) でもポートに接続することができます。
"weechat" プロトコルを指定した場合、リモートインターフェースを使ってポートに接続することができます、参照: https://weechat.org/about/interfaces

引数無しの場合、リレークライアントのリストを含むバッファを開く

例:
  サーバ "freenode" に対する irc プロキシを設定:
    /relay add irc.freenode 8000
  サーバ "freenode" に対する SSL を有効化した irc プロキシを設定:
    /relay add ssl.irc.freenode 8001
  SSL を有効化してすべてのサーバに対する irc プロキシを設定 (クライアントがサーバを選ぶ):
    /relay add ssl.irc 8002
  weechat プロトコル:
    /relay add weechat 9000
  SSL を有効化した weechat プロトコル:
    /relay add ssl.weechat 9001
  SSL を有効にした weechat プロトコル、IPv4 だけを利用:
    /relay add ipv4.ssl.weechat 9001
  SSL を有効にした weechat プロトコル、IPv6 だけを利用:
    /relay add ipv6.ssl.weechat 9001
  SSL を有効にした weechat プロトコル、IPv4 と IPv6 を利用:
    /relay add ipv4.ipv6.ssl.weechat 9001
  UNIX ドメインソケットを介した weechat プロトコル:
    /relay add unix.weechat %h/relay_socket
----
// end::relay_commands[]

// tag::ruby_commands[]
[[command_ruby_ruby]]
* `+ruby+`: スクリプトをリストアップ/ロード/アンロード

----
/ruby  list|listfull [<name>]
       load [-q] <filename>
       autoload
       reload|unload [-q] [<name>]
       eval [-o|-oc] <code>
       version

    list: ロード済みスクリプトをリストアップ
listfull: ロード済みスクリプトをリストアップ (詳細)
    load: スクリプトをロード
autoload: "autoload" ディレクトリに含まれる全てのスクリプトをロード
  reload: スクリプトのリロード (名前を指定しなかった場合、全てのスクリプトをアンロードし、"autoload" ディレクトリに含まれる全てのスクリプトをロード)
  unload: スクリプトのアンロード (名前を指定しなかった場合、全てのスクリプトをアンロード)
filename: ロードするスクリプト (ファイル)
      -q: 出力抑制モード: メッセージを表示しない
    name: スクリプト名 (名前は "register" 関数を呼び出すために使われる)
    eval: ソースコードを評価して現在のバッファへ結果を表示
      -o: バッファへ評価結果を送信するがコマンドを実行しない
     -oc: バッファへ評価結果を送信してコマンドを実行
    code: 評価するソースコード
 version: 使用中のインタプリタのバージョンを表示

引数無しの場合、全てのロード済みスクリプトをリストアップします。
----
// end::ruby_commands[]

// tag::script_commands[]
[[command_script_script]]
* `+script+`: WeeChat スクリプトマネージャ

----
/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  enable|disable|toggle
        listdict
        setdict <dict>[,<dict>...]
        deldict
        addword [<dict>] <word>

  enable: スペルチェックの有効化
 disable: スペルチェックの無効化
  toggle: スペルチェックの有効無効を切り替え
listdict: インストール済み辞書を表示
 setdict: 現在のバッファ用の辞書を設定 (コンマで区切れば複数の辞書を指定可能)
 deldict: 現在のバッファ用の辞書を削除
 addword: 個人辞書に単語を追加

一部のコマンドを除いて '/' で始まる入力行はチェックされません (/set spell.check.commands を参照してください)。

全てのバッファでスペルチェックを有効化するには、"default_dict" オプションを設定した後に、スペルチェックを有効化してください。例:
  /set spell.check.default_dict "en"
  /spell enable

バーの中にスペル候補リストを表示するには、"spell_suggest" 要素を使ってください。

スペルチェックの有効無効を切り替えるデフォルトのキーは alt-s です。
----
// end::spell_commands[]

// tag::tcl_commands[]
[[command_tcl_tcl]]
* `+tcl+`: スクリプトをリストアップ/ロード/アンロード

----
/tcl  list|listfull [<name>]
      load [-q] <filename>
      autoload
      reload|unload [-q] [<name>]
      eval [-o|-oc] <code>
      version

    list: ロード済みスクリプトをリストアップ
listfull: ロード済みスクリプトをリストアップ (詳細)
    load: スクリプトをロード
autoload: "autoload" ディレクトリに含まれる全てのスクリプトをロード
  reload: スクリプトのリロード (名前を指定しなかった場合、全てのスクリプトをアンロードし、"autoload" ディレクトリに含まれる全てのスクリプトをロード)
  unload: スクリプトのアンロード (名前を指定しなかった場合、全てのスクリプトをアンロード)
filename: ロードするスクリプト (ファイル)
      -q: 出力抑制モード: メッセージを表示しない
    name: スクリプト名 (名前は "register" 関数を呼び出すために使われる)
    eval: ソースコードを評価して現在のバッファへ結果を表示
      -o: バッファへ評価結果を送信するがコマンドを実行しない
     -oc: バッファへ評価結果を送信してコマンドを実行
    code: 評価するソースコード
 version: 使用中のインタプリタのバージョンを表示

引数無しの場合、全てのロード済みスクリプトをリストアップします。
----
// end::tcl_commands[]

// tag::trigger_commands[]
[[command_trigger_trigger]]
* `+trigger+`: トリガ (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[]
