= WeeChat ユーザーズガイド :author: Sébastien Helleu :email: flashcode@flashtux.org :lang: ja :toc: left :toclevels: 4 :toc-title: 目次 :sectnums: :sectnumlevels: 3 :docinfo1: 翻訳者: * Ryuunosuke Ayanokouzi , 2012-2019 このマニュアルは WeeChat チャットクライアントについての文書で、これは WeeChat の一部です。 この文書の最新版は以下のページにあります: https://weechat.org/doc [[introduction]] == イントロダクション WeeChat (Wee Enhanced Environment for Chat) はフリーのチャットクライアントです。高速で軽量、多くのオペレーティングシステムで動くように設計されています。 [[features]] === 特徴 主な特徴: * マルチプロトコル (主に IRC) * 複数のサーバへの接続 (SSL、IPv6、プロキシをサポート) * コンパクト、高速、軽量 * プラグインとスクリプトでカスタマイズや拡張が可能 * IRC の RFC に準拠 https://tools.ietf.org/html/rfc1459[1459]、 https://tools.ietf.org/html/rfc2810[2810]、 https://tools.ietf.org/html/rfc2811[2811]、 https://tools.ietf.org/html/rfc2812[2812]、 https://tools.ietf.org/html/rfc2813[2813]。 * リモートインターフェース用の IRC プロキシとリレー * マルチプラットフォーム (GNU/Linux、*BSD、macOS、Windows 等) * 完全な GPL、フリーソフトウェア WeeChat のホームページ: https://weechat.org/ [[prerequisites]] === 事前に必要なもの WeeChat をインストールするには、以下のものが必要です: * GNU/Linux が稼動しているシステム (ソースパッケージを使う場合は、コンパイラツールも必要)、または互換 OS * _root_ 特権 (WeeChat をシステムディレクトリにインストールする場合) * 一部のライブラリ (<>を参照)。 [[install]] == インストール方法 [[binary_packages]] === バイナリパッケージ 多くのディストリビューションではバイナリパッケージが利用できます。例えば: * Arch Linux: `pacman -S weechat` * Cygwin (Windows): setup.exe で WeeChat パッケージを選択してください * Debian/Ubuntu (または Debian 互換ディストリビューション): `apt-get install weechat-curses weechat-plugins` * Fedora Core: `dnf install weechat` * Gentoo: `emerge weechat` * Mandriva/RedHat (または RPM 互換ディストリビューション): `rpm -i /path/to/weechat-x.y.z-1.i386.rpm` * openSUSE: `zypper in weechat` * Sourcemage: `cast weechat` 例えば weechat-plugins 等の追加パッケージを使うとさらに便利になるかもしれません。 その他のディストリビューションでは、インストール説明マニュアルを参照してください。 [[source_package]] === ソースパッケージ WeeChat は CMake または autotools を使ってコンパイルできます (CMake を使うことが推奨されています)。 [NOTE] macOS では https://brew.sh/[Homebrew] を使ってください: `brew install weechat` (ヘルプを見るには: `brew info weechat`)。 [[dependencies]] ==== 依存関係 以下の表は WeeChat のコンパイルに必須または任意で必要なパッケージのリストです。 [width="100%",cols="6,^3,^3,.^13",options="header"] |=== | パッケージ ^(1)^ | バージョン | 要件 | 機能 | C コンパイラ (gcc, clang, ...) | | *必須* | ビルド | C++ コンパイラ | | | ビルドとテストの実行、JavaScript プラグイン | cmake | ≥ 3.0 | *必須* | ビルド (autotools でも可能ですが、CMake を推奨します) | pkg-config | | *必須* | インストール済みライブラリを検出 | libncursesw5-dev ^(2)^ | | *必須* | ncurses インターフェース | libcurl4-gnutls-dev | | *必須* | URL 転送 | zlib1g-dev | | *必須* | relay プラグインでパケットを圧縮 (weechat プロトコル)、スクリプトプラグイン | libgcrypt20-dev | | *必須* | 保護データ、IRC SASL 認証 (DH-BLOWFISH/DH-AES)、スクリプトプラグイン | libgnutls28-dev | 2.2.0 以上 ^(3)^ | | IRC サーバへの SSL 接続、IRC SASL 認証 (ECDSA-NIST256P-CHALLENGE) | gettext | | | 国際化 (メッセージの翻訳; ベース言語は英語です) | ca-certificates | | | SSL 接続に必要な証明書、relay プラグインで SSL サポート | libaspell-dev ∥ libenchant-dev | | | spell プラグイン | python3-dev | ^(4)^ | | python プラグイン | libperl-dev | | | perl プラグイン | ruby2.5, ruby2.5-dev | 1.9.1 以上 | | ruby プラグイン | liblua5.3-dev | | | lua プラグイン | tcl-dev | 8.5 以上 | | tcl プラグイン | guile-2.0-dev | 2.0 以上 | | guile (scheme) プラグイン | libv8-dev | 3.24.3 以下 | | javascript プラグイン | php-dev, libphp-embed | 7.0 以上 | | PHP プラグイン | libxml2-dev | | | PHP プラグイン | libargon2-0-dev | | | PHP プラグイン (PHP 7.2 以上の場合) | libsodium-dev | | | PHP プラグイン (PHP 7.2 以上の場合) | asciidoctor | 1.5.4 以上 | | man ページと文書のビルド | libcpputest-dev | 3.4 以上 | | ビルドとテストの実行 |=== [NOTE] ^(1)^ Debian GNU/Linux ディストリビューションにおけるパッケージ名です。他のディストリビューションではバージョンとパッケージ名が異なるかもしれません。 + ^(2)^ WeeChat は libncurses**w**5-dev でコンパイルすることを推奨します (*w* が重要です)。libncurses5-dev でもコンパイル可能ですが、これは推奨 *されません* (ワイドキャラクタの表示にバグを生じるでしょう)。 + ^(3)^ IRC SASL 認証で ECDSA-NIST256P-CHALLENGE を使うには、GnuTLS バージョン 3.0.21 以上が必要です。 + // TRANSLATION MISSING ^(4)^ By default Python 3.x is used. If you enable option `ENABLE_PYTHON2` (see below), only the version 2.7 of Python is recommended. Debian および Ubuntu ベースのディストリビューションを使っており、_/etc/apt/sources.list_ ファイルで "deb-src" ソースエントリを指定しているならば、すべての依存関係にあるパッケージを以下のコマンドでインストール可能です: ---- # apt-get build-dep weechat ---- [[compile_with_cmake]] ==== CMake によるコンパイル * システムディレクトリにインストールする場合 (_root_ 特権が必要です): ---- $ mkdir build $ cd build $ cmake .. $ make $ sudo make install ---- * 任意のディレクトリ (例えば自分のホームディレクトリ) にインストールする場合: ---- $ mkdir build $ cd build $ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/directory $ make $ make install ---- CMake に対するオプションを指定するには、以下の書式を使ってください: "-DOPTION=VALUE"。 よく利用されるオプションのリスト: [width="100%",cols="2m,2,5m,12",options="header"] |=== | オプション | 値 | デフォルト値 | 説明 | CMAKE_BUILD_TYPE | `Debug`, `Release`, `RelWithDebInfo`, `MinSizeRel` | | ビルド形式: WeeChat の開発版を使っている場合は `Debug` (または `RelWithDebInfo`) を推奨します。 | CMAKE_INSTALL_PREFIX | directory | /usr/local | WeeChat をインストールするディレクトリ。 | WEECHAT_HOME | directory | ~/.weechat | WeeChat 実行時のホームディレクトリ。 | CA_FILE | file | /etc/ssl/certs/ca-certificates.crt | 認証局を含むファイル。これは <> オプションのデフォルト値です。 | ENABLE_ALIAS | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_BUFLIST | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_CHARSET | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_MAN | `ON`, `OFF` | OFF | man ページのコンパイル。 | ENABLE_DOC | `ON`, `OFF` | OFF | HTML 文書のコンパイル。 | ENABLE_ENCHANT | `ON`, `OFF` | OFF | Enchant と含めた <>のコンパイル。 | ENABLE_EXEC | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_FIFO | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_FSET | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_GNUTLS | `ON`, `OFF` | ON | GnuTLS の有効化 (SSL 用)。 | ENABLE_GUILE | `ON`, `OFF` | ON | <> (Scheme) のコンパイル。 | ENABLE_IRC | `ON`, `OFF` | ON | <>のコンパイル | ENABLE_JAVASCRIPT | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_LARGEFILE | `ON`, `OFF` | ON | 巨大ファイルのサポート。 | ENABLE_LOGGER | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_LUA | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_NCURSES | `ON`, `OFF` | ON | Ncurses インターフェースのコンパイル。 | ENABLE_NLS | `ON`, `OFF` | ON | NLS の有効化 (多言語サポート)。 | ENABLE_PERL | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_PHP | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_PYTHON | `ON`, `OFF` | ON | <>のコンパイル。 // TRANSLATION MISSING | ENABLE_PYTHON2 | `ON`, `OFF` | OFF | Compile <> using Python 2 instead of Python 3. | ENABLE_RELAY | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_RUBY | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_SCRIPT | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_SCRIPTS | `ON`, `OFF` | ON | すべての<> (Python、Perl、Ruby、Lua、Tcl、Guile、JavaScript、PHP) のコンパイル。 | ENABLE_SPELL | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_TCL | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_TRIGGER | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_XFER | `ON`, `OFF` | ON | <>のコンパイル。 | ENABLE_TESTS | `ON`, `OFF` | OFF | コンパイルテスト。 | ENABLE_CODE_COVERAGE | `ON`, `OFF` | OFF | コードカバレッジオプションを有効化してコンパイル。 + このオプションはテスト網羅率を測定するために用意されています。 |=== その他のオプションは以下のコマンドで確認してください: ---- $ cmake -LA ---- Curses インターフェースを使う場合は以下のコマンドを使ってください: ---- $ ccmake .. ---- [[compile_with_autotools]] ==== autotools によるコンパイル [WARNING] CMake 以外を用いた WeeChat のビルドは公式にサポートされません。CMake を利用できない場合のみ autotools を使ってください。 + autotools を用いてビルドする場合、CMake よりも多くの依存パッケージとより長い時間が必要です。 * システムディレクトリにインストールする場合 (_root_ 特権が必要です): ---- $ ./autogen.sh $ mkdir build $ cd build $ ../configure $ make $ sudo make install ---- * 任意のディレクトリ (例えば自分のホームディレクトリ) にインストールする場合: ---- $ ./autogen.sh $ mkdir build $ cd build $ ../configure --prefix=/path/to/directory $ make $ make install ---- _configure_ スクリプトに対してオプションを指定することができます、オプションを表示するには以下のコマンドを使ってください: ---- $ ./configure --help ---- [[run_tests]] ==== テストの実行 テストをコンパイルするには以下のパッケージが *必須* です: * libcpputest-dev * C++ compiler テストは WeeChat のコンパイル時に有効化しなければいけません (CMake を使う場合): ---- $ cmake .. -DENABLE_TESTS=ON ---- コンパイル終了後、build ディレクトリでテストを起動してください (CMake を使う場合): ---- $ ctest -V ---- [[git_sources]] === Git ソース 警告: git ソースを用いる方法は上級者向けです。コンパイルに失敗したり、 不安定な可能性があります。警告しましたよ! git ソースを入手するには、以下のコマンドを使ってください: ---- $ git clone https://github.com/weechat/weechat.git ---- その後は、ソースパッケージの説明に従ってください (<>を参照)。 [[report_crashes]] === クラッシュレポート WeeChat がクラッシュした場合、または WeeChat をクラッシュさせる操作を報告する場合、以下の手順に従ってください: * デバッグを有効化してコンパイル (またはデバック情報を含んだバイナリパッケージをインストール) * システムの _core_ ファイルを有効化 * gdb のインストール [[debug_info]] ==== デバッグ情報 CMake でコンパイルする場合: ---- $ cmake .. -DCMAKE_BUILD_TYPE=Debug ---- autotools でコンパイルする場合は、デバックはデフォルトで有効化されています (`--with-debug=1`)。 バイナリパッケージをインストールする場合は、_weechat-dbg_ パッケージをインストールしてください。 [[core_files]] ==== Core ファイル _core_ ファイルを有効化するには、<> オプションを使ってください: ---- /set weechat.startup.sys_rlimit "core:-1" ---- WeeChat バージョン 0.3.8 以下または WeeChat の実行前に core ファイルを有効化したい場合には、`ulimit` コマンドを使ってください。 Linux で _bash_ シェルを使っている場合、以下の内容を `~/.bashrc` に追加してください: ---- ulimit -c unlimited ---- サイズを指定する場合は: ---- ulimit -c 200000 ---- [[gdb_backtrace]] ==== gdb でバックトレースを得る <>、WeeChat がクラッシュするとシステムは _core_ または _core.12345_ ファイルを作ります (_12345_ はプロセス番号です)。このファイルは WeeChat を起動したディレクトリに作られます (これは WeeChat がインストールされているディレクトリでは *ありません*!)。 例えば、_weechat_ が _/usr/bin/_ にインストールされ、_core_ ファイルが _/home/xxx/_ にある場合、以下のコマンドで gdb を起動してください: ---- gdb /usr/bin/weechat /home/xxx/core ---- gdb の中で `bt full` コマンドを実行するとバックトレースが表示されます。以下のような出力が得られるはずです: ---- (gdb) set logging file /tmp/crash.txt (gdb) set logging on Copying output to /tmp/crash.txt. (gdb) bt full #0 0x00007f9dfb04a465 in raise () from /lib/libc.so.6 #1 0x00007f9dfb04b8e6 in abort () from /lib/libc.so.6 #2 0x0000000000437f66 in weechat_shutdown (return_code=1, crash=1) at /some_path/src/core/weechat.c:351 #3 #4 0x000000000044cb24 in hook_process_timer_cb (arg_hook_process=0x254eb90, remaining_calls=) at /some_path/src/core/wee-hook.c:1364 hook_process = 0x254eb90 status = #5 0x000000000044cc7d in hook_timer_exec () at /some_path/src/core/wee-hook.c:1025 tv_time = {tv_sec = 1272693881, tv_usec = 212665} ptr_hook = 0x2811f40 next_hook = 0x0 #6 0x000000000041b5b0 in gui_main_loop () at /some_path/src/gui/curses/gui-curses-main.c:319 hook_fd_keyboard = 0x173b600 tv_timeout = {tv_sec = 0, tv_usec = 0} read_fds = {fds_bits = {0 }} write_fds = {fds_bits = {0 }} except_fds = {fds_bits = {0 }} max_fd = ---- このバックトレースを開発者に報告し、クラッシュを引き起こした動作を伝えてください。 ご協力ありがとうございます! [[debug_running_weechat]] ==== 起動中の WeeChat のデバッグ 起動している WeeChat をデバッグするには (例えば WeeChat がフリーズしているような場合)、gdb の引数にプロセス番号を与えて起動します (_12345_ は weechat プロセスの PID に変更してください): ---- gdb /usr/bin/weechat 12345 ---- クラッシュが起きた場合と同様に、`bt full` コマンドを使ってください: ---- (gdb) bt full ---- [[usage]] == 使い方 [[running_weechat]] === WeeChat の起動 WeeChat を起動させるには、以下コマンドを実行: ---- $ weechat ---- WeeChat の初回起動時にデフォルトのオプション設定を含む設定ファイルが _~/.weechat_ ディレクトリの中に作成されます (<>を参照してください)。 ==== コマンドラインオプション include::cmdline_options.ja.adoc[] ==== デバッグオプション [WARNING] 以下のオプションはデバッグ用です。*通常利用時には使わないでください!* include::cmdline_options_debug.ja.adoc[] [[environment_variables]] === 環境変数 以下の環境変数が定義されていた場合、WeeChat はそれを利用します: [width="100%",cols="1m,6",options="header"] |=== | 変数名 | 説明 | WEECHAT_HOME | WeeChat ホームディレクトリ (ここには設定ファイル、ログ、スクリプトなどがあります) | WEECHAT_PASSPHRASE | 暗号化データを復号化するためのパスフレーズ | WEECHAT_EXTRA_LIBDIR | プラグインをロードするための追加ディレクトリパス (設定したパス内の "plugins" ディレクトリからロードします) |=== [[files_and_directories]] === ファイルとディレクトリ デフォルト状態の WeeChat は `~/.weechat` ディレクトリ内に設定ファイルおよびその他のデータを書き込みます。 // TRANSLATION MISSING [[weechat_directories]] ==== WeeChat directories // TRANSLATION MISSING The WeeChat directories are: [width="100%",cols="1m,3",options="header"] |=== | パス/ファイル | 説明 | ~/.weechat/ | WeeChat ホームディレクトリ (変更するには <>を参照してください) |    logs/ | ログファイル (バッファごとに 1 つのファイル) |    python/ | Python スクリプト |       autoload/ | 起動時に自動ロードされる Python スクリプト ^(1)^ |    perl/ | Perl スクリプト |       autoload/ | 起動時に自動ロードされる Perl スクリプト ^(1)^ |    ruby/ | Ruby スクリプト |       autoload/ | 起動時に自動ロードされる Ruby スクリプト ^(1)^ |    lua/ | Lua スクリプト |       autoload/ | 起動時に自動ロードされる Lua スクリプト ^(1)^ |    tcl/ | Tcl スクリプト |       autoload/ | 起動時に自動ロードされる Tcl スクリプト ^(1)^ |    guile/ | Guile スクリプト |       autoload/ | 起動時に自動ロードされる Guile スクリプト ^(1)^ |    javascript/ | JavaScript スクリプト |       autoload/ | 起動時に自動ロードされる JavaScript スクリプト ^(1)^ |    php/ | PHP スクリプト |       autoload/ | 起動時に自動ロードされる PHP スクリプト ^(1)^ |=== [NOTE] ^(1)^ このディレクトリには親ディレクトリ内にあるスクリプトへのシンボリックリンクのみが含まれることが多いです。 // TRANSLATION MISSING [[weechat_files]] ==== WeeChat files WeeChat ホームディレクトリには以下のファイルが含まれます: [width="100%",cols="1m,3,6",options="header"] |=== | ファイル | 説明 | データ保護 | weechat.conf | WeeChat の主要設定ファイル | 保護される場合もあります (例: 保存されたバッファレイアウトに含まれるチャンネルのリスト) | sec.conf | 機密データを含む設定ファイル | *保護されます、機密性の高いデータ*: このファイルを誰かと共有してはいけません | plugins.conf | プラグイン設定ファイル | 保護される場合もあります、プラグインおよびスクリプトに依存します | alias.conf | _alias_ プラグイン用の設定ファイル | 保護される場合もあります、エイリアスに依存します | buflist.conf | _buflist_ プラグイン用の設定ファイル | 保護されません | charset.conf | _charset_ プラグイン用の設定ファイル | 保護されません | exec.conf | _exec_ プラグイン用の設定ファイル | 保護されません | fifo.conf | _fifo_ プラグイン用の設定ファイル | 保護されません | fset.conf | _fset_ プラグイン用の設定ファイル | 保護されません | guile.conf | _guile_ プラグイン用の設定ファイル | 保護されません | irc.conf | _irc_ プラグイン用の設定ファイル | *保護されます*: サーバ、nickserv、チャンネルのパスワードを保存することが可能です (これらのデータが `sec.conf` に保存されない場合) | javascript.conf | _javascript_ プラグイン用の設定ファイル | 保護されません | logger.conf | _logger_ プラグイン用の設定ファイル | 保護されません | lua.conf | _lua_ プラグイン用の設定ファイル | 保護されません | perl.conf | _perl_ プラグイン用の設定ファイル | 保護されません | php.conf | _php_ プラグイン用の設定ファイル | 保護されません | python.conf | _python_ プラグイン用の設定ファイル | 保護されません | relay.conf | _relay_ プラグイン用の設定ファイル | 保護されません | ruby.conf | _ruby_ プラグイン用の設定ファイル | 保護されません | script.conf | _script_ プラグイン用の設定ファイル | 保護されません | spell.conf | _spell_ プラグイン用の設定ファイル | 保護されません | tcl.conf | _tcl_ プラグイン用の設定ファイル | 保護されません | trigger.conf | _trigger_ プラグイン用の設定ファイル | 保護される場合もあります、トリガに依存します | xfer.conf | _xfer_ プラグイン用の設定ファイル | 保護されません | weechat.log | WeeChat ログファイル | 保護されません |=== [IMPORTANT] 手作業で設定ファイルを編集することは *推奨されません*。なぜなら WeeChat は常時 (例えば <> コマンドの実行時など) 設定ファイルに書き込む可能性がありますし、手作業で修正を加えた後には必ず <> コマンドを実行しなければいけない (これには <> を使って保存されていない変更を失うリスクがある) からです。 + 設定を編集するには <> コマンドを使ってください。これは値を検査し、設定の変更をすぐに適用します。 [[screen_layout]] === 画面レイアウト WeeChat を起動した端末の例: .... ▼ "buflist" バー ▼ "title" バー ┌──────────────────────────────────────────────────────────────────────────────────────┐ │1.freenode│Welcome to #test, this is a test channel │ │ weechat │12:52:27 --> | Flashy (flashcode@weechat.org) has joined #test │@Flashy│ │2. #test │12:52:27 -- | Nicks #test: [@Flashy @joe +weebot peter] │@joe │ │3. #abc │12:52:27 -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│ │4. #def │12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │ │5. #ghi │12:54:15 peter | hey! │ │ │ │12:55:01 @joe | hello │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │[12:55] [5] [irc/freenode] 2:#test(+n){4}* [Act: 3:#abc(2,5), 5] │ │ │[@Flashy(i)] hi peter!█ │ └──────────────────────────────────────────────────────────────────────────────────────┘ ▲ "status" と "input" バー "nicklist" バー ▲ .... 画面は以下のエリアから構成されます: * チャットログが表示されるチャットエリア (画面の真ん中)、それぞれの行は: ** 時刻 ** プレフィックス ("|" の前) ** メッセージ ("|" の後) * チャットエリアの周りにあるバー、デフォルトバーは: ** バッファリスト (_buflist_) バー、左端 ** タイトル (_title_) バー、チャットエリアの上 ** 状態 (_status_) バー、チャットエリアの下 ** 入力 (_input_) バー、状態バーの下 ** ニックネームリスト (_nicklist_) バー、右端 バッファリスト (_buflist_) バーは以下の初期要素を持っています: [width="100%",cols="^3,^4,10",options="header"] |=== | 要素 | 例 | 説明 | buflist | `1.weechat` | バッファ一覧 |=== 状態 (_title_) バーは以下の初期要素を持っています: [width="100%",cols="^3,^4,10",options="header"] |=== | 要素 | 例 | 説明 | buffer_title | `Welcome to #test` | バッファタイトル |=== 状態 (_status_) バーは以下の初期要素を持っています: [width="100%",cols="^3,^4,10",options="header"] |=== | 要素 | 例 | 説明 | time | `[12:55]` | 時刻 | buffer_last_number | `[5]` | リスト中の最後のバッファ番号 | buffer_plugin | `[irc/freenode]` | 現在のバッファのプラグイン (irc プラグインではバッファで利用されている IRC サーバ名を追加できます) | buffer_number | `2` | 現在のバッファの番号 | buffer_name | `#test` | 現在のバッファの名前 | buffer_modes | `+n` | IRC チャンネルモード | buffer_nicklist_count | `{4}` | ニックネームリスト中のニックネームの数 | buffer_zoom | ! | `!` はマージされたバッファがズームされている状態 (ズームされたものだけを表示する状態) を示します、空の場合はすべてのマージされたバッファが表示されていることを示します | buffer_filter | `+*+` | フィルタ表示: `+*+` の場合いくつかの行がフィルタされ (隠され) ます、空の場合すべての行が表示されます。 | scroll | `-MORE(50)-` | スクロール表示、最後の行が表示されてから追加された行数を含む。 | lag | `[Lag: 2.5]` | 遅延秒表示 (遅延が短い場合は非表示) | hotlist | `[Act: 3:#abc(2,5), 5]` | 変化のあったバッファのリスト (未読メッセージ) (例では、_#abc_ に 2 個のハイライトと 5 個の未読メッセージ、5 番目のバッファに 1 個の未読メッセージがあることを意味します。) | completion | `abc(2) def(5)` | 補完候補の単語リスト、各単語に対して適応される補完候補の数を含む。 |=== 入力 (_input_) バーは以下の初期要素を持っています: [width="100%",cols="^3,^4,10",options="header"] |=== | 要素 | 例 | 説明 | input_prompt | `[@Flashy]` | 入力プロンプト、irc の場合: ニックネームとモード (freenode では "+i" モードは不可視状態を意味します) | away | `(away)` | 離席状態表示 | input_search | `[Search (~ str,msg)]` | 検索インジケータ ("`~`": 大文字小文字を区別しない、"`==`": 大文字小文字を区別する、"`str`": 検索文字列、"`regex`": 検索正規表現、"`msg`": メッセージ部分から検索、"`pre`": プレフィックス部分から検索、"`pre\|msg`": プレフィックス部分とメッセージ部分から検索) | input_paste | `[Paste 7 lines ? [ctrl-Y] Yes [ctrl-N] No]` | 行をペーストする場合にユーザへ行われる質問 | input_text | `hi peter!` | 入力テキスト |=== ニックネームリスト (_nicklist_) バーは以下の初期要素を持っています: [width="100%",cols="^3,^4,10",options="header"] |=== | 要素 | 例 | 説明 | buffer_nicklist | `@Flashy` | 現在のバッファのニックネーム一覧 |=== その他の利用可能な要素 (初期状態のバーはこれらの要素を持ちません): [width="100%",cols="^3,^4,10",options="header"] |=== | 要素 | 例 | 説明 | spell_dict | `fr,en` | 現在のバッファにおけるスペリング辞書 | spell_suggest | `print,prone,prune` | カーソル下の単語に対するスペリング候補 (スペルが間違っている場合) | buffer_count | `10` | 開いているバッファの総数 | buffer_short_name | `#test` | 現在のバッファの短い名前 | irc_channel | `#test` | 現在の IRC チャンネル名 | irc_nick_modes | `@` | 自分のニックネームに対する IRC モード | mouse_status | `M` | マウスの状態 (マウスが無効化されている場合は空文字列) | window_number | `2` | 現在のウィンドウ番号 |=== [[command_line]] === コマンドライン WeeChat コマンドライン (ウィンドウの一番下にあります) はコマンドの実行やバッファにテキストを送信するために利用します。 [[command_line_syntax]] ==== 文法 コマンドは "/" 文字で始まり、コマンドの名前を続けます。例えば、すべてのオプションを表示するには: ---- /set ---- "/" が最初に無い場合、そのテキストはバッファに送信されます。例えば、_hello_ というテキストをバッファに送信するには: ---- hello ---- "/" 文字から始まるテキストを送信したい場合、2 重に "/" をつけます。例えば、`/set` というテキストを現在のバッファに送信するには: ---- //set ---- [[command_line_colors]] ==== 色コード IRC 等のプラグインでは、以下の色コードと属性を利用できます (kbd:[Ctrl+c] の後に、オプションとともに以下のキーを押してください): [width="60%",cols="3,5",options="header"] |=== | キー | 説明 | kbd:[Ctrl+c], kbd:[b] | テキストを太字に | kbd:[Ctrl+c], kbd:[c], kbd:[xx] | テキスト表示色を `xx` に (以下の色リストを参照) | kbd:[Ctrl+c], kbd:[c], kbd:[xx], kbd:[,], kbd:[yy] | テキスト表示色を `xx` に、背景色を `yy` に (以下の色リストを参照) | kbd:[Ctrl+c], kbd:[i] | テキストをイタリック体に | kbd:[Ctrl+c], kbd:[o] | テキスト表示色と属性をリセット | kbd:[Ctrl+c], kbd:[v] | テキストを反転 (テキスト表示色と背景色の入れ替え) | kbd:[Ctrl+c], kbd:[_] | テキストに下線を引く |=== [NOTE] 同じコードで (色コードを入力せずに kbd:[Ctrl+c], kbd:[c] を使うことで) 属性をキャンセルすることができます。 kbd:[Ctrl+c], kbd:[c] 用の色コード: include::autogen/user/irc_colors.adoc[] [NOTE] 端末で利用可能なすべての色を表示するには、WeeChat で `/color` を実行した後 kbd:[Alt+c] を入力するか、端末で以下のコマンドを実行してください: `weechat --colors`。 // TRANSLATION MISSING Example: display of "hello Alice!" with "hello" in light blue bold and "Alice" in light red underlined: // TRANSLATION MISSING ---- ^Cc12^Cbhello ^Cb^Cc04^C_Alice^C_^Cc! ---- // TRANSLATION MISSING Keys: // TRANSLATION MISSING kbd:[Ctrl+c] kbd:[c] kbd:[1] kbd:[2] kbd:[Ctrl+c] kbd:[b] + kbd:[h] kbd:[e] kbd:[l] kbd:[l] kbd:[o] kbd:[Space] + kbd:[Ctrl+c] kbd:[b] kbd:[Ctrl+c] kbd:[c] kbd:[0] kbd:[4] kbd:[Ctrl+c] kbd:[pass:[_]] + kbd:[A] kbd:[l] kbd:[i] kbd:[c] kbd:[e] + kbd:[Ctrl+c] kbd:[pass:[_]] kbd:[Ctrl+c] kbd:[c] + kbd:[!] [NOTE] irc プラグインでは、<> を使ってこれらの色を別の色に対応付けることができます。 [[colors]] === 色 WeeChat ではバーやチャットエリアにおけるテキスト表示に 32767 個の色ペアを利用できます (この機能を利用するには WeeChat が実行されている端末が 256 色表示に対応している必要があります)。 _TERM_ 環境変数の値によって、WeeChat で利用できる色と色ペアに以下の制限があります: [width="50%",cols="8,>2,>2",options="header"] |=== | $TERM | 色 | ペア | "rxvt-unicode", "xterm", ... | 88 | 32767 | "rxvt-256color", "xterm-256color", ... | 256 | 32767 | "screen" | 8 | 64 | "screen-256color" | 256 | 32767 | "tmux" | 8 | 64 | "tmux-256color" | 256 | 32767 |=== `weechat --colors` を実行するか、`/color` コマンドを WeeChat の中で実行することで、色表示の制限を確認できます。 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 つのコマンドを使って変数の値を変更してください: ---- /set env TERM screen-256color /upgrade ---- [[colors_basic]] ==== 基本色 WeeChat における基本色とは: [width="50%",cols="1m,4",options="header"] |=== | 名前 | 色 | default | デフォルトの端末色 (背景色を透過色とする) | black | 黒 | darkgray | 暗い灰色 | red | 暗い赤 | lightred | 明るい赤 | green | 暗い緑色 | lightgreen | 明るい緑色 | brown | 茶色 | yellow | 黄色 | blue | 暗い青 | lightblue | 明るい青 | magenta | 暗い赤紫色 | lightmagenta | 明るい赤紫色 | cyan | 暗い青緑色 | lightcyan | 明るい青緑色 | gray | 灰色 | white | 白 |=== [[colors_extended]] ==== 拡張色 WeeChat は画面に色が表示された時点で色ペアを動的に割り当てます (バッファとバーを表示する時点で)。 基本色に加えて、1 番 から端末の対応状況に依存する番号までの色番号を利用できます。 `/color` コマンドで現在の色と色制限を確認できます。kbd:[Alt+c] をタイプすることで、一時的に端末色を選択された色に変更できます。 例えば、バッファ中のに表示される時刻をオレンジ色にしたい場合、以下のようにしてください: ---- /set weechat.color.chat_time 214 ---- ステータスバーの色を非常に暗い緑色にしたい場合: ---- /set weechat.bar.status.color_bg 22 ---- [[colors_aliases]] ==== 別名 `/color alias` コマンドを使えば色の別名を追加できます。 追加後は任意の色関連オプションで別名を使えます。 例: ---- /color alias 214 orange /set weechat.color.chat_delimiters orange ---- [[colors_attributes]] ==== 属性 色に対していくつかの属性を付加することができます。1 つ以上の属性を色名または色番号の前に付加できます: * `+*+` : テキストを太字に * `+!+` : テキストを反転 * `+/+` : テキストをイタリック体に * `+_+` : テキストに下線を引く * `+|+` : 属性を保持: 色を変えた際に太字/反転/下線属性をリセットしない 例えば、自分自身のニックネームの表示色を白にして、下線を引きたい場合: ---- /set weechat.color.chat_nick_self _white ---- ステータスバーの時刻の表示色を橙色にして、下線を引いて、太字にしたい場合: ---- /set weechat.color.status_time *_214 ---- デフォルト端末色 (-1) に対して属性を設定したい場合、端末色番号の最大値よりも大きな値を利用してください。例えば、WeeChat における色番号の最大値は 99999 です。 端末の表示色に太字の属性を付加する例: ---- /set weechat.color.status_time *99999 ---- [[buffers_and_windows]] === バッファとウィンドウ _バッファ_ は番号、名前、表示された行 (とその他の情報) で構成されています。 バッファの例: * コアバッファ (起動時に WeeChat が作成、閉じることはできません) * irc サーバ (サーバからのメッセージを表示) * irc チャンネル * irc プライベートメッセージ _window_ はバッファを表示する画面エリアのことです。画面を複数のウィンドウに分割することができます。 それぞれのウィンドウは 1 つのバッファを表示します。バッファは隠したり (ウィンドウに表示しない)、複数のウィンドウに表示することできます。 水平方向分割の例 (`/window splith`): .... ▼ ウィンドウ #2 (バッファ #4) ┌──────────────────────────────────────────────────────────────────────────────────────┐ │1.freenode│Welcome to #def │ │ weechat │12:55:12 Max | hi │@Flashy│ │2. #test │12:55:20 @Flashy | hi Max! │Max │ │3. #abc │ │ │ │4. #def │ │ │ │5. #ghi │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │[12:55] [5] [irc/freenode] 4:#def(+n){2} │ │ │[@Flashy] │ │ │───────────────────────────────────────────────────────────────────────────│ │ │Welcome to #abc │ │ │12:54:15 peter | hey! │@Flashy│ │ │12:55:01 @joe | hello │@joe │ │ │ │+weebot│ │ │ │peter │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │[12:55] [5] [irc/freenode] 3:#abc(+n){4} │ │ │[@Flashy] hi peter!█ │ └──────────────────────────────────────────────────────────────────────────────────────┘ ▲ ウィンドウ #1 (バッファ #3) .... 垂直方向分割の例 (`/window splitv`): .... ┌──────────────────────────────────────────────────────────────────────────────────────┐ │1.freenode│Welcome to #abc │Welcome to #def │ │ weechat │12:54:15 peter | hey! │@Flashy│12:55:12 Max | hi │@Flashy│ │2. #test │12:55:01 @joe | hello │@joe │12:55:20 @Flashy | hi Max! │Max │ │3. #abc │ │+weebot│ │ │ │4. #def │ │peter │ │ │ │5. #ghi │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │[12:55] [5] [irc/freenode] 3:#abc(+n)│[12:55] [5] [irc/freenode] 4:#def(+n)│ │ │[@Flashy] hi peter!█ │[@Flashy] │ └──────────────────────────────────────────────────────────────────────────────────────┘ ▲ ウィンドウ #1 (バッファ #3) ▲ ウィンドウ #2 (バッファ #4) .... 垂直方向 + 水平方向分割の例: .... ▼ ウィンドウ #3 (バッファ #5) ┌──────────────────────────────────────────────────────────────────────────────────────┐ │1.freenode│Welcome to #abc │Welcome to #ghi │ │ weechat │12:54:15 peter | hey! │@Flashy│12:55:42 @Flashy | hi │@Flashy│ │2. #test │12:55:01 @joe | hello │@joe │12:55:56 alex | hi Flashy │alex │ │3. #abc │ │+weebot│ │ │ │4. #def │ │peter │ │ │ │5. #ghi │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │[12:55] [5] [irc/freenode] 5:#ghi(+n)│ │ │ │ │[@Flashy] │ │ │ │ │─────────────────────────────────────│ │ │ │ │Welcome to #def │ │ │ │ │12:55:12 Max | hi │@Flashy│ │ │ │ │12:55:20 @Flashy | hi Max! │Max │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │[12:55] [5] [irc/freenode] 3:#abc(+n)│[12:55] [5] [irc/freenode] 4:#def(+n)│ │ │[@Flashy] hi peter!█ │[@Flashy] │ └──────────────────────────────────────────────────────────────────────────────────────┘ ▲ ウィンドウ #1 (バッファ #3) ▲ ウィンドウ #2 (バッファ #4) .... [[buffers_lines]] === バッファの行 [[lines_format]] ==== 行の書式 書式付きバッファに表示される各行は以下のフィールドから構成されます: [width="100%",cols="2,2,10",options="header"] |=== | フィールド | 表示状態 | 説明 | 日付/時間 (メッセージ) | 表示 | メッセージの日付および時間 (おそらく過去)。 | 日付/時間 (表示) | 非表示 | WeeChat がメッセージを表示した時間。 | プレフィックス | 表示 | メッセージのプレフィックス、通常ニックネーム。 | メッセージ | 表示 | メッセージ自体。 | 表示状態 | 非表示 | ブール値: 行が表示された場合には真、行が <> コマンドでフィルタされた場合には偽。 | ハイライト | 非表示 | ブール値: 行がハイライトされている場合には真、それ以外の場合には偽。 | タグ | `/debug tags` の実行で表示状態を切り替え | 行に関連付けられたタグ (<>参照)。 |=== 外観オプション(_pass:[weechat.look.*]_) と色オプション (_pass:[weechat.color.chat_*]_) を使えば、行の表示をカスタマイズすることが可能です。 [[lines_tags]] ==== 行のタグ WeeChat は様々な目的で各行にタグを付けます: * ハイライト * 通知レベル * ログ記録 * <> コマンドの使用 `/debug tags` コマンドでタグを表示することが可能です (タグを非表示にする場合も同じコマンドを使います)。 通常使用するタグ (一部抜粋したリスト): [width="70%",cols="1m,4",options="header"] |=== | タグ | 説明 | no_filter | フィルタできない行 | no_highlight | ハイライトできない行 | no_log | ログファイルに書き込まれない行 | log0 ... log9 | 行に対するログレベル (`/help logger` を参照) | notify_none | この行を含むバッファはホットリストに追加されません | notify_message | この行を含むバッファは "message" レベルでホットリストに追加されます | notify_private | この行を含むバッファは "private" レベルでホットリストに追加されます | notify_highlight | この行を含むバッファは "highlight" レベルでホットリストに追加されます | self_msg | 自分のメッセージ | nick_xxx | ニックネーム "xxx" からのメッセージ | prefix_nick_ccc | プレフィックスを色 "ccc" のニックネームにします | host_xxx | メッセージ中のユーザ名とホスト | irc_xxx | IRC メッセージ "xxx" (コマンドまたは 3 桁の番号) | irc_numeric | IRC 番号メッセージ | irc_error | IRC からのエラー | irc_action | あるニックネームからのアクション (`/me` コマンド) | irc_ctcp | CTCP メッセージ | irc_ctcp_reply | CTCP メッセージに対する返信 | irc_smart_filter | "smart filter" でフィルタリング可能な IRC メッセージ | away_info | 離席状態のメッセージ |=== [[bars]] === バー _バー_ とは任意のテキストを含めることができるチャットエリア以外の場所です。 バーオプションは `weechat.bar.name.option` オプションで設定します。ここで `name` はバーの名前、`option` はこのバーのオプション名です。 バーオプションのリスト: [width="100%",cols="2m,2,10",options="header"] |=== | オプション名 | 値 | 説明 | type | `root`、`window` | `root` 型バーは画面上の全ウィンドウの外側にきっかり 1 回だけ表示されます。 デフォルトバーである _buflist_ は `root` 型のバーです。 + `window` 型バーは各ウィンドウの中に表示されます。例えば、`/window splith` や `/window splitv` などの方法で画面を 1 回分割した場合、1 つのバーがそれぞれのウィンドウに表示されます。デフォルトの `window` 型バーには _title_、_status_、_input_、_nicklist_ などがあります。 | position | `top`、`bottom`、`left`、`right` | バーの位置: チャットエリアの上、下、左、右。 | priority | 0 以上の整数 | バーの表示優先度: 型と位置が同じ複数のバーを画面に表示する順番に利用される。 + バーは画面の端から中心に向かって表示される。高い優先度を持つバーが先に (画面の端に近い側に) 表示される。 + 例: 優先度 1000 の _input_ バーは優先度 500 の _status_ バーよりも先に表示される。 | size | 0 以上の整数 | バーのサイズ: 位置が右/左の場合は列数、位置が上/下の場合は行数。値が `0` の場合は自動 (バーのサイズはバーの内容を基に計算される)。 | size_max | 0 以上の整数 | バーの最大サイズ、`0` = 制限無し (このオプションは `size` = `0` の場合のみ使われる)。 | color_bg | 色 | バーのデフォルトの背景色 | color_fg | 色 | バーのデフォルトのテキスト色 | color_delim | 色 | バーの区切り文字の色 | hidden | `on`、`off` | このオプションが `on` の場合、バーは表示されません。 + 注意: このオプションを変更する代わりに、`/bar` コマンドを使うと便利です。例: `/bar toggle nicklist` (<> コマンドを参照)。 | separator | `on`、`off` | このオプションが `on` の場合、セパレータ (区切り線) がバー同士またはバーとチャットエリアの間に表示されます。 | items | 文字列 | _items_ のリスト (詳細は<>を参照)。 | filling_left_right | `horizontal`、`vertical`、`columns_horizontal`、`columns_vertical` | 位置が `left` または `right` のバーに対するフィリングタイプ (詳細は<>を参照)。 | filling_top_bottom | `horizontal`、`vertical`、`columns_horizontal`、`columns_vertical` | 位置が `top` または `bottom` のバーに対するフィリングタイプ (詳細は<>を参照)。 | conditions | 文字列 | バーを表示する状態 (詳細は<>を参照)。 |=== [[bar_items]] ==== バー要素 _items_ オプションはバー要素をコンマ (画面上の要素同士に間隔を空ける) または `+++` (間隔を空けない) で区切った文字列です。 バー要素のリストは `/bar listitems` コマンドで表示されます。 要素名の前または後に文字を表示させることができます (英数字以外の文字、`+-+` または `+_+`)。この文字はバー (_color_delim_ オプション) で定義された区切り文字の色をつけて要素の前または後に表示されます。 バー要素を含むバーの例 "[time],buffer_number+:+buffer_plugin+.+buffer_name": .... ┌───────────────────────────────────────────────────────────────────────────┐ │[12:55] 3:irc/freenode.#weechat │ └───────────────────────────────────────────────────────────────────────────┘ .... 特殊構文を使うことで、バー要素: "@buffer:item" ("buffer" はバッファの完全な名前、"item" はバー要素の名前) を表示する際に強制的に指定されたバッファを利用することが可能です。 これはルートバーに現在のウィンドウで表示されない (またはどこにも表示されない) 特定のバッファの要素を表示させる際に便利です。 例: bitlbee のニックネームリストをルートバーに表示させる (バーが _bitlist_ で bitlbee サーバが _bitlbee_ の場合): ---- /set weechat.bar.bitlist.items "@irc.bitlbee.&bitlbee:buffer_nicklist" ---- [[bar_filling]] ==== バーフィリング フィリングタイプには 4 つの種類があります: * `horizontal`: 左から右に向かって要素を水平に表示。要素内に改行がある場合、空白を行区切りに利用します。 * `vertical`: 上から下に向かって要素を表示。要素内に改行がある場合、改行を行区切りに利用します。 * `columns_horizontal`: テキストを左寄せして、列形式で要素を表示。最初の要素は左上、2 番目は同じ行の 1 列右側。 * `columns_vertical`: テキストを左寄せして、列形式で要素を表示。最初の要素は左上、2 番目は同じ列の 1 行下側。 デフォルトバーである _title_、_status_、_input_ は _horizontal_ フィリング、_nicklist_ は _vertical_ フィリング。 _nicklist_ バーに対するフィリングの例: .... ┌───────────────────────────────────────────────────────────────────────┐ │Welcome to #test, this is a test channel │ │12:54:15 peter | hey! │@carl │ │12:55:01 +Max | hello │@jessika│ │ │@maddy │ │ │%Diego │ │ │%Melody │ │ │+Max │ │ │ celia │ │ │ Eva │ │ │ freddy │ │ │ Harold^│ │ │ henry4 │ │ │ jimmy17│ │ │ jodie ▼│ │[12:55] [6] [irc/freenode] 3:#test(+n){24} │ │[@carl] █ │ └───────────────────────────────────────────────────────────────────────┘ filling_left_right = vertical ▲ ┌───────────────────────────────────────────────────────────────────────┐ │Welcome to #test, this is a test channel │ │12:54:15 peter | hey! │@carl lee │ │12:55:01 +Max | hello │@jessika louise │ │ │@maddy mario │ │ │%Diego mark │ │ │%Melody peter │ │ │+Max Rachel │ │ │ celia richard│ │ │ Eva sheryl │ │ │ freddy Vince │ │ │ Harold^ warren │ │ │ henry4 zack │ │ │ jimmy17 │ │ │ jodie │ │[12:55] [6] [irc/freenode] 3:#test(+n){24} │ │[@carl] █ │ └───────────────────────────────────────────────────────────────────────┘ filling_left_right = columns_vertical ▲ ┌───────────────────────────────────────────────────────────────────────┐ │@carl %Diego celia Harold^ jodie mario Rachel Vince │ │@jessika %Melody Eva henry4 lee mark richard warren │ │@maddy +Max freddy jimmy17 louise peter sheryl zack │ │───────────────────────────────────────────────────────────────────────│ │ │ filling_top_bottom = columns_vertical ▲ ┌───────────────────────────────────────────────────────────────────────┐ │@carl @jessika @maddy %Diego %Melody +Max celia Eva │ │ freddy Harold^ henry4 jimmy17 jodie lee louise mario │ │ mark peter Rachel richard sheryl Vince warren zack │ │───────────────────────────────────────────────────────────────────────│ │ │ filling_top_bottom = columns_horizontal ▲ .... [[bar_conditions]] ==== バー状態 _conditions_ オプションはバーを表示するか否かを評価する文字列です。 文字列は以下のいずれか: * _active_: 非アクティブ状態のウィンドウ * _inactive_: 非アクティブ状態のウィンドウ * _nicklist_: ニックネームリストが含まれるバッファのウィンドウ * 式: ブール値として評価 (<> コマンドを参照) 式に使える変数は以下: * `+${active}+`: ウィンドウがアクティブ状態の時に真 * `+${inactive}+`: ウィンドウが非アクティブ状態の時に真 * `+${nicklist}+`: ウィンドウに表示されるバッファがニックネームリストの場合に真。 式に使えるポインタは以下: * `+${window}+`: 状態が評価されたウィンドウ * `+${buffer}+`: 状態が評価されたウィンドウのバッファ ニックネームリストを持ち、ウィンドウ幅が 100 より大きい全てのバッファにニックネームリストバーを表示する例: ---- /set weechat.bar.nicklist.conditions "${nicklist} && ${window.win_width} > 100" ---- 上と同じだが、_&bitlbee_ バッファでは常にニックネームリストを表示 (ウィンドウ幅が狭くても): ---- /set weechat.bar.nicklist.conditions "${nicklist} && (${window.win_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)" ---- [[bare_display]] === 最小限表示 「最小限表示」と呼ばれる特殊な表示状態を使うことで、(マウスを使って) 長い URL を簡単にクリックしたり、テキストを簡単に選択できるようになっています。 最小限表示は以下の機能を持っています: * 現在のバッファの内容だけを表示: 分割ウィンドウやバー等 (タイトル、ニックネームリスト、状態、入力、...) も表示しない * WeeChat マウスサポートを無効化 (有効化されていた場合): 端末でやるのと同じように URL をクリックしたりテキストを選択できます * ncurses を使わない、このため URL を行の最後で分断されることがなくなります。 最小限表示を有効化するデフォルトキーは kbd:[Alt+l] (`L`) で、終了するには同じキーを押してください (また、デフォルトでは入力が変更された場合に最小限表示を終了します、<> オプションを参照)。 <> オプションを使えば、時間書式を変更することも可能です。 <> コマンドを使えば、指定秒後に最小限表示を有効化することができます。 WeeChat が以下のような表示状態の場合: .... ┌──────────────────────────────────────────────────────────────────────────────────────┐ │1.freenode│Welcome to #abc │ │ weechat │12:52:27 --> | Flashy (flashcode@weechat.org) has joined #abc │@Flashy│ │2. #test │12:52:27 -- | Nicks #abc: [@Flashy @joe +weebot peter] │@joe │ │3. #abc │12:52:27 -- | Channel #abc: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│ │4. #def │12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │ │5. #ghi │12:54:15 peter | hey! │ │ │ │12:55:01 @joe | peter: hook_process: https://weechat.org/files/do │ │ │ │ | c/devel/weechat_plugin_api.en.html#_weechat_hook_ │ │ │ │ | process │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │[12:55] [5] [irc/freenode] 3:#abc(+n){4} │ │ │[@Flashy(i)] hi peter!█ │ └──────────────────────────────────────────────────────────────────────────────────────┘ .... 最小限表示では以下の様に表示されます: .... ┌──────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │12:52 --> Flashy (flashcode@weechat.org) has joined #abc │ │12:52 -- Nicks #abc: [@Flashy @joe +weebot peter] │ │12:52 -- Channel #abc: 4 nicks (2 ops, 1 voice, 1 normal) │ │12:52 -- Channel created on Tue Jan 27 06:30:17 2009 │ │12:54 hey! │ │12:55 <@joe> peter: hook_process: https://weechat.org/files/doc/devel/weechat_plugin_a│ │pi.en.html#_weechat_hook_process │ └──────────────────────────────────────────────────────────────────────────────────────┘ .... このため、端末で問題なく _joe_ さんからの URL をクリックできます (もちろん、使用中の端末で URL をクリックできるように設定されていなければいけませんが)。 [[notify_levels]] === 通知レベル [[setup_notify_levels]] ==== 通知レベルの設定 バッファに表示された各メッセージには 4 つのレベルが設定されています。レベルの低いものから順に: * _low_: 重要性の低いメッセージ (例えば irc の参加/退出/終了メッセージ) * _message_: ユーザからのメッセージ * _private_: プライベートバッファのメッセージ * _highlight_: ハイライトされたメッセージ それぞれのバッファには通知レベルが設定されており、通知レベルに対応するメッセージの数がホットリストに表示されます。 デフォルトの通知レベルは <> オプションで指定し、デフォルトは _all_ です。 [width="50%",cols="3m,10",options="header"] |=== | 通知レベル | ホットリストに追加されるメッセージのレベル | none | (無効) | highlight | _highlight_ + _private_ | message | _highlight_ + _private_ + _message_ | all | _highlight_ + _private_ + _message_ + _low_ |=== 通知レベルはバッファグループに対して設定することも可能で、例えば irc サーバ "freenode" に含まれる全てのバッファに対して設定する場合: ---- /set weechat.notify.irc.freenode message ---- "#weechat" チャンネルだけに対して、通知レベルを _highlight_ に設定する場合: ---- /set weechat.notify.irc.freenode.#weechat highlight ---- `/buffer` コマンドで、あるバッファに対する通知レベルを設定できます: ---- /buffer notify highlight ---- [[max_hotlist_level_nicks]] ==== ニックネームに対するホットリストレベルの最大値 ニックネーム、バッファ、バッファグループ (IRC サーバなど) に対してホットリストレベルの最大値を設定することが可能です。 あるニックネームのリストに対してバッファプロパティ "hotlist_max_level_nicks" を設定したり、各ニックネームに対してホットリストレベルの最大値を設定することも可能です。設定可能なレベルは以下です: * -1: ニックネームがホットリストを変更しない優先度 * 0: 低優先度 (参加および退出メッセージなど) * 1: 通常メッセージ * 2: プライベートメッセージ * 3: ハイライト (これはすべてのメッセージのデフォルト最大値であるため、通常これを指定することはありません) 例えば現在のバッファで "joe" と "mike" からのメッセージに対するハイライトを無効化するには以下のように設定します: ---- /buffer set hotlist_max_level_nicks_add joe:2,mike:2 ---- [NOTE] バッファプロパティ "hotlist_max_level_nicks" は設定ファイルに保存されません。 + これを保存するには _buffer_autoset.py_ スクリプトを使ってください: このスクリプトをインストールするには `/script install buffer_autoset.py` コマンドを使い、ヘルプを見るには `/help buffer_autoset` コマンドを使ってください。 [[highlights]] === ハイライト [[highlights_words]] ==== ハイライトする単語の追加 デフォルトで WeeChat は自分のニックネームが含まれる他のユーザからのメッセージをハイライトします。このため、ハイライトはバッファに依存します (ニックネームはバッファごとに異なる場合があります)。 他の単語を追加するには <> オプションを使います。例えば自分のニックネーム、"word1"、"word2"、"test" から始まる任意の単語をハイライトするには以下のように設定します: ---- /set weechat.look.highlight word1,word2,test* ---- 単語に対してさらに具体的なルールを設定する必要がある場合、<> オプションを使って正規表現で指定することも可能です。例えば "flashcode"、"flashcöde"、"flashy" という単語をハイライトするには以下のように設定します: ---- /set weechat.look.highlight_regex flashc[oö]de|flashy ---- ハイライトする単語の区切りは <> オプションを使って設定します。 [[highlights_tags]] ==== ハイライトするタグの追加 表示される行には「タグ」を含めることが可能です。「タグ」とはメッセージの出自やメッセージ自身に関する情報を与えるものです。 + `/debug tags` コマンドでタグを表示することが可能です (タグを非表示にする場合も同じコマンドを使います)。 ハイライトするタグを明示するには <> オプションを使います。複数のタグを指定するにはコンマで区切り、複数のタグの論理 "and" を表すには `+++` で区切ります。 例えば "FlashCode" というニックネームからのすべてのメッセージと "toto" で始まるニックネームからのすべての通知メッセージをハイライトするには以下のように設定します: ---- /set weechat.look.highlight_tags "nick_flashcode,irc_notice+nick_toto*" ---- [[highlights_regex_buffer]] ==== バッファに対する特別なハイライトの設定 バッファプロパティ "highlight_regex" と正規表現を使ってハイライトを強制できます。 例えば現在のバッファ宛のすべてのメッセージをハイライトするには以下のように設定します: ---- /buffer set highlight_regex .* ---- [NOTE] バッファプロパティ "highlight_regex" は設定ファイルに保存されません。 + これを保存するには _buffer_autoset.py_ スクリプトを使ってください: このスクリプトをインストールするには `/script install buffer_autoset.py` コマンドを使い、ヘルプを見るには `/help buffer_autoset` コマンドを使ってください。 [[key_bindings]] === デフォルトのキー割り当て [[key_bindings_command_line]] ==== コマンドライン用のキー [width="100%",cols="^.^3,.^8,.^5",options="header"] |=== | キー | 説明 | コマンド | kbd:[←] + kbd:[Ctrl+b] | コマンドラインで前の文字に移動 | `/input move_previous_char` | kbd:[→] + kbd:[Ctrl+f] | コマンドラインで次の文字に移動 | `/input move_next_char` | kbd:[Ctrl+←] + kbd:[Alt+b] | コマンドラインで前の単語に移動 | `/input move_previous_word` | kbd:[Ctrl+→] + kbd:[Alt+f] | コマンドラインで次の単語に移動 | `/input move_next_word` | kbd:[Home] + kbd:[Ctrl+a] | コマンドラインで行頭に移動 | `/input move_beginning_of_line` | kbd:[End] + kbd:[Ctrl+e] | コマンドラインで行末に移動 | `/input move_end_of_line` | kbd:[Ctrl+c], kbd:[b] | テキストを太字化するコードの挿入 | `/input insert \x02` | kbd:[Ctrl+c], kbd:[c] | テキストに色をつけるコードの挿入 | `/input insert \x03` | kbd:[Ctrl+c], kbd:[i] | テキストをイタリック体にするコードの挿入 | `/input insert \x1D` | kbd:[Ctrl+c], kbd:[o] | テキスト色のリセットを行うコードの挿入 | `/input insert \x0F` | kbd:[Ctrl+c], kbd:[v] | テキスト色の反転を行うコードの挿入 | `/input insert \x16` | kbd:[Ctrl+c], kbd:[_] | テキストに下線を引くコードの挿入 | `/input insert \x1F` | kbd:[Del] + kbd:[Ctrl+d] | コマンドラインで次の文字を削除 | `/input delete_next_char` | kbd:[Backsp.] + kbd:[Ctrl+h] | コマンドラインで前の文字を削除 | `/input delete_previous_char` | kbd:[Ctrl+k] | コマンドラインでカーソルより後の文字列を削除 (削除された文字列は WeeChat 専用の内部クリップボードに保存) | `/input delete_end_of_line` | kbd:[Ctrl+r] | バッファ中の履歴からテキスト検索 (<>を参照) | `/input search_text_here` | kbd:[Ctrl+t] | 文字の入れ替え | `/input transpose_chars` | kbd:[Ctrl+u] | コマンドラインでカーソルより前の文字列を削除 (削除された文字列は WeeChat 専用の内部クリップボードに保存) | `/input delete_beginning_of_line` | kbd:[Ctrl+w] | コマンドラインで前の単語を削除 (削除された文字列は WeeChat 専用の内部クリップボードに保存) | `/input delete_previous_word` | kbd:[Ctrl+y] | WeeChat 専用の内部クリップボードの内容をペースト | `/input clipboard_paste` | kbd:[Ctrl+_] | コマンドラインの最後の動作をやり直す | `/input undo` | kbd:[Alt+_] | コマンドラインの最後の動作を取り消す | `/input redo` | kbd:[Tab] | コマンドやニックネームを補完 (再度 kbd:[Tab] することで次の補完候補を表示) | `/input complete_next` | kbd:[Shift+Tab] | 補完候補が無い場合: 部分補完を行う、補完候補が有る場合: 前の補完候補を表示 | `/input complete_previous` | kbd:[Enter] + kbd:[Ctrl+j] + kbd:[Ctrl+m] | コマンドを実行するか、メッセージを送信する (検索モードの場合: 検索の終了) | `/input return` | kbd:[↑] | 前のコマンド/メッセージを呼び出す (検索モードの場合: 上方向に検索) | `/input history_previous` | kbd:[↓] | 次のコマンド/メッセージを呼び出す (検索モードの場合: 下方向に検索) | `/input history_next` | kbd:[Ctrl+↑] | グローバル履歴から前のコマンド/メッセージを呼び出す (すべてのバッファに対して共通の履歴) | `/input history_global_previous` | kbd:[Ctrl+↓] | グローバル履歴から次のコマンド/メッセージを呼び出す (すべてのバッファに対して共通の履歴) | `/input history_global_next` | kbd:[Alt+d] | コマンドラインで次の単語を削除 (削除された文字列は WeeChat 専用の内部クリップボードに保存) | `/input delete_next_word` | kbd:[Alt+k] | キー入力を奪って、コマンドラインにコード (キーが割り当てられていればコマンド) を入力 | `/input grab_key_command` | kbd:[Alt+r] | コマンドラインへの入力をすべて削除 | `/input delete_line` | kbd:[Alt+s] | スペルチェッカの有効無効を切り替え | `/mute spell toggle` |=== [[key_bindings_buffers_windows]] ==== バッファ / ウィンドウ用のキー [width="100%",cols="^.^3,.^8,.^5",options="header"] |=== | キー | 説明 | コマンド | kbd:[Ctrl+l] (`L`) | 全ウィンドウを再描画 | `/window refresh` | kbd:[Ctrl+s], kbd:[Ctrl+u] | すべてのバッファに未読マークをセット | `/input set_unread` | kbd:[Ctrl+x] | 同じ番号を持つバッファにアタッチされていた場合、現在のバッファに移動 | `/input switch_active_buffer` | kbd:[Alt+x] | マージされたバッファに再ズーム (kbd:[Alt+x]: 全てのマージされたバッファを表示) | `/input zoom_merged_buffer` | kbd:[PgUp] | バッファ履歴を 1 ページ分上方向にスクロール | `/window page_up` | kbd:[PgDn] | バッファ履歴を 1 ページ分下方向にスクロール | `/window page_down` | kbd:[Alt+PgUp] | バッファ履歴を数行分上方向にスクロール | `/window scroll_up` | kbd:[Alt+PgDn] | バッファ履歴を数行分下方向にスクロール | `/window scroll_down` | kbd:[Alt+Home] | バッファ履歴を最初までスクロール | `/window scroll_top` | kbd:[Alt+End] | バッファ履歴を最後までスクロール | `/window scroll_bottom` | kbd:[F1] + kbd:[Ctrl+F1] | バッファリストを上方に 1 ページスクロール | `/bar scroll buflist * -100%` | kbd:[F2] + kbd:[Ctrl+F2] | バッファリストを下方に 1 ページスクロール | `/bar scroll buflist * +100%` | kbd:[Alt+F1] | バッファリストを上端までスクロール | `/bar scroll buflist * b` | kbd:[Alt+F2] | バッファリストを下端までスクロール | `/bar scroll buflist * e` | kbd:[Alt+←] + kbd:[Alt+↑] + kbd:[Ctrl+p] + kbd:[F5] | 前のバッファに移動 | `/buffer -1` | kbd:[Alt+→] + kbd:[Alt+↓] + kbd:[Ctrl+n] + kbd:[F6] | 後のバッファに移動 | `/buffer +1` | kbd:[F7] | ウィンドウを前に移動 | `/window -1` | kbd:[F8] | ウィンドウを後に移動 | `/window +1` | kbd:[F9] | バッファタイトルを左方向にスクロール | `+/bar scroll title * -30%+` | kbd:[F10] | バッファタイトルを右方向にスクロール | `+/bar scroll title * +30%+` | kbd:[F11] + kbd:[Ctrl+F11] | ニックネームリストを上方向にスクロール | `/bar scroll nicklist * -100%` | kbd:[F12] + kbd:[Ctrl+F12] | ニックネームリストを下方向にスクロール | `/bar scroll nicklist * +100%` | kbd:[Alt+F11] | ニックネームリストを一番上にスクロール | `/bar scroll nicklist * b` | kbd:[Alt+F12] | ニックネームリストを一番下にスクロール | `/bar scroll nicklist * e` | kbd:[Alt+a] | 変更のあった次のバッファに移動 (優先順位: ハイライト、新規メッセージ、その他) | `/input jump_smart` | kbd:[Alt+h] | ホットリスト (他のバッファにあった変更通知リスト) を消去 | `/input hotlist_clear` | kbd:[Alt+j], kbd:[Alt+f] | 最初のバッファに移動 | `/buffer -` | kbd:[Alt+j], kbd:[Alt+l] (`L`) | 最後のバッファに移動 | `/buffer +` | kbd:[Alt+j], kbd:[Alt+r] | IRC 生バッファに移動 | `/server raw` | kbd:[Alt+j], kbd:[Alt+s] | IRC サーババッファに移動 | `/server jump` | kbd:[Alt+0...9] | 番号のバッファに移動 (0 = 10) | `/buffer *N` | kbd:[Alt+j], kbd:[01...99] | 番号のバッファに移動 | `/buffer *NN` | kbd:[Alt+l] (`L`) | 最小限表示の有効無効を切り替え | `/window bare` | kbd:[Alt+m] | マウスの有効無効を切り替え | `/mouse toggle` | kbd:[Alt+n] | 次のハイライトまでスクロール | `/window scroll_next_highlight` | kbd:[Alt+p] | 前のハイライトまでスクロール | `/window scroll_previous_highlight` | kbd:[Alt+u] | バッファを最初の未読行までスクロール | `/window scroll_unread` | kbd:[Alt+w], kbd:[Alt+↑] | 上のウィンドウに移動 | `/window up` | kbd:[Alt+w], kbd:[Alt+↓] | 下のウィンドウに移動 | `/window down` | kbd:[Alt+w], kbd:[Alt+←] | 左のウィンドウに移動 | `/window left` | kbd:[Alt+w], kbd:[Alt+→] | 右のウィンドウに移動 | `/window right` | kbd:[Alt+w], kbd:[Alt+b] | すべてのウィンドウサイズを均等に | `/window balance` | kbd:[Alt+w], kbd:[Alt+s] | 2 つのウィンドウを入れ替え | `/window swap` | kbd:[Alt+z] | 現在のウィンドウを最大化 (再度 kbd:[Alt+z] することで: 最初のウィンドウ状態に戻す、最大化前の状態) | `/window zoom` | kbd:[Alt+<] | バッファ訪問履歴で前のバッファに移動 | `/input jump_previously_visited_buffer` | kbd:[Alt+>] | バッファ訪問履歴で次のバッファに移動 | `/input jump_next_visited_buffer` | kbd:[Alt+/] | 最後に表示したバッファに移動 (バッファ移動前に表示していたウィンドウ) | `/input jump_last_buffer_displayed` | kbd:[Alt+=] | フィルタの有効無効を切り替え | `/filter toggle` | kbd:[Alt+-] | 現在のバッファのフィルタの有効無効を切り替え | `/filter toggle @` |=== [[key_bindings_search_context]] ==== 「検索」モード用のキー 以下のキーは「検索」検索モード (バッファ内のテキスト検索用に kbd:[Ctrl+r] が押された状態) でのみ有効です。 [width="100%",cols="^.^3,.^8,.^5",options="header"] |=== | キー | 説明 | コマンド | kbd:[Ctrl+r] | 検索タイプを切り替え: 文字列 (デフォルト)、正規表現 | `/input search_switch_regex` | kbd:[Alt+c] | 大文字小文字を区別して検索 | `/input search_switch_case` | kbd:[Tab] | 検索範囲: メッセージ (デフォルト)、プレフィックス、プレフィックスとメッセージ | `/input search_switch_where` | kbd:[↑] | 前のキーワードで検索 | `/input search_previous` | kbd:[↓] | 次のキーワードで検索 | `/input search_next` | kbd:[Enter] + kbd:[Ctrl+j] + kbd:[Ctrl+m] | 現在の位置で検索を終了 | `/input search_stop_here` | kbd:[Ctrl+q] | 検索を終了してバッファの最後までスクロール | `/input search_stop` |=== [[key_bindings_cursor_context]] ==== 「カーソル」モード用のキー 以下のキーは「カーソル」モード (画面上でカーソルを自由に動かせる状態) でのみ有効です。 [width="100%",cols="^.^3,^.^2,.^7,.^7",options="header"] |=== | キー | エリア | 説明 | コマンド | kbd:[↑] | - | カーソルを上の行に移動 | `/cursor move up` | kbd:[↓] | - | カーソルを下の行に移動 | `/cursor move down` | kbd:[←] | - | カーソルを左の列に移動 | `/cursor move left` | kbd:[→] | - | カーソルを右の列に移動 | `/cursor move right` | kbd:[Alt+↑] | - | カーソルを上のエリアに移動 | `/cursor move area_up` | kbd:[Alt+↓] | - | カーソルを下のエリアに移動 | `/cursor move area_down` | kbd:[Alt+←] | - | カーソルを左のエリアに移動 | `/cursor move area_left` | kbd:[Alt+→] | - | カーソルを右のエリアに移動 | `/cursor move area_right` | kbd:[m] | チャット | メッセージを引用 | `hsignal:chat_quote_message;/cursor stop` | kbd:[q] | チャット | プレフィックスとメッセージを引用 | `hsignal:chat_quote_prefix_message;/cursor stop` | kbd:[Q] | チャット | 時間、プレフィックス、メッセージを引用 | `hsignal:chat_quote_time_prefix_message;/cursor stop` | kbd:[b] | ニックネームリスト| ニックネームをバンする | `/window ${_window_number};/ban ${nick}` | kbd:[k] | ニックネームリスト| ニックネームをキックする | `/window ${_window_number};/kick ${nick}` | kbd:[K] | ニックネームリスト| ニックネームをバンとキックする | `/window ${_window_number};/kickban ${nick}` | kbd:[q] | ニックネームリスト| ニックネームに対するクエリを開く | `/window ${_window_number};/query ${nick};/cursor stop` | kbd:[w] | ニックネームリスト| ニックネームに対して whois を行う | `/window ${_window_number};/whois ${nick}` | kbd:[Enter] + kbd:[Ctrl+j] + kbd:[Ctrl+m] | - | カーソルモードを終了 | `/cursor stop` |=== [[key_bindings_mouse_context]] ==== 「マウス」モード用のキー 以下のキーは「マウス」モード (マウスイベントが発生したとき) でのみ有効です。 [width="100%",cols="^.^3,^.^3,^.^3,.^8,.^8",options="header"] |=== | ボタン/ホイール ^(1)^ | ジェスチャー | エリア | 説明 | コマンド | ◾◽◽ | - | チャット | ウィンドウに移動 | `/window ${_window_number}` | ◾◽◽ | 左 | チャット | 前のバッファに移動 | `/window ${_window_number};/buffer +1` | ◾◽◽ | 右 | チャット | 次のバッファに移動 | `/window ${_window_number};/buffer +1` | ◾◽◽ | 左 (長く) | チャット | 最初のバッファに移動 | `/window ${_window_number};/buffer 1` | ◾◽◽ | 右 (長く) | チャット | 最後のバッファに移動 | `/window ${_window_number};/input jump_last_buffer` | ◾◽◽ | - | チャット (スクリプトバッファ) | スクリプトバッファで行選択 | `/script go ${_chat_line_y}` | ◽◽◾ | - | チャット (スクリプトバッファ) | スクリプトのインストール `/ 削除 | /script go ${_chat_line_y};/script installremove ${script_name_with_extension}` | kbd:[▲] | - | チャット | バッファ履歴を上方向にスクロール | `/window scroll_up -window ${_window_number}` | kbd:[▼] | - | チャット | バッファ履歴を下方向にスクロール | `/window scroll_down -window ${_window_number}` | kbd:[▲] | - | チャット (スクリプトバッファ) | スクリプトバッファを 5 行上方向にスクロール | `/script up 5` | kbd:[▼] | - | チャット (スクリプトバッファ) | スクリプトバッファで 5 行下方向にスクロール | `/script down 5` | kbd:[Ctrl+▲] | - | チャット | 水平左方向にスクロール | `/window scroll_horiz -window ${_window_number} -10%` | kbd:[Ctrl+▼] | - | チャット | 水平右方向にスクロール | `/window scroll_horiz -window ${_window_number} +10%` | ◾◽◽ | 上 / 左 | バッファリスト | 指定したバッファを下の番号に移動 | `buflist_mouse` シグナル | ◾◽◽ | 下 / 右 | バッファリスト | 指定したバッファを上の番号に移動 | `buflist_mouse` シグナル | ◾◽◽ | - | バッファリスト | 指定したバッファに切り替える (現在のバッファを指定した場合、バッファ切り替え履歴で前のバッファに切り替える) | `buflist_mouse` シグナル | ◽◽◾ | - | バッファリスト | 現在のバッファを指定した場合、バッファ切り替え履歴で次のバッファに切り替える | `buflist_mouse` シグナル | kbd:[Ctrl+▲] | - | バッファリスト | バッファ切り替え履歴で前のバッファに切り替える | `buflist_mouse` シグナル | kbd:[Ctrl+▼] | - | バッファリスト | バッファ切り替え履歴で次のバッファに切り替える | `buflist_mouse` シグナル | ◾◽◽ | 上 | ニックネームリスト | ニックネームリストを 1 ページ分上方向にスクロール | `/bar scroll nicklist ${_window_number} -100%` | ◾◽◽ | 下 | ニックネームリスト | ニックネームリストを 1 ページ分下方向にスクロール | `/bar scroll nicklist ${_window_number} +100%` | ◾◽◽ | 上 (長く) | ニックネームリスト | ニックネームリストの最初に移動 | `/bar scroll nicklist ${_window_number} b` | ◾◽◽ | 下 (長く) | ニックネームリスト | ニックネームリストの最後に移動 | `/bar scroll nicklist ${_window_number} e` | ◾◽◽ | - | ニックネームリスト | ニックネームに対するクエリを開く | `/window ${_window_number};/query ${nick}` | ◽◽◾ | - | ニックネームリスト | ニックネームに対する whois を行う | `/window ${_window_number};/whois ${nick}` | ◾◽◽ | 左 | ニックネームリスト | ニックネームをキックする | `/window ${_window_number};/kick ${nick}` | ◾◽◽ | 左 (長く) | ニックネームリスト | ニックネームをキックとバンする | `/window ${_window_number};/kickban ${nick}` | ◽◽◾ | 左 | ニックネームリスト | ニックネームをバンする | `/window ${_window_number};/ban ${nick}` | ◽◽◾ | - | 入力 | マウスイベントを奪ってコマンドラインにコードを入力 | `/input grab_mouse_area` | kbd:[▲] | - | 任意のバー | バーを -20% スクロール | `/bar scroll ${_bar_name} ${_window_number} -20%` | kbd:[▼] | - | 任意のバー | バーを +20% スクロール | `/bar scroll ${_bar_name} ${_window_number} +20%` | ◽◾◽ | - | 任意の場所 | この場所でカーソルモードを開始 | `/cursor go ${_x},${_y}` |=== [NOTE] ^(1)^ kbd:[▲] と kbd:[▼] はホイールの上方向回転と下方向回転に対応します。 [[mouse]] === マウスサポート WeeChat はマウスクリックとマウスジェスチャーをサポートしています。 ローカル端末と screen/tmux の有無にかかわらず ssh 接続経由で利用可能です。 [[mouse_enable]] ==== マウスの有効化 起動時にマウスを有効化するには: ---- /set weechat.look.mouse on ---- マウスを有効化するには kbd:[Alt+m] を押すか、以下のコマンドを使います: ---- /mouse enable ---- キーにマウスの一時的な無効化を割り当てることができます。例えば、kbd:[Alt+%] キーにマウスを 10 秒間無効化する機能を割り当てるには: ---- /key bind meta-% /mouse toggle 10 ---- [IMPORTANT] WeeChat でマウスを有効化した場合、すべてのマウスイベントは WeeChat によって捕捉されます。したがって、カット/ペーストなどの操作や URL のクリックなどは端末に送信されません。kbd:[Shift] キーを使えば、一時的にマウスを無効化して、端末へ直接イベントを送信する事が可能です (一部の端末、例えば iTerm などでは kbd:[Shift] の代わりに kbd:[Alt] を使ってください)。 [NOTE] マウスに関するトラブルがあれば link:weechat_faq.ja.html#mouse[WeeChat FAQ (よくある質問) / マウス]を参照してください。 [[mouse_bind_events]] ==== コマンドに対してマウスイベントを割り当てる WeeChat はデフォルトマウスイベントの多くを定義しています (<>を参照)。 `/key` コマンドで "mouse" コンテキストを指定することで割り当てを追加、変更できます (詳しい使い方は <> コマンドを参照)。 イベント名には修飾キー (任意)、ボタン/ホイール名、ジェスチャー (任意) を利用できます。異なるイベントは `+-+` で分割してください。 修飾キーリスト: [width="50%",cols="3m,4",options="header"] |=== | 修飾キー | 説明 | ctrl | kbd:[Ctrl] キー | alt | kbd:[Alt] キー | ctrl-alt | kbd:[Ctrl] + kbd:[Alt] キー |=== ボタン/ホイールのリスト: [width="50%",cols="3m,4",options="header"] |=== | ボタン/ホイール | 説明 | button1 | 左ボタンクリック | button2 | 右ボタンクリック | button3 | 中ボタンクリック (多くの場合ホイールクリック) | button4 ... button9 | その他のボタンクリック | wheelup | ホイール (上方向) | wheeldown | ホイール (下方向) |=== ジェスチャーのリスト (ボタンのみ対応、ホイール未対応): [width="50%",cols="3m,4",options="header"] |=== | ジェスチャー | 距離 | gesture-up | 3 から 19 | gesture-up-long | 20 以上 | gesture-down | 3 から 19 | gesture-down-long | 20 以上 | gesture-left | 3 から 39 | gesture-left-long | 40 以上 | gesture-right | 3 から 39 | gesture-right-long | 40 以上 |=== 未完了イベントのリスト (ボタンのみ、プラグイン/スクリプトで便利): [width="50%",cols="3m,4",options="header"] |=== | イベント | 説明 | event-down | マウスボタンが押され、離されていない状態 | event-drag | マウスボタンが押された状態でマウスが動かされた |=== イベントの表記例: * `button1` * `ctrl-button1` * `button1-gesture-right` * `button1-event-down` * `button1-event-drag` * `alt-button2-gesture-down-long` * `wheelup` * `ctrl-alt-wheeldown` * ... [TIP] "mouse" イベントにキーを割り当てる場合、イベント名の最初または最後に `+*+` を使うことで複数のイベントにマッチさせることができます。例えば `+button1-gesture-*+` は左クリックを利用したすべてのジェスチャーにマッチします。 [TIP] `/input grab_mouse` コマンドの後にマウスを動かすことでコマンドラインにマウスイベントが入力されます。これにより対応するイベントを確認できます。 [[secured_data]] === 暗号化データ [[secured_data_storage]] ==== データの保存 WeeChat はパスワードおよび _sec.conf_ ファイルに保存されている個人データを暗号化することができます。 この設定ファイルは他のどのファイルよりも先に読まれ、ファイルに保存されている値を WeeChat およびプラグイン/スクリプトのオプションで使うことができます。 _sec.conf_ に含まれるデータを暗号化するパスフレーズを設定することが可能です。これは必須ではありませんが、パスフレーズを設定することを強く勧めます。パスフレーズを設定しない場合、データは平文でファイルに保存されます。 ---- /secure passphrase this is my passphrase ---- パスフレーズを設定した場合、WeeChat の起動時にパスフレーズの入力が求められるようになります (`/upgrade` 時には求められません)。 この挙動を変更し、パスフレーズを保存したファイルを使うことも可能です (<> オプションを参照してください)。 [[secured_data_encryption]] ===== 暗号化 データの暗号化は 3 段階に分けて行われます: . パスフレーズから鍵を生成 (任意の salt を加えます)。 . 暗号化するデータのハッシュを計算。 . ハッシュとデータを暗号化 (出力: salt + 暗号化済みのハッシュ/データ)。 [NOTE] ブロック暗号モードは _CFB_ です。 結果は 16 進数文字列として _sec.conf_ ファイルに保存されます、例: ---- [data] __passphrase__ = on freenode = "53B1C86FCDA28FC122A95B0456ABD79B5AB74654F21C3D099A6CCA8173239EEA59533A1D83011251F96778AC3F5166A394" ---- [[secured_data_decryption]] ===== 復号化 データの復号化は 3 段階に分けて行われます: . salt とパスフレーズを使って鍵を生成。 . ハッシュとデータを復号化。 . 復号化したハッシュとデータのハッシュが同じことを確認。 [[secured_data_manage]] ==== 暗号化データの管理 暗号化データを追加するには、`/secure set` を使ってください、_freenode_ IRC サーバのパスワードを設定する例: ---- /secure set freenode mypassword ---- 利便性を考慮して、暗号化データを専用のバッファに表示できるようになっています (値を見るにはバッファで kbd:[Alt+v]、以下のコマンドを実行してください: ---- /secure ---- 例えばパスワードなどの個人データを含むオプションで暗号化データを使うことができます、書式: "${sec.data.xxx}" ここで "xxx" は暗号化データの名前です (`/secure set xxx ...` のように使います)。 + 利用できるオプションの完全なリストはを見るには、`/help secure` を使ってください。 例えば上の _freenode_ パスワードを <>で使うには: ---- /set irc.server.freenode.sasl_password "${sec.data.freenode}" ---- [[commands_and_options]] === コマンドとオプション [[weechat_commands]] ==== WeeChat コマンド include::autogen/user/weechat_commands.adoc[] [[sec_options]] ==== 保護データのオプション _sec.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | crypt | /set sec.crypt.* | 暗号化に関するオプション | data | <> | 保護データ |=== オプション: include::autogen/user/sec_options.adoc[] [[weechat_options]] ==== WeeChat オプション _weechat.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | debug | <> + /set weechat.debug.* | core とプラグインのデバッグレベル (オプションをセクションに追加/削除出来ます) | startup | /set weechat.startup.* | 起動オプション | look | /set weechat.look.* | 外観 | palette | <> + /set weechat.palette.* | 色の別名 (オプションをセクションに追加/削除出来ます) | color | /set weechat.color.* | 色 | completion | /set weechat.completion.* | 補完オプション | history | /set weechat.history.* | 履歴オプション (コマンドとバッファ) | proxy | <> + /set weechat.proxy.* | プロキシオプション | network | /set weechat.network.* | ネットワーク/SSL オプション | bar | <> + /set weechat.bar.* | バーオプション | layout | <> | レイアウト | notify | <> | バッファに対する通知レベル (オプションをセクションに追加/削除出来ます) | filter | <> | フィルタ | key | <> | デフォルトコンテキストのキー | key_search | <> | 検索コンテキストのキー | key_cursor | <> | カーソルコンテキストのキー | key_mouse | <> | マウスコンテキストのキー |=== オプション: include::autogen/user/weechat_options.adoc[] [[plugins]] == プラグイン プラグインとは動的ライブラリのことで、C 言語で書かれてコンパイルされています。プラグインは WeeChat によって読み込まれます。GNU/Linux の場合、プラグインファイルは ".so" という拡張子を持ち、Windows の場合、".dll" です。 見つかったプラグインは WeeChat の起動時に自動的に読み込まれます。WeeChat の起動時にプラグインを読み込むか否かは選択可能です。 _プラグイン_ と _スクリプト_ の違いを明らかにすることは重要です: _プラグイン_ とは `/plugin` コマンドで読み込まれるコンパイル済みバイナリファイルです。これに対して、 _スクリプト_ とは `/python` 等のコマンドで _python_ 等のプラグインとともに読み込まれるテキストファイルです。 `/plugin` コマンドを使うことで、プラグインのロード/アンロード、ロード済みプラグインの表示を行うことができます。あるプラグインをアンロードした場合、アンロードしたプラグインが作成したバッファはすべて自動的に閉じられます。 プラグインをロード、アンロード、ロード済みプラグインを表示する例: ---- /plugin load irc /plugin unload irc /plugin list ---- デフォルトプラグインのリスト: [width="100%",cols="1,8",options="header"] |=== | プラグイン | 説明 | alias | コマンドの別名を定義 | buflist | バッファリストを表示するためのバー要素 | charset | バッファの文字コードに従ってデコード/エンコード | exec | WeeChat 内部から外部コマンドを実行 | fifo | 外部から WeeChat にコマンドを送信するための FIFO パイプ | fset | WeeChat とプラグインのオプションを高速設定 | irc | IRC チャットプロトコル | logger | バッファの内容をファイルに保存 | relay | ネットワーク経由でデータを中継 | script | スクリプトマネージャ | python | Python スクリプト API | perl | Perl スクリプト API | ruby | Ruby スクリプト API | lua | Lua スクリプト API | tcl | Tcl スクリプト API | guile | Guile (scheme) スクリプト API | javascript | JavaScript スクリプト API | php | PHP スクリプト API | spell | コマンドラインのスペルチェック | trigger | WeeChat およびプラグインが発生させたイベントに対するテキスト置換とコマンド実行 | xfer | ファイル転送とダイレクトチャット |=== API を使ったプラグインやスクリプトの開発についてより詳しく学ぶには link:weechat_plugin_api.ja.html[WeeChat プラグイン API リファレンス]または link:weechat_scripting.ja.html[WeeChat スクリプト作成ガイド]を参照してください。 [[alias_plugin]] === Alias Alias プラグインを使うことで、コマンドの別名を定義できます (WeeChat だけでなく他のプラグインが提供するコマンドの別名を定義することもできます)。 大文字の別名はデフォルトで定義されたものです (標準コマンドと区別するために大文字を使っています); WeeChat はコマンドの大文字小文字を区別しないので、コマンド `/close` は別名である `/CLOSE` を実行します。 デフォルトで定義された別名のリスト: include::autogen/user/alias_default_aliases.adoc[] [[alias_commands]] ==== コマンド include::autogen/user/alias_commands.adoc[] [[alias_options]] ==== オプション _alias.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | cmd | <> + /set alias.cmd.* | 別名に割り当てたコマンド | completion | <> + /set alias.completion.* | 別名に割り当てた補完 |=== [[buflist_plugin]] === Buflist Buflist プラグインを使うことで、"buflist" と呼ばれるバー要素の中にバッファリストを表示させることが可能になります (それ以外に "buflist2" と "buflist3" と呼ばれるバー要素も利用可能です)。 + プラグインは開始時にバー要素 "buflist" を持つデフォルトバー "buflist" を作成します。 [[buflist_commands]] ==== コマンド include::autogen/user/buflist_commands.adoc[] [[buflist_options]] ==== オプション _buflist.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | format | /set buflist.format.* | バッファリストの表示書式 | look | /set buflist.look.* | 外観 |=== オプション: include::autogen/user/buflist_options.adoc[] [[charset_plugin]] === Charset Charset プラグインを使うことで、文字コードに従ってデータのデコードとエンコードができます。 デコード/エンコード用にデフォルトの文字コードが設定されていますが、それぞれのバッファ (バッファグループ) に対して個別に文字コードを設定することもできます。 このプラグインの導入は任意ですが、導入を推奨します: このプラグインがロードされていない場合、WeeChat が読み書きできるデータは UTF-8 データのみになります。 Charset プラグインは WeeChat によって自動的にロードされるべきです。プラグインがロードされていることを確認するには、以下のようにしてください: ---- /charset ---- コマンドが見つからない場合、以下のコマンドでプラグインをロードしてください: ---- /plugin load charset ---- プラグインが見つからない場合、文字コードサポートを有効化した状態で WeeChat を再コンパイルしてください。 Charset プラグインがロードされた場合、端末文字コードと内部文字コードが表示されます。端末文字コードはロケールに依存し、内部文字コードは UTF-8 です。 例: .... charset: terminal: ISO-8859-15, internal: UTF-8 .... [[charset_set]] ==== 文字コードの設定 グローバルデコード文字コードとエンコード文字コードを設定するには、`/set` コマンドを使ってください。 例: ---- /set charset.default.decode ISO-8859-15 /set charset.default.encode ISO-8859-15 ---- グローバルデコード文字コードが設定されていない場合 (例えば Charset プラグインを始めてロードした場合)、これは自動的に端末の文字コードか (UTF-8 でなければ)、デフォルトの _ISO-8859-1_ に設定されます。 デフォルトのエンコード文字コードはありません。従って、内部文字コード (UTF-8) が使われます。 IRC サーバの文字コードを設定するには、サーババッファで `/charset` コマンドを使ってください。文字コードのみを引数として与えた場合、この文字コードがデコードとエンコードに利用されます。 例: ---- /charset ISO-8859-15 ---- これは以下と等価です: ---- /charset decode ISO-8859-15 /charset encode ISO-8859-15 ---- IRC チャンネル (またはプライベートメッセージ) の文字コードを設定するには、サーバの文字コード設定と同様のコマンドをチャンネル (またはプライベートメッセージ) バッファで使ってください。 IRC サーバの全てのチャンネルおよびプライベートバッファに対する文字コードを設定するには: ---- /set charset.encode.irc.freenode ISO-8859-15 ---- すべての文字コード設定を確認するには、以下のコマンドを利用してください: ---- /set charset.* ---- [[charset_troubleshooting]] ==== トラブルシューティング 文字コードに関する問題があれば、link:weechat_faq.ja.html#charset[WeeChat FAQ (よくある質問) / いくつかの文字が見えません。どうすれば良いですか。]を参照してください。 [[charset_commands]] ==== コマンド include::autogen/user/charset_commands.adoc[] [[charset_options]] ==== オプション _charset.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | default | /set charset.default.* | デフォルトのデコード/エンコード文字セット | decode | <> + /set charset.decode.* | バッファのデコード文字セット (オプションをセクションに追加/削除出来ます) | encode | <> + /set charset.encode.* | バッファのエンコード文字セット (オプションをセクションに追加/削除出来ます) |=== オプション: include::autogen/user/charset_options.adoc[] [[exec_plugin]] === Exec `/exec` コマンドを使うことで WeeChat 内部から外部コマンドを実行し、その結果を表示したりバッファに送信することが可能になります。 [[exec_commands]] ==== コマンド include::autogen/user/exec_commands.adoc[] [[exec_options]] ==== オプション _exec.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | command | /set exec.command.* | コマンドに対するオプション | color | /set exec.color.* | 色 |=== オプション: include::autogen/user/exec_options.adoc[] [[fifo_plugin]] === Fifo 外部から WeeChat を操作するには、FIFO パイプにコマンドやテキストを書き込んでください ("fifo.file.enabled" オプションが有効化されている必要がありますが、デフォルトで有効化されているはずです)。 FIFO パイプは _~/.weechat/_ の中にあり、デフォルトで _weechat_fifo_ という名前を付けられています。 FIFO パイプに書き込むコマンド/テキストの文法は以下の例の一つです: .... plugin.buffer *テキストまたはコマンド *テキストまたはコマンド .... 例: * IRC サーバ freenode で使うニックネームを "newnick" に変更する: ---- $ echo 'irc.server.freenode */nick newnick' >~/.weechat/weechat_fifo ---- * IRC チャンネル #weechat に対してテキストを送信: ---- $ echo 'irc.freenode.#weechat *hello!' >~/.weechat/weechat_fifo ---- * 現在のバッファに対してテキストを送信: ---- $ echo '*hello!' >~/.weechat/weechat_fifo ---- * Python スクリプトのアンロードとロードを行う 2 つのコマンドを送信 (複数のコマンドは "\n" で分割してください): ---- $ printf '%b' '*/python unload\n*/python autoload\n' >~/.weechat/weechat_fifo ---- [[fifo_commands]] ==== コマンド include::autogen/user/fifo_commands.adoc[] [[fifo_options]] ==== オプション _fifo.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | file | /set fifo.file.* | FIFO パイプに関するオプション |=== オプション: include::autogen/user/fifo_options.adoc[] [[fset_plugin]] === Fset fset (高速設定) プラグインはバッファ内にオプションのリストを表示し、WeeChat とプラグインのオプション設定を支援します。 [[fset_commands]] ==== コマンド include::autogen/user/fset_commands.adoc[] [[fset_options]] ==== オプション _fset.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | color | /set fset.color.* | 色 | format | /set fset.format.* | オプションリストの表示書式 | look | /set fset.look.* | 外観 |=== オプション: include::autogen/user/fset_options.adoc[] [[irc_plugin]] === IRC IRC プラグインは IRC プロトコルに従って他の人と会話を行うために設計されています。 マルチサーバに対応し、DCC チャットとファイル転送 (xfer プラグインを使います。<>を参照) を含む全ての IRC コマンドをサポートしています。 [[irc_command_line_options]] ==== コマンドラインオプション 以下のように 1 つ以上の IRC サーバに対応する URL を引数として与えることができます: ---- irc[6][s]://[nick[:password]@]irc.example.org[:port][/channel][,channel[...]] ---- _nono_ というニックネームを使って _chat.freenode.net_ ホストのデフォルトポート (6667) で稼働中の IRC サーバ上の _#weechat_ と _#toto_ チャンネルに参加する例: ---- $ weechat irc://nono@chat.freenode.net/#weechat,#toto ---- [[irc_ssl_certificates]] ==== SSL 証明書 SSL を使って IRC サーバに接続する場合、WeeChat はデフォルトで接続が完全に信頼できるものかどうかを確認します。 以下のオプションで SSL 接続を設定します: weechat.network.gnutls_ca_file:: 認証局ファイルへのパス (デフォルト: "%h/ssl/CAs.pem") irc.server.xxx.ssl_cert:: 自動的にニックネームを確認するために利用される SSL 証明書ファイル (例えば oftc サーバにおける CertFP の場合、以下を確認してください) irc.server.xxx.ssl_dhkey_size:: Diffie-Hellman キー交換の際に利用される鍵サイズ (デフォルト: 2048) irc.server.xxx.ssl_verify:: SSL 接続が完全に信頼できることの確認を行う (デフォルトで有効) [NOTE] "ssl_verify" オプションはデフォルトで有効です、したがって厳密な確認が行われ、0.3.1 より前のバージョンでは信頼性の確認に成功していたものが失敗する場合もあります。 [[irc_connect_oftc_with_certificate]] ===== 最初の例: oftc に接続して、証明書を確認 * シェルを使って証明書をインポート: ---- $ mkdir -p ~/.weechat/ssl $ wget -O ~/.weechat/ssl/CAs.pem https://www.spi-inc.org/ca/spi-cacert.crt ---- [NOTE] CAs.pem ファイル中で複数の証明書を連結することもできます。 * WeeChat では、"oftc" サーバが既に追加されています: ---- /connect oftc ---- [[irc_connect_oftc_with_certfp]] ===== 2 番目の例: CertFP を使って oftc に接続 * シェルで証明書を作成: ---- $ mkdir -p ~/.weechat/ssl $ cd ~/.weechat/ssl $ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem ---- * WeeChat では、"oftc" サーバが既に追加されています: ---- /set irc.server.oftc.ssl_cert "%h/ssl/nick.pem" /connect oftc /msg nickserv cert add ---- より詳しい情報は https://www.oftc.net/NickServ/CertFP を確認してください。 [[irc_sasl_authentication]] ==== SASL 認証 WeeChat は SASL 認証をサポートします、以下の認証メカニズムを利用できます: * _plain_: 平文パスワード (デフォルト) * _ecdsa-nist256p-challenge_: 公開鍵/秘密鍵を使うチャレンジ認証 * _external_: クライアント側 SSL 証明書 * _dh-blowfish_: blowfish 暗号パスワード (*危険*、非推奨) * _dh-aes_: AES 暗号パスワード (*危険*、非推奨) サーバオプション: * _sasl_mechanism_: 利用する認証メカニズム (上記参照) * _sasl_timeout_: 認証時のタイムアウト (秒単位) * _sasl_fail_: 認証に失敗した場合の挙動 * _sasl_username_: ユーザ名 (ニックネーム) * _sasl_password_: パスワード * _sasl_key_: ECC 秘密鍵を含むファイル (_ecdsa-nist256p-challenge_ 用) [[irc_sasl_ecdsa_nist256p_challenge]] ===== SASL ECDSA-NIST256P-CHALLENGE 認証 ECDSA-NIST256P-CHALLENGE を使って認証を行うためには、秘密鍵を作成してください (接続の際にパスワードは不要です)。 鍵を作成するには、以下のコマンドを使ってください: ---- $ openssl ecparam -genkey -name prime256v1 -out ~/.weechat/ecdsa.pem ---- 公開鍵を (base64 エンコード形式で) 作成するには、以下のコマンドを使ってください: ---- $ openssl ec -noout -text -conv_form compressed -in ~/.weechat/ecdsa.pem | grep '^pub:' -A 3 | tail -n 3 | tr -d ' \n:' | xxd -r -p | base64 ---- サーバに接続、本人確認 (例えば "nickserv identify" を使って)、nickserv を使ってアカウントに公開鍵を設定 (アカウントの公開鍵に base64 文字列を指定する): ---- /connect freenode /msg nickserv identify your_password /msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q ---- サーバの SASL オプションを設定: ---- /set irc.server.freenode.sasl_mechanism ecdsa-nist256p-challenge /set irc.server.freenode.sasl_username "your_nickname" /set irc.server.freenode.sasl_key "%h/ecdsa.pem" ---- サーバに再接続: ---- /reconnect freenode ---- [[irc_tor_freenode]] ==== TOR/SASL を使って Freenode に接続する場合 SSL に加えて、Freenode サーバは TOR (https://www.torproject.org/) 経由の接続をサポートしています。TOR とはバーチャルトンネルのネットワークで、これを使うことで個人やグループがインターネット利用に伴うプライバシーとセキュリティを向上させることができます。 最初に、TOR をインストールしてください。Debian (とその派生ディストリビューション) の場合: ---- $ sudo apt-get install tor ---- WeeChat で TOR サービスを使った socks5 プロキシを作成してください (ホスト名/IP アドレス、ポート番号は TOR の設定に依存します): ---- /proxy add tor socks5 127.0.0.1 9050 ---- そして、新しいサーバを追加します。例えば: ---- /server add freenode-tor ajnvpgl6prmkb7yktvue6im5wiedlz2w32uhcwaamdiecdrfpwwgnlqd.onion ---- // TRANSLATION MISSING [NOTE] If you are using an old version of TOR (before 0.3.5) you should use the address `freenodeok2gncmy.onion` instead. TOR プロキシを設定: ---- /set irc.server.freenode-tor.proxy "tor" ---- ECDSA-NIST256P-CHALLENGE メカニズムで SASL 認証を設定 (秘密鍵を作成するには <>を参照してください): ---- /set irc.server.freenode-tor.sasl_mechanism ecdsa-nist256p-challenge /set irc.server.freenode-tor.sasl_username "your_nickname" /set irc.server.freenode-tor.sasl_key "%h/ecdsa.pem" ---- 最後に、サーバに接続してください: ---- /connect freenode-tor ---- Freenode と TOR に関するより詳しい情報: https://freenode.net/kb/answer/chat#accessing-freenode-via-tor [[irc_smart_filter_join_part_quit]] ==== 参加/退出/終了メッセージに対するスマートフィルタ チャンネル内での発言が過去 X 分間なかった場合に参加/退出/終了メッセージをフィルタリングするスマートフィルタが利用できます。 スマートフィルタはデフォルトで有効化されていますが、バッファ内のメッセージを隠すにはフィルタを追加する必要があります。例えば: ---- /filter add irc_smart * irc_smart_filter * ---- 特定のチャンネルのみ、またはある名前で始まるチャンネルに対してフィルタを作成することもできます (`/help filter` を参照): ---- /filter add irc_smart_weechat irc.freenode.#weechat irc_smart_filter * /filter add irc_smart_weechats irc.freenode.#weechat* irc_smart_filter * ---- 以下のコマンドで参加メッセージだけ、または退出/終了メッセージだけを隠すこともできます: ---- /set irc.look.smart_filter_join on /set irc.look.smart_filter_quit on ---- 遅延時間 (分単位) を設定することもできます: ---- /set irc.look.smart_filter_delay 5 ---- 過去 5 分間あるニックネームからの発言が無かった場合、このニックネームに対する参加または退出/終了メッセージがチャンネルから隠されます。 [[irc_ctcp_replies]] ==== CTCP 応答 CTCP 応答をカスタマイズしたり、いくつかの CTCP 要求をブロック (無応答) することができます。 例えば、CTCP "VERSION" 要求に対する応答をカスタマイズするには、以下のコマンドを使ってください: ---- /set irc.ctcp.version "I'm running WeeChat $version, it rocks!" ---- CTCP "VERSION" 要求をブロックする (要求に対する応答を行わない) には、空文字列を設定してください: ---- /set irc.ctcp.version "" ---- 未定義の CTCP 要求に対する応答もカスタマイズできます。例えば CTCP "BLABLA" 要求に対する応答を以下のように設定できます: ---- /set irc.ctcp.blabla "This is my answer to CTCP BLABLA" ---- 特定のサーバに対して CTCP 応答をカスタマイズするには、CTCP 名の前に内部サーバ名をつけてください: ---- /set irc.ctcp.freenode.version "WeeChat $version (for freenode)" ---- 標準の CTCP 応答を復元するには、オプションを削除してください: ---- /unset irc.ctcp.version ---- 以下のコードを設定値に含めることが可能です。これらのコードは CTCP 応答時に自動的に WeeChat によって展開されます: [width="100%",cols="2l,4,8",options="header"] |=== | コード | 説明 | 値/例 | $clientinfo | サポートしている CTCP オプションのリスト | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION` | $version | WeeChat バージョン | `0.4.0-dev` | $versiongit | WeeChat バージョン + git バージョン ^(1)^ | `0.4.0-dev (git: v0.3.9-104-g7eb5cc4)` | $git | git バージョン ^(1)^ | `v0.3.9-104-g7eb5cc4` | $compilation | WeeChat コンパイル日時 | `Dec 16 2012` | $osinfo | OS に関する情報 | `Linux 2.6.32-5-amd64 / x86_64` | $site | WeeChat ウェブサイト | `https://weechat.org/` | $download | WeeChat ウェブサイトのダウンロードページ | `https://weechat.org/download` | $time | 現在の日時 | `Sun, 16 Dec 2012 10:40:48 +0100` | $username | IRC サーバ上で使うユーザ名 | `name` | $realname | IRC サーバ上で使う実名 | `John Doe` |=== [NOTE] ^(1)^ git バージョンとは `git describe` コマンドの出力です。git リポジトリで WeeChat をコンパイルし、git がインストールされている場合のみ値が設定されます。 CTCP オプションが設定されていない (デフォルトの) 場合、CTCP 応答は以下のようになります: [width="100%",cols="2,4,8",options="header"] |=== | CTCP | 応答書式 | 例 | CLIENTINFO | `$clientinfo` | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION` | FINGER | `WeeChat $versiongit` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4)` | SOURCE | `$download` | `https://weechat.org/download` | TIME | `$time` | `Sun, 16 Dec 2012 10:40:48 +0100` | USERINFO | `$username ($realname)` | `name (John Doe)` | VERSION | `WeeChat $versiongit ($compilation)` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4) (Dec 16 2012)` |=== [[irc_target_buffer]] ==== IRC メッセージのターゲットバッファ `+irc.msgbuffer.*+` オプションを使えば、IRC メッセージに対するターゲットバッファ (メッセージを表示するバッファ) をカスタマイズすることができます。 一部の IRC メッセージ (以下のリストを参照) に対して、以下の値を設定できます: current:: 現在のバッファ (IRC バッファまたはサーババッファの場合のデフォルト) private:: ニックネームに対するプライベートバッファ、見つからない場合は現在のバッファまたはサーババッファ (_irc.look.msgbuffer_fallback_ オプションに依存) server:: サーババッファ weechat:: WeeChat "core" バッファ オプションが設定されていない (デフォルトの) 場合、WeeChat は適当なバッファを選びます。通常ではサーバまたはチャンネルバッファです。 カスタマイズできる一部の IRC メッセージ、別名のリストは以下です: [width="60%",cols="^1m,^3m,8",options="header"] |=== | メッセージ | 別名 | 説明 | error | | エラー | invite | | チャンネルへの招待 | join | | 参加 | kick | | キック | kill | | キル | mode | | モード | notice | | 通知 | part | | 退出 | quit | | 終了 | topic | | トピック | wallops | | IRC オペレータメッセージ | | ctcp | ctcp (プライベートまたは notice メッセージ内の、送信または受信メッセージ) | 221 | | ユーザモード文字列 | 275 | whois | whois (セキュアな接続) | 301 | whois | whois (離席状態) | 303 | | サーバへの接続状態 | 305 | unaway | 着席状態 | 306 | away | 離席状態 | 307 | whois | whois (登録済みニックネーム) | 310 | whois | whois (ヘルプモード) | 311 | whois | whois (ユーザ) | 312 | whois | whois (サーバ) | 313 | whois | whois (オペレータ) | 314 | whowas | whowas | 315 | who | who (終了) | 317 | whois | whois (アイドル状態) | 318 | whois | whois (終了) | 319 | whois | whois (チャンネル) | 320 | whois | whois (身元確認済みユーザ) | 321 | list | list (開始) | 322 | list | list (チャンネル) | 323 | list | list (終了) | 326 | whois | whois (オペレータ権限を持っているユーザ) | 327 | whois | whois (ホスト) | 328 | | チャンネルの URL | 329 | | チャンネル作成日時 | 330 | whois | whois (ログイン時の名前) | 331 | | トピックが未設定のチャンネル | 332 | | チャンネルのトピック | 333 | | トピックに関する情報 | 335 | whois | whois (ボットが有効化されているか) | 338 | whois | whois (ホスト) | 341 | | 招待中 | 343 | whois | whois (オペレータ) | 344 | reop | チャンネルオペレータを復活 | 345 | reop | チャンネルオペレータを復活 (終了) | 346 | invitelist | 招待リスト | 347 | invitelist | 招待リスト (終了) | 348 | exceptionlist | 除外リスト | 349 | exceptionlist | 除外リスト (終了) | 351 | | サーババージョン | 352 | who | who | 353 | names | チャンネル内ユーザのリスト | 366 | names | チャンネル内ユーザのリストの終了 | 367 | banlist | 禁止リスト | 368 | banlist | 禁止リストの終了 | 369 | whowas | whowas (終了) | 378 | whois | whois (接続元) | 379 | whois | whois (モード) | 401 | whois | 指定したニックネームおよびチャンネルがありません | 402 | whois | 指定したサーバがありません | 432 | | ニックネームにエラーがあります | 433 | | ニックネームが使用されています | 438 | | ニックネームを変更する権限がありません | 671 | whois | whois (セキュアな接続) | 728 | quietlist | 発言禁止リスト | 729 | quietlist | 発言禁止リストの終了 | 732 | monitor | 監視中のニックネームのリスト | 733 | monitor | 監視中のニックネームのリスト (終了) | 901 | | ログインに成功 |=== その他の数値コマンドも同様にカスタマイズできます。 サーバ名を前につけることで、特定のサーバに対して設定することができます (例: `freenode.whois`)。 例: * `/whois` の結果をプライベートバッファに表示: ---- /set irc.msgbuffer.whois private ---- * whois に対する設定をデフォルトに戻す (サーババッファに表示): ---- /unset irc.msgbuffer.whois ---- * "freenode" サーバの場合、招待メッセージを現在のバッファに表示: ---- /set irc.msgbuffer.freenode.invite current ---- * "303" (ison) メッセージを WeeChat "core" バッファに表示: ---- /set irc.msgbuffer.303 weechat ---- [[irc_commands]] ==== コマンド include::autogen/user/irc_commands.adoc[] [[irc_options]] ==== オプション _irc.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set irc.look.* | 外観 | color | /set irc.color.* | 色 | network | /set irc.network.* | ネットワークオプション | msgbuffer | /set irc.msgbuffer.* | <> (オプションをセクションに追加/削除出来ます) | ctcp | /set irc.ctcp.* | <> (オプションをセクションに追加/削除出来ます) | ignore | <> | 無視ユーザ | server_default | /set irc.server_default.* | サーバに対するデフォルト値 (サーバオプションが定義されていない場合に利用されます) | server | <> + /set irc.server.* | サーバ |=== オプション: include::autogen/user/irc_options.adoc[] [[logger_plugin]] === Logger Logger プラグインを使うことで、バッファの内容をファイルに保存できます。保存形式とその方法をオプションで設定できます。 [[logger_log_levels]] ==== ログレベル ログ保存はそれぞれのバッファに対して設定されたログレベルに従って行われます。デフォルトのレベルは 9 (バッファに表示されたメッセージをすべて保存) です。特定のバッファやバッファグループに対して個別にログレベルを設定できます。 設定可能なレベルは 0 から 9 です。0 は "保存しない"、9 は「すべてのメッセージを保存」を意味します。 それぞれのプラグインでレベルの意味が変わります。IRC プラグインに対しては以下のレベルが利用されます: * レベル 1: ユーザからのメッセージ (チャンネルまたはプライベート) * レベル 2: ニックネームの変更 (自身と他のユーザ) * レベル 3: 任意のサーバメッセージ (参加/退出/終了メッセージを除く) * レベル 4: 参加/退出/終了メッセージ 従って、IRC チャンネルに対してレベル 3 を設定した場合、WeeChat は参加/退出/終了メッセージを除いて全てのメッセージを保存します。 例: * IRC チャンネル #weechat に対してレベル 3 を設定: ---- /set logger.level.irc.freenode.#weechat 3 ---- * freenode サーババッファに対してレベル 3 を設定: ---- /set logger.level.irc.server.freenode 3 ---- * freenode サーバの全てのチャンネルに対してレベル 3 を設定: ---- /set logger.level.irc.freenode 3 ---- * 全ての IRC バッファに対してレベル 2 を設定: ---- /set logger.level.irc 2 ---- [[logger_filenames_masks]] ==== ファイル名マスク // TRANSLATION MISSING It is possible to define a filename mask for each buffer, and use local buffer variables to build filename. To see available local variables for current buffer: ---- /buffer localvar ---- // TRANSLATION MISSING Masks will be matched on options in descending order of specificity on `logger.mask.$plugin.*`, with `logger.file.mask` as fallback option. 例えば "irc.freenode.#weechat" バッファの場合、WeeChat は以下の順番でオプションに設定されたファイル名マスクを検索します: ---- logger.mask.irc.freenode.#weechat logger.mask.irc.freenode logger.mask.irc logger.file.mask ---- 特定の IRC サーバ ("logger.mask.irc.freenode") またはプラグイン ("logger.mask.irc") のグループに対して共通のマスクを適用できます。 [[logger_files_by_date]] ===== ログファイルに日付を利用する ログファイルに日付を使うには、マスクに日時/時間指定子を利用できます (書式に関しては `man strftime` を参照してください)。例えば: ---- /set logger.file.mask "%Y/%m/$plugin.$name.weechatlog" ---- 以下のファイルが作成されます: .... ~/.weechat └── logs ├── 2010 │ ├── 11 │ │ ├── irc.server.freenode.weechatlog │ │ └── irc.freenode.#weechat.weechatlog │ └── 12 │ ├── irc.server.freenode.weechatlog │ └── irc.freenode.#weechat.weechatlog ├── 2011 │ ├── 01 │ │ ├── irc.server.freenode.weechatlog │ │ └── irc.freenode.#weechat.weechatlog │ ├── 02 ... .... [[logger_irc_files_by_server_channel]] ===== IRC ログファイルにサーバとチャンネル名を利用する IRC サーバ名を使ったディレクトリに、チャンネル名を使ったファイルを作成する場合: ---- /set logger.mask.irc "irc/$server/$channel.weechatlog" ---- 以下のファイルが作成されます: .... ~/.weechat └── logs └── irc ├── freenode │ ├── freenode.weechatlog │ ├── #weechat.weechatlog │ └── #mychan.weechatlog ├── oftc │ ├── oftc.weechatlog │ ├── #chan1.weechatlog │ └── #chan2.weechatlog ... .... [[logger_commands]] ==== コマンド include::autogen/user/logger_commands.adoc[] [[logger_options]] ==== オプション _logger.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set logger.look.* | 外観 | color | /set logger.color.* | 色 | file | /set logger.file.* | ログファイルのオプション | level | /set logger.level.* | バッファのログレベル (オプションをセクションに追加/削除出来ます) | mask | /set logger.mask.* | バッファのファイル名マスク (オプションをセクションに追加/削除出来ます) |=== オプション: include::autogen/user/logger_options.adoc[] [[relay_plugin]] === Relay Relay プラグインはネットワークを介して異なるプロトコルを用いてデータを中継するために利用します: * _irc_: IRC プロキシ: IRC サーバに対する接続を、単一または複数の IRC クライアントで共有するために用います。 * _weechat_: リモートインターフェースを通じて WeeChat を表示および操作する際に利用されるプロトコル。リモートインターフェースの一例: ** Glowing Bear (HTML5): https://www.glowing-bear.org/ ** QWeeChat (Qt): https://weechat.org/download ** WeeChat-Android (Android): https://github.com/ubergeek42/weechat-android ** weechat.el (Emacs): https://github.com/the-kenny/weechat.el ** WeeCloud (JavaScript): https://github.com/eirikb/weecloud [[relay_password]] ==== パスワード 以下のコマンドを利用して、リレー用のパスワードを設定することを強くお勧めします: ---- /set relay.network.password "mypass" ---- このパスワードは _irc_ と _weechat_ プロトコルで利用されます。 [[relay_totp]] ==== TOTP _weechat_ プロトコルでは、パスワードに加えて、二要素認証の TOTP (時間ベースのワンタイムパスワード) を使うことが可能です。 これは任意設定項目であり、セキュリティレベルを向上させます。 ワンタイムパスワードは以下のようなアプリケーションを使って生成します: * FreeOTP: https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp[Android], https://itunes.apple.com/fr/app/freeotp-authenticator/id872559395[iOS] (https://freeotp.github.io/[website]) * Google Authenticator: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2[Android], https://itunes.apple.com/fr/app/google-authenticator/id388497605[iOS] TOTP の secret を WeeChat とワンタイムパスワードを生成するアプリケーション内部に設定しなければいけません。 TOTP の secret は base32 でエンコードされた文字列 (文字および 2 から 7 までの数字) でなければいけません。以下はその例です: ---- /set relay.network.totp_secret "secretpasswordbase32" ---- [[relay_ssl]] ==== SSL 証明書と秘密鍵を作り、プロトコル名の最初に "ssl." を付けることで SSL 経由でリレーを利用することができます。 証明書/秘密鍵ファイルへのデフォルトパスは _~/.weechat/ssl/relay.pem_ です (option <>)。 以下のコマンドを使って証明書と秘密鍵ファイルを作成します: ---- $ mkdir -p ~/.weechat/ssl $ cd ~/.weechat/ssl $ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem ---- WeeChat が既に起動している場合、以下のコマンドで証明書と秘密鍵をリロードできます: ---- /relay sslcertkey ---- [[relay_irc_proxy]] ==== IRC プロキシ Relay プラグインは IRC プロキシとしても使えます: Relay プラグインは IRC サーバのふりをして、他の IRC クライアント (WeeChat 自身も) は WeeChat に接続できます。 IRC サーバごとに異なるポート、もしくは全てのサーバに対して共通のポートを定義することができます。 // TRANSLATION MISSING すべてのサーバに対して共通のポートを定義した場合には、クライアントからサーバの内部名を IRC の "PASS" コマンドに含めて送信するようにしてください、以下の書式を使ってください (see example below): ---- PASS server:mypass ---- 例: SSL を使い、全てのサーバに対して共通の IRC プロキシを設定 (サーバはクライアントが選択): ---- /relay add ssl.irc 8000 ---- 例: SSL を使わず、内部名 "freenode" のサーバに対して IRC プロキシを設定: ---- /relay add irc.freenode 8000 ---- 任意の IRC クライアントからサーバパスワード "mypass" (全てのサーバに対して共通の IRC プロキシを設定した場合には "freenode:mypass") で 8000 番ポートに接続出来ます。 // TRANSLATION MISSING For example if you use WeeChat as IRC client of the relay, with a server called "relay" and the relay password "secret", you can setup the password with this command: ---- /set irc.server.relay.password "freenode:secret" ---- [[relay_weechat_protocol]] ==== WeeChat プロトコル Relay プラグインは WeeChat プロトコルを使ってリモートインターフェースに対してデータを送信できます。 リモートインターフェースを使って接続できます、<> のリストを参照してください。 [IMPORTANT] このプロトコルを使った場合 WeeChat から他の WeeChat に接続することはできません。 例: ---- /relay add weechat 9000 ---- この後、リモートインターフェースを使って 9000 番ポートに対して、パスワード "mypass" で接続することができます。 [[relay_websocket]] ==== WebSocket Relay プラグインはすべてのプロトコルに対して WebSocket プロトコル (https://tools.ietf.org/html/rfc6455[RFC 6455]) をサポートします。 WebSocket ハンドシェイクは自動的に検知され、ハンドシェイク中に必要なヘッダが見つかり origin が許可されていれば WebSocket 用のソケットが準備されます (オプション <> を参照)。 HTML5 を使えばたった 1 行の JavaScript で WebSocket をオープンすることが可能です: [source,js] ---- websocket = new WebSocket("ws://server.com:9000/weechat"); ---- ポート番号 (例では 9000 番) は Relay プラグインで定義したものです。URI の最後には必ず "/weechat" をつけます (_irc_ と _weechat_ プロトコルの場合)。 [[relay_unix_socket]] ==== UNIX ドメインソケット `/relay add` コマンドにプロトコルオプション "unix" をつけることで、指定したパスで動作する UNIX ドメインソケット上の任意のプロトコルをリッスンできます。例: ---- /relay add unix.weechat %h/relay_socket ---- こうすることで、クライアントは weechat プロトコルを使って _~/.weechat/relay_socket_ に接続できます。これは、他のポートをオープンが禁止されている状況下で、リレークライアントの SSH 転送を許可する際に特に便利です。OpenSSH を使った例: ---- $ ssh -L 9000:.weechat/relay_socket user@hostname ---- これでポート 9000 番に接続してきたローカルのリレークライアントは "hostname" 上で動作中の WeeChat インスタンスへ転送されます。 [[relay_commands]] ==== コマンド include::autogen/user/relay_commands.adoc[] [[relay_options]] ==== オプション _relay.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set relay.look.* | 外観 | color | /set relay.color.* | 色 | network | /set relay.network.* | ネットワークオプション | irc | /set relay.irc.* | 特定の irc プロトコルのオプション (irc プロキシ) | port | <> + /set relay.port.* | リレーに使うポート(irc や weechat プロトコル) (オプションをセクションに追加/削除出来ます) |=== オプション: include::autogen/user/relay_options.adoc[] [[scripts_plugins]] === スクリプト WeeChat は 8 種類のスクリプトプラグインを備えています: Python、Perl、Ruby、Lua、Tcl、Guile (scheme)、JavaScript、PHP。これらのプラグインでそれぞれの言語で書かれたスクリプトのロード、実行、アンロードができます。 スクリプトマネージャを使えば、任意の言語で書かれたスクリプトをロード/アンロードしたり、WeeChat スクリプトリポジトリ (https://weechat.org/scripts から参照可能) のスクリプトをインストール/削除したりする事が可能です。 スクリプトの書き方やスクリプト用の WeeChat API についての詳しい情報は link:weechat_scripting.ja.html[WeeChat スクリプト作成ガイド]を参照してください。 [[script_commands]] ==== Script コマンド include::autogen/user/script_commands.adoc[] [[python_commands]] ==== Python コマンド include::autogen/user/python_commands.adoc[] [[perl_commands]] ==== Perl コマンド include::autogen/user/perl_commands.adoc[] [[ruby_commands]] ==== Ruby コマンド include::autogen/user/ruby_commands.adoc[] [[lua_commands]] ==== Lua コマンド include::autogen/user/lua_commands.adoc[] [[tcl_commands]] ==== Tcl コマンド include::autogen/user/tcl_commands.adoc[] [[guile_commands]] ==== Guile コマンド include::autogen/user/guile_commands.adoc[] [[javascript_commands]] ==== JavaScript コマンド include::autogen/user/javascript_commands.adoc[] [[php_commands]] ==== PHP コマンド include::autogen/user/php_commands.adoc[] [[script_options]] ==== スクリプトオプション _script.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set script.look.* | 外観 | color | /set script.color.* | 色 | scripts | /set script.scripts.* | スクリプトのダウンロードに関するオプション |=== オプション: include::autogen/user/script_options.adoc[] [[python_options]] ==== Python オプション _python.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set python.look.* | 外観 |=== オプション: include::autogen/user/python_options.adoc[] [[perl_options]] ==== Perl オプション _perl.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set perl.look.* | 外観 |=== オプション: include::autogen/user/perl_options.adoc[] [[ruby_options]] ==== Ruby オプション _ruby.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set ruby.look.* | 外観 |=== オプション: include::autogen/user/ruby_options.adoc[] [[lua_options]] ==== Lua オプション _lua.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set lua.look.* | 外観 |=== オプション: include::autogen/user/lua_options.adoc[] [[tcl_options]] ==== Tcl オプション _tcl.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set tcl.look.* | 外観 |=== オプション: include::autogen/user/tcl_options.adoc[] [[guile_options]] ==== Guile オプション _guile.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set guile.look.* | 外観 |=== オプション: include::autogen/user/guile_options.adoc[] [[javascript_options]] ==== Javascript オプション _javascript.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set javascript.look.* | 外観 |=== オプション: include::autogen/user/javascript_options.adoc[] [[php_options]] ==== PHP オプション _php.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | look | /set php.look.* | 外観 |=== オプション: include::autogen/user/php_options.adoc[] [[spell_plugin]] === Spell Spell プラグインを使うことで、コマンドラインに入力した文字列のスペルチェックができます。バッファごとに異なる言語に対するスペルチェックを実行できます。 スペルチェック機能はデフォルトで無効化されています。kbd:[Alt+s] で有効無効を切り替える事が可能です。 [[spell_dictionaries]] ==== 辞書 スペルチェック機能を使う前に、すべてのバッファまたは特定のバッファに対して辞書を定義しなければいけません。 同時に複数の辞書を使用可能です: WeeChat はすべての辞書を使って単語をチェックします。 英語とフランス語の辞書を使う例: ---- /set spell.check.default_dict "en,fr" ---- 特定のバッファで使用する辞書を定義することも可能です。ドイツ語のチャンネルでドイツ語の辞書を使う例: ---- /spell setdict de ---- バッファグループに対して特定の辞書を指定することも可能です。freenode IRC サーバに対して英語の辞書を使う例: ---- /set spell.dict.irc.freenode en ---- 詳しい情報はコマンド <> を参照してください。 [[spell_speller_options]] ==== Speller オプション Speller オプションは aspell 設定の "option" セクションにあるオプションを追加して定義します。 ここで利用するオプション名は aspell 設定オプションと同じものです。オプションのリストはシェルで以下のコマンドを実行することで確認できます: ---- $ aspell config ---- 例えば、"ignore-case" オプションを有効化するには: ---- /set spell.option.ignore-case "true" ---- [[spell_suggestions]] ==== 修正候補 "spell_suggest" バー要素内に修正候補が表示されます。修正候補の数は _spell.check.suggestions_ オプションで設定します。 修正候補を利用するには、_spell.check.suggestions_ オプションをゼロ以上の整数に設定し、_status_ バーなどに "spell_suggest" バー要素を追加してください。 英語辞書 (`en`) を用いた修正候補の例: .... │[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune] │ │[@Flashy] prinr █ │ └─────────────────────────────────────────────────────────────────────────────────┘ .... 英語とフランス語辞書 (`en,fr`) を用いた修正候補の例: .... │[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune/prime,primer,primé] │ │[@Flashy] prinr █ │ └─────────────────────────────────────────────────────────────────────────────────┘ .... [[spell_commands]] ==== コマンド include::autogen/user/spell_commands.adoc[] [[spell_options]] ==== オプション _spell.conf_ ファイル内のセクション: [width="100%",cols="3m,6m,16",options="header"] |=== | セクション | 操作コマンド | 説明 | color | /set spell.color.* | 色 | check | /set spell.check.* | スペルチェックの操作コマンド | dict | <> + /set spell.dict.* | バッファが利用するディレクトリ (オプションをセクションに追加/削除出来ます) | look | /set spell.look.* | 外観 | option | /set spell.option.* | <> (オプションをセクションに追加/削除出来ます) |=== オプション: include::autogen/user/spell_options.adoc[] [[trigger_plugin]] === Trigger トリガは WeeChat の便利ツールです: 様々なもの (signal、modifier、print、...) をフックして、データの内容を書き換えたり、複数のコマンドを実行することができます。条件をつけることで一部の場合だけトリガを実行するように設定することもできます。 トリガを使うにはシグナル、修飾子、... がどのように動いているかを知らなければいけません。これを知るには link:weechat_plugin_api.ja.html#hooks[WeeChat プラグイン API リファレンス / フック]を読むことをお勧めします。 [[trigger_default]] ==== デフォルトトリガ WeeChat はデフォルトで 5 つのトリガを作成しますが、これらを無効化、更新、削除することも可能です: * 通知用の _beep_ トリガ * それ以外の 4 つは画面上でパスワードを隠すためのトリガ デフォルトトリガのリスト: [width="100%",cols="5m,3,22",options="header"] |=== | 名前 | フック | 説明 | beep | print | ハイライト/プライベートメッセージを受信した際にビープを鳴らす。 | cmd_pass | modifier | コマンド内のパスワードを隠す: `pass:[/msg nickserv id\|identify\|set password\|ghost\|release\|regain\|recover]`、 `pass:[/oper]`、 `pass:[/quote pass]`、 `pass:[/set *password*]`、 `pass:[/secure passphrase\|decrypt\|set]`。 | cmd_pass_register | modifier | コマンド内のパスワードを隠す `pass:[/msg nickserv register]`。 | msg_auth | modifier | IRC auth メッセージ (ユーザがコマンドを実行した後にサーバから受信するメッセージ) の表示時にパスワードを隠す。 | server_pass | modifier | `/server` と `/connect` コマンド内のパスワードを隠す。 |=== [[trigger_anatomy]] ==== トリガの構造 トリガは以下のオプションをとります (名前は `trigger.trigger..