Note
この文書は WeeChat バージョン ≥ 0.3.0 向けに書かれました。

1. 一般

1.1. "WeeChat" という名前の由来は何ですか?

"Wee" は再帰的頭字語で、"Wee Enhanced Environment" の略です。 そのため、完全な名前は "Wee Enhanced Environment for Chat" です。

"Wee" はまた "とても小さい" を意味します。(もちろん、 その他の意味もありますが、それは WeeChat とは関係ありませんよ!)。

1.2. WeeChat を選ぶ理由は何ですか? X-Chat や Irssi は最高なのに…

なぜなら WeeChat はとても軽量で新しい機能を持っているからです。 いくつかの機能 (バージョン ≥ 0.3.x):

  • プラグインでマルチプロトコルをサポート (IRC、Jabber)

  • Curses の他に多くのリモート GUI をサポート(近日公開)

  • 256 色サポート

  • 多くの言語で利用可能

  • プラグインによる拡張 (C 言語、Perl、Python、Ruby、Lua、Tcl)

  • 任意の内容を持てるバッファ

  • タグや正規表現を用いた表示制限フィルタ

  • 水平垂直方向のウィンドウ分割

  • カスタマイズと拡張可能なバー

  • 組み込み済みのニックネームリスト

  • バッファリスト (buffers.pl スクリプト)

  • IRC プロキシ

  • IRC コマンドのリダイレクト

  • バッファ内のインクリメンタルテキスト検索、ハイライト部分へのジャンプ

  • リモート操作用の FIFO パイプ

  • aspell サポート

  • 2 つの文字セット (エンコード/デコード)

  • ゼロからの開発 (他のどんなクライアントにも基づかない)

  • マルチプラットフォーム

  • GPL に準拠してフリー

こののページに関するより詳しい情報: http://www.weechat.org/features

2. コンパイル / インストール

2.1. WeeChat には多くの GUI があると聞きました。コンパイル/利用方法を教えてください。

今のところ利用可能なのは Curses GUI だけです。

その他の GUI はリモートクライアントとして利用可能になる予定です(現在開発中)。

2.2. git リポジトリをクローンした後に WeeChat をコンパイルできません。

WeeChat をコンパイルするには cmake を使うことが推奨されています。

autotools を使って (cmake を使わずに) コンパイルする場合、 最新の autoconf と automake を使ってください。

他には "開発パッケージ" をインストール方法があります。この場合、 インストールするのに必要なパッケージの数が減ります。このパッケージは git リポジトリからほぼ毎日ビルドされます。このパッケージは厳密には git ベースではなく、 アップデートをインストールする場合には git をクローンする方法よりも不便であることに注意してください。

2.3. WeeChat を起動しました。でも何をすればいいかわかりません。

ヘルプを見るには、/help と入力してください。コマンドに関するヘルプを見るには、/help command と入力してください。 キーとコマンドはドキュメント内にリストアップされています。

新しいユーザはクイックスタートガイドを読むことをお勧めします (ウェブサイトのドキュメントページを参照)。

3. 表示

3.1. いくつかの文字が見えません。どうすれば良いですか。

これは良くある問題です。以下の内容をよく読んで、全ての 解決策をチェックしてください:

  • weechat-curses が libncursesw にリンクされていることの確認 (警告: 全てではありませんが、 ほとんどのディストリビューションで必要です): ldd /path/to/weechat-curses

  • /plugin コマンドで "Charset" プラグインがロード済みであることの確認 (ロードされていない場合、"weechat-plugins" パッケージが必要かもしれません) 。

  • /charset コマンドの出力を確認 (core バッファ上で)。 ターミナルの文字セットとして ISO-XXXXXX 又は UTF-8 があるはずです。 その他の値がある場合は、ロケールが間違っている可能性があります ($LANG を修正してください)。

  • グローバルデコードを設定、例えば: /set charset.default.decode "ISO-8859-15"

  • UTF-8 ロケールを使っている場合は:

    • ターミナルで UTF-8 が使えることを確認 (UTF-8 対応のターミナルとしては rxvt-unicode を推奨)

    • screen を使っている場合は、UTF-8 モードで起動されていることを確認 (~/.screenrc に "defutf8 on" の記述があるか又は screen -U のようにして起動)。

Note
WeeChat は UTF-8 ロケールを推奨します。ISO 又はその他のロケールを使う場合、 全ての 設定 (ターミナル、screen、..) が ISO であり、 UTF-8 でない ことを確認してください。

3.2. タイトルやステータスバー等の背景色が行末ではなくテキストの最後で終わってしまいます。

シェルの TERM 変数に間違った値が設定されている可能性があります (ターミナルで echo $TERM の出力を確認してください)。

WeeChat を起動した場所に依存しますが、以下の値を持つはずです:

  • WeeChat を screen を使わずにローカル又はリモートマシンで起動した場合、 利用しているターミナルに依存します: xtermxterm-256colorrxvt-unicoderxvt-256color 、…

  • WeeChat を screen 内で起動した場合、screen 又は screen-256color

もし必要であれば、TERM 変数を修正してください: export TERM="xxx"

3.3. weechat を screen/tmux の中で使っている場合、おかしなランダム文字列が表示されます。どうすれば直りますか。

シェルの TERM 変数に間違った値が設定されている可能性があります。 (ターミナル、screen/tmux の外echo $TERM の出力を確認してください)。

例えば、xterm-color の場合、おかしな文字列が表示される可能性があります。xterm と設定すればこのようなことは起こらないので (その他多くの値でも問題は起きません)、これを使ってください。

もし必要であれば、TERM 変数を修正してください: export TERM="xxx"

3.4. OS X 上で WeeChat をコンパイルした場合、"(null)" という文字列が至る所に表示されます。

ncursesw を自分でコンパイルした場合は、標準の (システムに元から存在する) ncurses を使ってみてください。

さらに OS X では、Homebrew パッケージマネージャを使って WeeChat をインストールすることをお勧めします。

3.5. "バッファ" と "ウィンドウ" の違いは何ですか。

バッファ とは番号、名前、表示行、(とその他のデータ) からなります。

ウィンドウ とはバッファを表示する画面領域です。 画面を複数のウィンドウに分割出来ます。

それぞれのウィンドウは 1 つのバッファの内容を表示します。バッファを隠す (ウィンドウで表示させない) ことや 1 つ以上のウィンドウに表示させることも出来ます。

3.6. どうすれば左側にバッファリストを表示できますか。

buffers.pl スクリプトを使ってください。

バーのサイズを制限するには:

/set weechat.bar.buffers.size_max 15

バーの位置を下に移動するには:

/set weechat.bar.buffers.position bottom

3.7. どうすればチャットエリア内のニックネームの最大長さを短く、又はニックネーム整列機能を無効化できますか。

チャットエリアのニックネームの最大長を短くするには:

/set weechat.look.prefix_align_max 15

ニックネーム整列を抑制するには:

/set weechat.look.prefix_align none

3.8. 全てのウィンドウに対して入力バーの数を 1 つだけにすることができますか (画面分割されている場合)。

できます。"root" 型のバー (あなたのいるウィンドウを区別するためのアイテムを持つ) を作成し、現在の入力バーを削除してください。

例えば:

/bar add rootinput root bottom 1 0 [buffer_name]+[input_prompt]+(away),[input_search],[input_paste],input_text
/bar del input

これに満足できない場合は、新しいバーを削除してください。 全てのバーに "input_text" アイテムが設定されていない場合は WeeChat は自動的にデフォルトバー "input" を作成します:

/bar del rootinput

3.9. どうすればニックネームリストを選択せずにテキストだけをコピー/ペーストできますか。

矩形選択のできるターミナルを使ってください (rxvt-unicode、 konsole、gnome-terminal、…)。通常、キーは Ctrl+Alt+ マウス選択です。

別の解決策はニックネームリストを上か下かに移動することです、例えば:

/set weechat.bar.nicklist.position top

3.10. どうすれば長い (一行以上に渡る) URL をクリックできますか。

デフォルトでは、WeeChat はそれぞれの行の最初に時間とプレフィックス、 さらにチャットエリアを囲むようにオプションバーを表示します。url のクリックを簡単にするには、 ニックネームリストを上に移動して、ニックネーム整列機能を無効化する方法があります:

/set weechat.bar.nicklist.position top
/set weechat.look.prefix_align none
/set weechat.look.align_end_of_lines time

WeeChat ≥ 0.3.6 では、"eat_newline_glitch" オプションを有効化できます。 これを有効化すると、表示行の行末に改行文字が入らなくなります (url 選択を邪魔しません)。

/set weechat.look.eat_newline_glitch on
Important
このオプションには表示上の問題を引き起こす可能性があります。 表示上の問題が起きた場合はこのオプションを無効化してください。

その他の解決策は以下のスクリプトうちの 1 つを使うことです:

urlserver.py

スクリプトの持つ HTTP サーバ機能で URL を短縮

urlbar.py

URL をバーの中に表示

urlgrab.py

URL を記録してブラウザで表示

url_shorten.rb
tinyurl.py
shortenurl.py

長い URL を短縮

URL に関するスクリプトのリスト: http://www.weechat.org/scripts/stable/tag/url

3.11. WeeChat が出力するメッセージの言語を、再起動せずに変更したいです。このようなことは可能ですか。

可能です。python スクリプト shell.py (WeeChat ウェブサイトから入手可能) を使い、 スクリプトを読み込んだら以下のコマンドを打ってください。

/shell setenv LANG=en_US.UTF-8
/upgrade

UTF-8 エンコードされた英語メッセージが表示されるようになります、 ISO ユーザは以下のようにして下さい: /shell setenv LANG=en_US

3.12. どうすれば WeeChat で 256 色が使えますか。

256 色は WeeChat ≥ 0.3.4 でサポートされます。

最初に TERM 環境変数が正しいことを確認してください、 お勧めの値は:

  • screen の中: screen-256color

  • screen の外: xterm-256colorrxvt-256colorputty-256color 、…

Note
これらの値を TERM に設定するには、"ncurses-term" パッケージをインストールする必要があるかもしれません。

screen を使っている場合は、以下の行を ~/.screenrc に追加してください:

term screen-256color

TERM 変数の設定に間違いがあり、WeeChat が起動中の場合でも、 慌てないでください! shell.py を使えば再起動せずに環境変数を変更できます。

/shell setenv TERM=screen-256color
/upgrade

バージョン 0.3.4 では、新しい色を追加するには /color コマンドを使ってください。

バージョン 0.3.5 以上では、任意の色番号を利用できます (オプション: 色の別名を追加するには /color コマンドを使ってください)。

色管理に関するより詳しい情報はユーザーガイドを読んでください。

3.13. どうすればバッファ内の文字列を検索できますか (irssi の /lastlog の様に)。

デフォルトのキーは Ctrl+r です (コマンドは: /input search_text)。 ハイライト部分へのジャンプは: Alt+p/n

この機能に関するより詳しい情報はユーザーガイドを参照してください (デフォルトのキー割り当て)。

4. キー割り当て

4.1. いくつかのメタキーが (alt + key) が動きません。

xterm や uxterm 等のターミナルを利用している場合、いくつかのメタキーはデフォルトでは利用できません。 以下の行を ~/.Xresources に追加してください:

  • xterm の場合:

XTerm*metaSendsEscape: true
  • uxterm の場合:

UXTerm*metaSendsEscape: true

このファイルを再読み込みするか (xrdb -override ~/.Xresources) 又は X を再起動してください。

4.2. どうすればキー割り当てをカスタマイズできますか。

キー割り当ては /key コマンドでカスタマイズできます。

デフォルトキー Alt+k でキーコードを取り込み、これをコマンドラインに入力できます。

4.3. バッファ 11 番 (又はそれ以上の番号) にジャンプするキーは何ですか。

キー Alt+j の後に 2 桁の数字を入力します、例えば Alt+j その後に 11 でバッファ 11 番にジャンプします。

これにキーを割り当てることが出来ます、例えば:

/key bind meta-q /buffer *11

デフォルトキー割り当てのリストはユーザーガイドを参照してください。

4.4. どうすればグローバルヒストリを (バッファヒストリの代わりに) 上下矢印キーで使えますか。

上下矢印キーをグローバルヒストリに割り当ててください (グローバルヒストリに対する デフォルトのキーは Ctrl+Ctrl+ です。

例:

/key bind meta2-A /input history_global_previous
/key bind meta2-B /input history_global_next
Note
"meta2-A" と "meta2-B" キーはターミナルによって異なります。 キーコードを 見つけるには Alt+k の後にキー (上矢印又は下矢印) を押してください。

5. マウス

5.1. マウスが少しも動きません。どうすれば良いですか。

マウスのサポートは WeeChat 0.3.6 以上からです。

最初にマウスを有効化してください:

/mouse enable

これでマウスが動かない場合は、シェルの TERM 変数を確認してください (ターミナル内で echo $TERM の出力を見てください)。 ターミナルの種類によってはマウスがサポートされていない可能性があります。

マウスサポートをターミナルから確認するには:

$ printf '\033[?1002h'

ターミナルの最初の文字 (左上) をクリックしてください。" !!#!!" と見えるはずです。

ターミナルのマウスサポートを無効化するには:

$ printf '\033[?1002l'

5.2. マウスの位置座標 X 又は Y が 94 よりも大きい場合にマウス機能が正しく動きません。

一部のターミナルではマウスの位置座標を指定するために ISO 文字だけを使います、 このため X/Y が 94 よりも大きい場合は正しく動きません。

マウスの位置座標を指定するのに UTF-8 座標をサポートしているターミナルを使ってください、 例えば rxvt-unicode 等です。

6. IRC

6.1. /ignore と /filter コマンドの違いは何ですか。

/ignore コマンドは IRC コマンドです、このため IRC バッファ (サーバとチャンネル) にのみ有効です。 これを使うことでニックネームやホストネームを基準にして、 あるサーバやチャンネルにいる一部のユーザを無視できます (表示済みメッセージに対しては適用されません)。 マッチするメッセージは IRC プラグインによって表示される前に削除されます (削除されたメッセージは見えません)。

/filter コマンドは core コマンドです、このため任意のバッファに対してこれを有効化できます。 バッファ内の行のプレフィックスと内容に対して付けられたタグや正規表現にマッチする行をフィルタできます。 フィルタされた行は隠されているだけで、削除はされていません、 フィルタを無効化すれば見えるようになります (デフォルトでは Alt+= でフィルタの有効無効の切り替えが出来ます)。

6.2. どうすれば IRC チャンネルへの参加/退出/終了メッセージをフィルタできますか。

スマートフィルタを使う場合 (最近発言したユーザの参加/退出/終了メッセージは表示):

/set irc.look.smart_filter on
/filter add irc_smart * irc_smart_filter *

グローバルフィルタを使う場合 (全ての 参加/退出/終了メッセージを隠す):

/filter add jpk * irc_join,irc_part,irc_quit *
Note
ヘルプを見るには: /help filter/help irc.look.smart_filter

6.3. どうすれば IRC チャンネルに参加した際に表示される一部のメッセージをフィルタできますか。

メッセージをフィルタするためにいくつかのタグが使えます:

  • irc_366: チャンネルにいるユーザの名前

  • irc_332,irc_333: チャンネルのトピック/日時

  • irc_329: チャンネル作成日時

IRC 生サーバ (/server raw) を参照することで、 その他のメッセージに対応するタグを確認できます。

例:

  • 名前をフィルタ:

/filter add irc_join_names * irc_366 *
  • トピック (と日時) をフィルタ:

/filter add irc_join_topic_date * irc_332,irc_333 *

6.4. どうすれば voice メッセージをフィルタできますか (例えば Bitlbee サーバ上で)。

voice メッセージをフィルタするのは簡単ではありません、なぜなら voice モードの設定は同じ IRC メッセージの中で他のモード設定と同時に行われる可能性があるからです。

おそらく Bitlbee が voice を離席ユーザを表示するために利用するため、 voice メッセージでチャットエリアが溢れてしまうから、これをフィルタしたいのではないでしょうか。 この様な場合には、Bitlbee が離席状態を通知することを禁止し、WeeChat にニックネームリスト中に含まれる離席中のニックネームに対して特別な色を使わせることができます。

Bitlbee 3 以上の場合、以下のコマンドをチャンネル &bitlbee で入力:

channel set show_users online,away

Bitlbee の古いバージョンでは、以下のコマンドを &bitlbee で入力:

set away_devoice false

WeeChat で離席中のニックネームをチェックするには、 離席状態のニックネーム に関する質問を参照してください。

もし本当に voice メッセージをフィルタしたい場合は、以下のコマンドを使ってください、 ただしこれは完璧なものではありません (voice モードの変更が最初に指定されている場合のみ有効)。

/filter add hidevoices * irc_mode (\+|\-)v

6.5. どうすればニックネームリストから離席中のニックネームを確認できますか。

オプション irc.server_default.away_check に正の値を設定してください (離席状態確認のインターバルを分単位で)。

オプション irc.server_default.away_check_max_nicks を設定することで離席状態確認を小さなチャンネルのみに制限できます。

例えば、5 分間隔で離席状態確認を行い、25 人より多いチャンネルではこれを行わないようにするには:

/set irc.server_default.away_check 5
/set irc.server_default.away_check_max_nicks 25
Note
WeeChat 0.3.3 以下では、オプション名が irc.network.away_checkirc.network.away_check_max_nicks になっています。

6.6. どうすればあるチャンネルで自分が呼ばれたら警告できますか。

beep.pllauncher.pl 等のスクリプトを使ってください。

launcher.pl の場合、コマンドの設定が必要です:

/set plugins.var.perl.launcher.signal.weechat_highlight "/path/to/command arguments"

この問題に対するその他のスクリプトは: http://www.weechat.org/scripts/stable/tag/notify/

6.7. SSL を使うサーバへの接続中に問題が発生しました。どうすればいいですか。

gnutls ハンドシェイクに関するエラーの場合、Diffie-Hellman キー (デフォルトは 2048) のサイズを小さくすることを試してみてください:

/set irc.server.freenode.ssl_dhkey_size 1024

証明書に関するエラーの場合、"ssl_verify" を無効化してください (接続の機密保護がより甘くなることに注意):

/set irc.server.freenode.ssl_verify off

6.8. SSL を使うサーバへの接続中に、"TLS handshake failed" というエラーだけが表示されます。どうすれば良いですか。

異なる優先順位文字列を試してみてください (WeeChat 0.3.5 以上)、 "xxx" はサーバ名に書き換えてください。

/set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT"

6.9. どうすれば SSL を使って freenode サーバに接続できますか。

オプション weechat.network.gnutls_ca_file に証明書ファイルへのパスを設定してください。

/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"
Note
設定したファイルが自分のシステムに存在することを確認してください (一般に "ca-certificates" パッケージで提供されます)。

サーバポート、SSL、dhkey_size を設定の後に接続してください:

/set irc.server.freenode.addresses "chat.freenode.net/7000"
/set irc.server.freenode.ssl on
/set irc.server.freenode.ssl_dhkey_size 1024
/connect freenode

6.10. どうすればマージされたバッファ内であるコマンドを発行するターゲットバッファを変更できますか。

デフォルトのキーは Ctrl+x です (コマンドは: /input switch_active_buffer)。

7. プラグイン / スクリプト

7.1. OpenBSD と WeeChat を使っている場合、プラグインが 1 つもロードされません。

OpenBSD では、プラグインファイル名の末尾が ".so.0.0" です (Linux では ".so")。

以下の様に設定してください:

/set weechat.plugin.extension ".so.0.0"
/plugin autoload

7.2. どうすれば Perl/Python/Ruby/Lua/Tcl スクリプトをロードできますか。スクリプトは他の IRC クライアントのものと互換性がありますか。

/perl/python/ruby/lua/tcl コマンドを使ってスクリプトをロードしてください (スクリプトのデフォルトパスは ~/.weechat/<language>/ )。

スクリプトは他の IRC クライアントのものと互換性がありません。

注意:

  • ~/.weechat/<language>/autoload/ の中にあるスクリプトは WeeChat の起動時に自動的にロードされます。

  • tcl プラグインはバージョン 0.3.0 以上で利用できます。

8. 設定

8.1. どうすれば WeeChat のメモリ使用量を節約できますか。

メモリ使用量を減らすには以下のヒントを試してください:

  • 最新の安定版を使う (古いバージョンよりもメモリリークの可能性が減ると思われます)

  • 使わないプラグインのロードを禁止する、例えば: aspell、fifo、 logger、perl、python、ruby、lua、tcl、xfer (DCC で使用)

  • 本当に必要なスクリプトだけをロード

  • weechat.history.max_lines オプションの値を減らす (それぞれのバッファでメモリ内に保存される行数)

  • weechat.history.max_commands オプションの値を減らす (メモリに保存されるユーザコマンドの数)

9. 開発

9.1. どのようにバグ報告、新機能のリクエスト、パッチ送信すればよいですか。

3 つの方法があります:

  1. IRC に参加: irc.freenode.net 、チャンネル #weechat

  2. savannah ウェブサイトを利用:

  3. メールで開発者に連絡、開発者のメールアドレスはサポートページを参照: http://www.weechat.org/about ("support" メーリングリストを購読して送信することもできます)

9.2. gdb で WeeChat を実行する場合、スレッドに関するエラーが発生します。

gdb で WeeChat を実行する場合、以下のエラーが出るかもしれません:

$ gdb /path/to/weechat-curses
(gdb) run
[Thread debugging using libthread_db enabled]
Cannot find new threads: generic error

これを修正するには、以下のコマンドを使って gdb を実行してください (システム上の libpthread と WeeChat へのパスを変更):

$ LD_PRELOAD=/lib/libpthread.so.0 gdb /path/to/weechat-curses
(gdb) run

9.3. WeeChat をサポートするプラットフォームのリストを教えてください。他のオペレーティングシステムへの移植予定はありますか。

完全なリストはこのページにあります: http://www.weechat.org/download

我々は可能な限り多くのプラットフォームに移植することに最善を尽くしています。 我々が持っていない OS で WeeChat をテストすることを歓迎します。

9.4. どうすれば WeeChat 開発者を手伝えますか。

多くの課題があります (テスト、コード、ドキュメント作成、…)。

IRC かメールで連絡を取り、サポートページを確認してください: http://www.weechat.org/support

開発補助のためお金を贈ることができます。 詳しいことは http://www.weechat.org/donate に載っています。