= WeeChat FAQ (よくある質問)
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: ja
:toc: left
:toc-title: 目次
:toclevels: 2
:sectnums:
:sectnumlevels: 2
:docinfo1:


この文書は WeeChat バージョン 0.3.0 以上向けに書かれたものですが、
最新安定版の WeeChat に対しても利用できます。

翻訳者:

* Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>, 2012-2019

toc::[]


[[general]]
== 一般

[[weechat_name]]
=== "WeeChat" という名前の由来は何ですか?

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

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

[[why_choose_weechat]]
=== WeeChat を選ぶ理由は何ですか? X-Chat や Irssi は最高なのに...

WeeChat は非常に軽く、革新的な機能を備えているからです。

WeeChat の機能に関するより詳しい情報: https://weechat.org/about/features

[[compilation_install]]
== コンパイル / インストール

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

いくつかのリモート GUI が利用可能です、以下のリモートインターフェースに関するページを参照してください:
https://weechat.org/about/interfaces

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

WeeChat をコンパイルするには link:weechat_user.ja.html#compile_with_cmake[cmake]
を使うことが推奨されています。

link:weechat_user.ja.html#compile_with_autotools[autotools] を使って (cmake を使わずに)
コンパイルする場合、最新の autoconf と automake を使ってください。

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

[[compile_macos]]
=== どうすれば macOS に WeeChat をインストールできますか?

https://brew.sh/[Homebrew] を使うことをお勧めします、ヘルプを見るには:

----
brew info weechat
----

以下のコマンドで WeeChat をインストールします:

----
brew install weechat --with-aspell --with-curl --with-python --with-perl --with-ruby --with-lua --with-guile
----

[[lost]]
=== WeeChat を起動しました。でも何をすればいいかわかりません。

ヘルプを見るには、`/help` と入力してください。コマンドに関するヘルプを見るには、`/help command`
と入力してください。link:weechat_user.ja.html#key_bindings[キー]とlink:weechat_user.ja.html#commands_and_options[コマンド]は文書中で説明されています。

新しいユーザはlink:weechat_quickstart.ja.html[クイックスタートガイド]を読むことをお勧めします

[[display]]
== 表示

[[charset]]
=== いくつかの文字が見えません。どうすれば良いですか。

これは良くある問題であり、様々な原因に起因しています。以下の内容をよく読んで、*全ての*
解決策をチェックしてください:

* weechat が libncursesw にリンクされていることの確認 (警告:
  全てではありませんが、ほとんどのディストリビューションで必要です): `ldd /path/to/weechat`
* `/plugin` コマンドで "charset" プラグインがロード済みであることの確認
  (ロードされていない場合、"weechat-plugins" パッケージが必要かもしれません)。
* `/charset` コマンドの出力を確認 (core バッファ上で)。端末の文字セットとして _ISO-XXXXXX_
  または _UTF-8_ があるはずです。その他の値がある場合は、ロケールが間違っている可能性があります。 +
  ロケールを修正するには、`locale -a` を使ってインストール済みのロケールを確認し、$LANG
  に適切な値を設定してください。これを行うには `export LANG=en_US.UTF-8` のようにします。
* グローバルデコードを設定、例えば:
  `/set charset.default.decode "ISO-8859-15"`
* UTF-8 ロケールを使っている場合は:
** 端末で UTF-8 が使えることを確認 (UTF-8 対応の端末としては
   rxvt-unicode を推奨)
** screen を使っている場合は、UTF-8 モードで起動されていることを確認
   (~/.screenrc に "`defutf8 on`" の記述があるかまたは `screen -U` のようにして起動)。
* link:weechat_user.ja.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_]
  オプションが off であることを確認してください (このオプションは表示上のバグを引き起こす可能性があります)

[NOTE]
WeeChat は UTF-8 ロケールを推奨します。ISO
またはその他のロケールを使う場合、*全ての* 設定 (端末、screen、..)
が ISO であり、UTF-8 *でない* ことを確認してください。

[[unicode_chars]]
=== 端末で表示されるユニコード文字が WeeChat では表示されない場合があります。なぜでしょうか。

この問題は libc の _wcwidth_ 関数のバグによって引き起こされている可能性があります。これは glibc 2.22
で修正されているはずです (使用中のディストリビューションではまだ提供されていないかもしれません)

次の回避方法を使えば、修正済みの _wcwidth_ 関数を使う事が可能です:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat

より詳しい情報を得るにはバグ報告を参照してください:
https://github.com/weechat/weechat/issues/79

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

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

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

* WeeChat を screen および tmux
  を使わずにローカルまたはリモートマシンで実行している場合、使用中の端末に依存します:
  _xterm_、_xterm-256color_、_rxvt-unicode_、_rxvt-256color_、...
* WeeChat を screen 内で実行している場合、_screen_ または _screen-256color_ です、
* WeeChat を tmux
  内で実行している場合、_tmux_、_tmux-256color_、_screen_、_screen-256color_ です。

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

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

シェルの TERM 変数に間違った値が設定されている可能性があります
(端末、*screen/tmux の外* で `echo $TERM` の出力を確認してください)。 +
例えば、_xterm-color_ の場合、おかしな文字列が表示される可能性があります。_xterm_
と設定すればこのようなことは起こらないので (その他多くの値でも問題は起きません)、これを使ってください。 +
もし必要であれば、TERM 変数を修正してください: `export TERM="xxx"`

gnome-terminal
を使っている場合、設定/プロファイル/互換性メニュー内にある「曖昧幅の文字」を
`半角` にしてください。

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

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

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

[[buffer_vs_window]]
=== 「バッファ」と「ウィンドウ」の違いは何ですか。

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

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

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

[[buffers_list]]
=== どうすれば左側にバッファリストを表示できますか。

WeeChat バージョン 1.8 以上の場合、link:weechat_user.ja.html#buflist_plugin[buflist]
プラグインがロードされ、デフォルトで有効化されます。

バージョン 1.8 よりも古い WeeChat をお使いなら、以下の方法で _buffers.pl_ スクリプトをインストールしてください:

----
/script install buffers.pl
----

バッファリストバーのサイズを制限するには以下の方法を使ってください
(_buffers.pl_ スクリプトを使っているなら、"buflist" を "buffers" に置き換えてください):

----
/set weechat.bar.buflist.size_max 15
----

バッファリストバーの位置を下に移動するには以下の方法を使ってください:

----
/set weechat.bar.buflist.position bottom
----

_buflist_ バーをスクロールする方法: マウスを有効化しているならば
(キー: kbd:[Alt+m])、マウスホイールでバッファリストバーをスクロールできます。

_buflist_ バーをスクロールするデフォルトキーは
kbd:[F1] (または kbd:[Ctrl+F1])、kbd:[F2] (または kbd:[Ctrl+F2])、kbd:[Alt+F1]、kbd:[Alt+F2] です。

_buffers.pl_
スクリプトをお使いの場合、ニックネームリストをスクロールするキーと似たキーを割り当てることも可能です。 +
例えば、kbd:[F1]、kbd:[F2]、kbd:[Alt+F1]、kbd:[Alt+F2] を割り当てるには以下の方法を使います:

----
/key bind meta-OP /bar scroll buffers * -100%
/key bind meta-OQ /bar scroll buffers * +100%
/key bind meta-meta-OP /bar scroll buffers * b
/key bind meta-meta-OQ /bar scroll buffers * e
----

[NOTE]
"meta-OP" と "meta-OQ" キーは端末によって異なります。キーコードを見つけるには
kbd:[Alt+k] の後にキーを押してください。

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

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

----
/set weechat.look.prefix_align_max 15
----

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

----
/set weechat.look.prefix_align none
----

[[status_hotlist]]
=== ステータスバーに表示される [H: 3(1,8), 2(4)] の意味を教えてください。

これは「ホットリスト」と呼ばれ、ここにはバッファ番号およびそのバッファの未読メッセージカウンタが表示されます。未読メッセージカウンタの表示順はハイライト、プライベートメッセージ、一般メッセージ、その他のメッセージ
(参加/退出メッセージなど)
の順です。 +
バッファの「未読メッセージ」とは、最後にそのバッファにフォーカスが移された以降に表示されたり受信した新しいメッセージを意味します。

上記の例 `[H: 3(1,8), 2(4)]` の場合:

* バッファ 3 番にハイライトが 1 通、未読が 8 通あり、
* バッファ 2 番に未読が 4 通あることを意味します。

バッファおよびカウンタのテキスト色はメッセージの種類を意味します。色のデフォルト設定は以下です:

* ハイライト: `lightmagenta` および `magenta`
* プライベートメッセージ: `lightgreen` および `green`
* 一般メッセージ: `yellow` および `brown`
* その他のメッセージ: `default` および `default` (端末のテキスト色)

これらの色を変えるには、__weechat.color.status_data_*__ オプション (バッファ)
および __weechat.color.status_count_*__ オプション (カウンタ) を設定します。 +
その他のホットリスト関連オプションは __weechat.look.hotlist_*__ オプションを使って変更します。

ホットリストに関する詳しい情報はlink:weechat_user.ja.html#screen_layout[ユーザーズガイド / 画面レイアウト]を参照してください

[[input_bar_size]]
=== コマンドラインの行数を増やすにはどうすればいいですか。

インプットバーの _size_ オプションには 1 (サイズ固定、デフォルト値)
以上の値または動的なサイズの意味で 0 を設定できます。_size_max_
オプションではサイズの最大値を設定できます (0 = 制限なし)。

動的サイズを設定する例:

----
/set weechat.bar.input.size 0
----

サイズの最大値を 2 に設定:

----
/set weechat.bar.input.size_max 2
----

[[one_input_root_bar]]
=== 全てのウィンドウに対して入力バーの数を 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
----

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

WeeChat バージョン 1.0 以上の場合、最小限表示を使うことができます
(デフォルトキー: kbd:[Alt+l])。
最小限表示では現在選択中のウィンドウの内容のみが表示され、フォーマットもされません。

矩形選択のできる端末を使ってください
(rxvt-unicode、konsole、gnome-terminal、...)。通常、キーは
kbd:[Ctrl] + kbd:[Alt] + マウス選択です。

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

----
/set weechat.bar.nicklist.position top
----

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

WeeChat バージョン 1.0 以上の場合、最小限表示を使うことができます (デフォルトキー: kbd:[Alt+l])。

URL を簡単にクリックできるようにするには、以下を試してみてください:

* ニックネームリストを上方に移動します:

----
/set weechat.bar.nicklist.position top
----

* 複数行に渡る単語の整列を無効化します (WeeChat バージョン 1.7 以上の場合):

----
/set weechat.look.align_multiline_words off
----

* もしくは、すべての折り返された行について整列を無効化します:

----
/set weechat.look.align_end_of_lines time
----

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

----
/set weechat.look.eat_newline_glitch on
----

[IMPORTANT]
このオプションには表示上の問題を引き起こす可能性があります。表示上の問題が起きた場合はこのオプションを無効化してください。

別の解決策として、スクリプトを利用することもできます:

----
/script search url
----

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

WeeChat バージョン 1.0 以上の場合、再起動せずに変更できます:

----
/set env LANG ja_JP.UTF-8
/upgrade
----

古い WeeChat をお使いの場合は:

----
/script install shell.py
/shell setenv LANG=ja_JP.UTF-8
/upgrade
----

[[use_256_colors]]
=== どうすれば WeeChat で 256 色が使えますか。

WeeChat バージョン 0.3.4 以上の場合、256 色がサポートされます。

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

* screen 内の場合: _screen-256color_
* tmux 内の場合: _screen-256color_ または _tmux-256color_
* screen および tmux の外の場合: _xterm-256color_、_rxvt-256color_、_putty-256color_、...

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

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

----
term screen-256color
----

_TERM_ 変数が間違った値に設定された状態で WeeChat が起動完了している場合は、以下の
2 つのコマンドを使って変数の値を変更してください (WeeChat バージョン 1.0 以上で利用可):

----
/set env TERM screen-256color
/upgrade
----

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

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

色管理に関するより詳しい情報はlink:weechat_user.ja.html#colors[ユーザーズガイド / 色]を参照してください

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

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

この機能に関するより詳しい情報はlink:weechat_user.ja.html#key_bindings[ユーザーズガイド / デフォルトのキー割り当て]を参照してください

[[terminal_focus]]
=== どうすれば端末にフォーカスが合った時や外れた時にコマンドを実行できますか。

端末に特殊コードを送信してフォーカスイベントを必ず有効化してください。

*重要*:

* 必ず最新の xterm 互換の端末を使ってください。
* 加えて、TERM 環境変数を _xterm_ または _xterm-256color_
  にすることが重要かもしれません。
* tmux を使っているなら、必ず `set -g focus-events on` を
  _.tmux.conf_ に追加して、フォーカスイベントを有効化してください。
* screen ではこの機能を *使えません*。

WeeChat の開始時にコードを送信するには:

----
/set weechat.startup.command_after_plugins "/print -stdout \033[?1004h\n"
----

さらに端末から送信される 2 種類の特殊キーシーケンスに対してコマンドを割り当ててください
(例に挙げた `/print` コマンドは適当なコマンドに書き換えてください):

----
/key bind meta2-I /print -core focus
/key bind meta2-O /print -core unfocus
----

端末のフォーカスが外れた時点でバッファに未読マークをつける例:

----
/key bind meta2-O /input set_unread
----

[[screen_paste]]
=== WeeChat を screen の内部で実行している場合、別の screen ウィンドウ内にペーストされるテキストの周りに ~0 と ~1 が追加されます。なぜでしょうか。

scrreen
がデフォルトで有効化されている括弧付きペーストオプションの挙動を別のウィンドウ内で適切に処理できないことが原因です。

括弧付きペーストモードを無効化するには以下のコマンドを使います:

----
/set weechat.look.paste_bracketed off
----

[[key_bindings]]
== キー割り当て

[[meta_keys]]
=== いくつかのメタキーが (alt + key) が動きません。

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

* xterm の場合:
----
XTerm*metaSendsEscape: true
----
* uxterm の場合:
----
UXTerm*metaSendsEscape: true
----

このファイルをリロードするか (`xrdb -override ~/.Xresources`) または X を再起動してください。

macOS のターミナル.app を使っている場合、設定メニューのキーボードから「メタキーとして option
キーを使用」を有効化してください。こうすることで、kbd:[Option]
キーをメタキーとして使うことが可能です。

[[customize_key_bindings]]
=== どうすればキー割り当てをカスタマイズできますか。

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

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

[[jump_to_buffer_11_or_higher]]
=== バッファ 11 番 (またはそれ以上の番号) にジャンプするキーは何ですか。

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

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

----
/key bind meta-q /buffer *11
----

デフォルトキー割り当てのリストはlink:weechat_user.ja.html#key_bindings[ユーザーズガイド / デフォルトのキー割り当て]を参照してください

番号 100 以上のバッファにジャンプするには、以下のトリガを定義してください。こうすることでコマンド
`/123` でバッファ #123 にジャンプできるようになります:

----
/trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none"
----

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

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

例:

----
/key bind meta2-A /input history_global_previous
/key bind meta2-B /input history_global_next
----

[NOTE]
"meta2-A" と "meta2-B" キーは端末によって異なります。キーコードを見つけるには
kbd:[Alt+k] の後にキー を押してください。

[[mouse]]
== マウス

[[mouse_not_working]]
=== マウスが少しも動きません。どうすれば良いですか。

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

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

----
/mouse enable
----

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

マウスサポートを端末から確認するには:

----
$ printf '\033[?1002h'
----

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

端末のマウスサポートを無効化するには:

----
$ printf '\033[?1002l'
----

[[mouse_coords]]
=== マウスの位置座標 X または Y が 94 (または 222) よりも大きい場合にマウス機能が正しく動きません。

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

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

[[mouse_select_paste]]
=== WeeChat でマウスが利用可能な場合、端末のテキストを選択したり、ペーストするにはどうすれば良いですか。

WeeChat でマウスが利用可能な場合、kbd:[Shift]
キーを押しながら端末をクリックして選択してください、マウスが無効化されます
(例えば iTerm 等の場合、kbd:[Shift] の代わりに kbd:[Alt] を使ってください)。

[[irc]]
== IRC

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

macOS をお使いの場合、必ず Homebrew から `openssl`
をインストールしてください。こうすることでシステムの鍵束に含まれる証明書を使いつつ、CA
ファイルを起動時に読み込ませることが可能になります。その後、WeeChat で証明書へのパスを設定してください:

----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----

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

----
/set irc.server.example.ssl_dhkey_size 1024
----

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

----
/set irc.server.example.ssl_verify off
----

サーバが不正な証明書を持っており、正常な証明書がどのようなものであるかわかっている場合、証明書の指紋を設定しておくことが可能です
(SHA-512、SHA-256、SHA-1):

----
/set irc.server.example.ssl_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b
----

[[irc_ssl_handshake_error]]
=== 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"
----

[[irc_ssl_freenode]]
=== どうすれば SSL を使って freenode サーバに接続できますか。

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

----
/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"
----

注意: macOS 上で homebrew を使って openssl をインストールした場合には、以下のコマンドを実行してください:

----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----

[NOTE]
設定したファイルが自分のシステムに存在することを確認してください
(一般に "ca-certificates" パッケージで提供されます)。

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

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

[[irc_oauth]]
=== どうすれば "oauth" が必要なサーバに接続出来ますか?

_twitch_ などの一部のサーバは接続するために oauth が必要です。

oauth を使うにはパスワードを "oauth:XXXX" のように指定してください。

以下のコマンドを使って、この種のサーバを追加し接続することが可能です
(サーバ名とアドレスは適切な値を使ってください):

----
/server add name irc.server.org -password=oauth:XXXX
/connect name
----

[[irc_sasl]]
=== どうすればチャンネル参加前にニックネーム認証を行うことができますか。

サーバで SASL を利用可能なら、nickserv 認証のコマンドを送信するよりも
SASL を利用する方が良いです。例えば:

----
/set irc.server.freenode.sasl_username "mynick"
/set irc.server.freenode.sasl_password "xxxxxxx"
----

対象のサーバが SASL
をサポートしない場合、コマンドとチャンネル参加の間に遅延時間を入れることもできます:

----
/set irc.server.freenode.command_delay 5
----

[[edit_autojoin]]
=== どうすれば自動参加オプションにチャンネルを追加/削除できますか。

`/set` コマンドを使って、自動参加チャンネルのリストを編集してください。"freenode"
サーバに対してこれを実行するには以下のようにします:

----
/set irc.server.freenode.autojoin [TAB]
----

[NOTE]
kbd:[Tab] キーを使うことで、オプションの名前と値を補完できます
(もしくは kbd:[Shift+Tab] キーで部分補完、オプション名を補完する際に便利です)。 +
チャンネルをすべて入力する必要はありません。

もしくは `/fset` コマンドを使うことで、チャンネルのリストを編集できます:

----
/fset autojoin
----

専用のスクリプトを使うこともできます:

----
/script search autojoin
----

[[ignore_vs_filter]]
=== /ignore と /filter コマンドの違いは何ですか。

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

`/filter` コマンドは
WeeChat
のコアコマンドです。このため、このコマンドの結果は任意のバッファに適用されます。バッファ内の行のプレフィックスと内容に基づいて付けられたタグや正規表現にマッチする行をフィルタすることが可能です。
フィルタされた行は隠されているだけで削除されているわけではありません。このため、フィルタを無効化
(デフォルトでは kbd:[Alt+=] でフィルタの有効無効を切り替えられます) すれば見ることが可能です。

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

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

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

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

----
/filter add joinquit * irc_join,irc_part,irc_quit *
----

[NOTE]
ヘルプを見るには `/help filter`、`/help irc.look.smart_filter`、link:weechat_user.ja.html#irc_smart_filter_join_part_quit[ユーザーズガイド
/ 参加/退出/終了メッセージに対するスマートフィルタ] を使ってください。

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

WeeChat バージョン 0.4.1 以上の場合、_irc.look.display_join_message_
オプションを使って、チャンネル参加時に表示するメッセージの種類を選択できます
(より詳しい情報は `/help irc.look.display_join_message` を参照)。

メッセージを隠す (ただしバッファに残す) には、タグを使ってメッセージをフィルタしてください
(たとえばチャンネル作成日時を隠すには _irc_329_ タグを使ってください)。フィルタの書き方に関する情報は
`/help filter` を参照してください。

[[filter_voice_messages]]
=== どうすれば 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
で離席中のニックネームをチェックするには、<<color_away_nicks,離席状態のニックネーム>>に関する質問を参照してください。

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

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

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

オプション _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_check_ と
_irc.network.away_check_max_nicks_ になっています。

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

WeeChat バージョン 1.0 以上の場合、デフォルトトリガ "beep"
が設定されています。これはハイライトまたはプライベートメッセージを受け取った際に
_BEL_ を端末に送信します。このため、端末 (または screen/tmux などのマルチプレクサ)
を設定して、_BEL_ が発生した際にコマンドを実行させたり音を再生させることができます。

もしくは "beep" トリガにコマンドを追加することもできます:

----
/set trigger.trigger.beep.command "/print -beep;/exec -bg /path/to/command arguments"
----

古い WeeChat をお使いの場合、_beep.pl_ や _launcher.pl_ 等のスクリプトを使ってください。

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

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

この問題に対するその他のスクリプトは:

----
/script search notify
----

[[disable_highlights_for_specific_nicks]]
=== 特定のニックネームのみハイライトを無効化する方法を教えてください。

WeeChat バージョン 0.3.4 以上の場合、link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add]
バッファプロパティを使うことで、ニックネーム単位、バッファ単位、バッファグループ単位
(IRC サーバ単位) でホットリストレベルの最大値を設定できます。

ハイライトを無効化するだけなら、このプロパティを 2 に設定してください:

----
/buffer set hotlist_max_level_nicks_add joe:2,mike:2
----

このバッファプロパティは設定に保存されません。このバッファプロパティを自動的に適用するには、_buffer_autoset.py_
スクリプトが必要です:

----
/script install buffer_autoset.py
----

例えば、IRC サーバ freenode のチャンネル #weechat に参加している "mike"
の発言に対してハイライトを永久的に無効化するには以下のように設定します:

----
/buffer_autoset add irc.freenode.#weechat hotlist_max_level_nicks_add mike:2
----

この設定をすべての freenode サーバのバッファに対して適用するには以下のように設定します:

----
/buffer_autoset add irc.freenode hotlist_max_level_nicks_add mike:2
----

これ以外の例は `/help buffer_autoset` を参照してください。

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

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

[[plugins_scripts]]
== プラグイン / スクリプト

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

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

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

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

[[install_scripts]]
=== どうすればスクリプトをインストールできますか。スクリプトは他の IRC クライアントと互換性がありますか。

WeeChat バージョン 0.3.9 以上の場合、コマンド `/script`
を使うことで、スクリプトをインストールしたり管理することができます
(ヘルプは `/help script` で見ることができます)。それよりも古いバージョンでは
weeget.py と script.pl を使ってください。

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

[[scripts_update]]
=== コマンド "/script update" でスクリプトを読み込むことができません。どうすればいいですか。

手始めに、この FAQ の SSL 接続に関する質問を確認してください
(特にオプション _weechat.network.gnutls_ca_file_ に関する質問)。

それでもだめなら、手作業で (シェルから) スクリプトリストファイルを削除してください:

----
$ rm ~/.weechat/script/plugins.xml.gz
----

その後、WeeChat からスクリプトリストを更新してください:

----
/script update
----

それでもまだエラーが出るなら、WeeChat に含まれるファイルの自動更新を無効化して、WeeChat
を使わずに手作業でファイルをダウンロードしなければいけません
(つまり、更新を入手するには自分自身でそのファイルを更新しなければいけないということです):

* WeeChat から WeeChat のファイル自動更新機能を無効化します:

----
/set script.scripts.cache_expire -1
----

* シェルからスクリプトリストファイルをダウンロードします (必要なら curl をインストールしてください):

----
$ cd ~/.weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----

[[spell_dictionaries]]
=== システムに aspell 辞書をインストールした後、WeeChat を再起動せずにそれを使う方法を教えてください。

spell プラグインをリロードしてください:

----
/plugin reload spell
----

[NOTE]
WeeChat バージョン 2.4 以下では "spell" プラグインは "aspell" と呼ばれていたため、コマンドは以下のようになります:
`/plugin reload aspell`.

[[settings]]
== 設定

[[editing_config_files]]
=== 手作業で設定ファイル (*.conf) を編集することは可能ですか。

可能ですが、*非推奨* です。

その代わり WeeChat 内でコマンド `/set` を使うことを推奨します。その理由は:

* kbd:[Tab] キー を使ってオプションの名前と値を補完できるからです (さらに
  kbd:[Shift+Tab] キーを使えばオプション名の補完に役立つ部分補完もできるからです)
* 設定しようとした値は検証され、値に問題があった場合にはメッセージが表示されるからです
* 設定した値はすぐに反映され、再起動の必要もないからです

それでもなお手作業で設定ファイルを編集したいなら、以下の点に注意してください:

* あるオプションに対して不正な値を設定した場合、WeeChat
  は設定ファイルのロード時にエラーを表示し、その値を破棄します (そのオプションのデフォルト値が使われます)
* WeeChat が実行中の場合には、必ずコマンド `/reload` を実行してください。設定が変更されその変更をコマンド
  `/save` で保存していなかった場合、これらの設定の変更内容は破棄されます

[[memory_usage]]
=== どうすれば WeeChat のメモリ使用量を節約できますか。

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

* 最新の安定版を使う
  (古いバージョンよりもメモリリークの可能性が減ると思われます)
* 使わないプラグインのロードを禁止する、例えば:
  buflist、fifo、logger、perl、python、ruby、lua、tcl、guile、javascript、php、spell、xfer (DCC で使用)。
  `/help weechat.plugin.autoload` を参照してください。
* 本当に必要なスクリプトだけをロード
* SSL を *使わない* なら、証明書を読み込まないでください: オプション
  _weechat.network.gnutls_ca_file_ に空文字列を設定してください。
* _weechat.history.max_buffer_lines_number_
  オプションの値を減らすか、_weechat.history.max_buffer_lines_minutes_ オプションに値を設定してください。
* _weechat.history.max_commands_ オプションの値を減らしてください。

[[cpu_usage]]
=== どうすれば WeeChat の CPU 負荷を低減できますか?

以下に挙げる <<memory_usage,memory>> に関するヒントに従ってください:

* "nicklist" バーを非表示にする: `/bar hide nicklist`
* ステータスバー時間に秒の表示を止める:
  `/set weechat.look.item_time_format "%H:%M"` (これはデフォルト値です)
* コマンドライン内の単語スペルミスのリアルタイムチェックを無効にする (有効にしていた場合):
  `/set spell.check.real_time off`
* _TZ_ 変数を設定する (例: `export TZ="Europe/Paris"`)、こうすることで
  _/etc/localtime_ ファイルへ頻繁にアクセスしないようになります。

[[security]]
=== セキュリティを気にしています。セキュリティを高めるためにはどの設定を変更すればよいですか?

IRC の退出および終了メッセージを無効化します:

----
/set irc.server_default.msg_part ""
/set irc.server_default.msg_quit ""
----

すべての CTCP クエリに対する応答を無効化します:

----
/set irc.ctcp.clientinfo ""
/set irc.ctcp.finger ""
/set irc.ctcp.source ""
/set irc.ctcp.time ""
/set irc.ctcp.userinfo ""
/set irc.ctcp.version ""
/set irc.ctcp.ping ""
----

"xfer" プラグイン (これは IRC DCC 機能を使うためのものです) をアンロードして自動ロードを無効化します:

----
/plugin unload xfer
/set weechat.plugin.autoload "*,!xfer"
----

パスフレーズを定義してパスワードなどの保護したいデータの使用時は常にセキュアデータを使います:
`/help secure` およびセキュアデータを使用したいオプションの `/help` を参照してください
(セキュアデータを使うことが可能なオプションのヘルプにはこの点が明記されています)。
link:weechat_user.ja.html#secured_data[ユーザーズガイド / 暗号化データ] を参照してください。

例:

----
/secure passphrase xxxxxxxxxx
/secure set freenode_username username
/secure set freenode_password xxxxxxxx
/set irc.server.freenode.sasl_username "${sec.data.freenode_username}"
/set irc.server.freenode.sasl_password "${sec.data.freenode_password}"
----

[[sharing_config_files]]
=== WeeChat の設定を共有したいのですが、公開しても良いファイルと秘密にしておくべきファイルを教えてください。

_~/.weechat/*.conf_ ファイルは公開しても問題ありませんが、
パスフレーズで暗号化されたパスワードが含まれる _sec.conf_ ファイルは秘密にしてください。

サーバおよびチャンネルパスワード等の機密情報を `/secure` コマンドで
_sec.conf_ に保存していない場合、これらの情報は _irc.conf_
などのファイルに保存されます。

設定ファイルに関する詳しい情報はlink:weechat_user.ja.html#files_and_directories[ユーザーズガイド / ファイルとディレクトリ]を参照してください。

[[development]]
== 開発

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

以下のページを参照してください: https://weechat.org/about/support

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

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

----
$ gdb /path/to/weechat
(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
(gdb) run
----

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

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

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

[[help_developers]]
=== どうすれば WeeChat 開発者を手伝えますか。

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

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

[[donate]]
=== WeeChat 開発者にお金か何かを贈りたいのですが。

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