WeeChatとは、CUIのチャットクライアント(IRC Client)です。高速、かつ軽量でマルチプラットフォーム(GNU/Linux、*BSD、MacOS X、Windows 等)に対応していることが特徴です。複数のIRCサーバを登録でき、IRCサーバ毎にニックネーム等の設定も出来ます。
WeeChatをインストールしたOS環境は以下のとおりです。
# uname -an
Linux manage001.pachi.local 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS release 6.4 (Final)
WeeChatはRPMパッケージでインストールします。ちょうどepelレポジトリで公開されていました。
# yum -y install weechat
初めてWeeChatを起動する場合、デフォルトのオプションで設定ファイルが作成されます。キーバインドに関わる設定ファイルは~/.weechat/weechat.conf、接続するIRCサーバに関わる設定は~/.weechat/irc.confです。
WeeChat を設定するにはこのファイルを編集するか、 WeeChat内使えるWeeChatコマンドにパラメータを付けて設定します。
では、WeeChatを起動します。
# weechat-curses
起動したら端末画面上では以下のように表示されます。
WeeChat 0.4.0 (C) 2003-2013 - http://www.weechat.org/
16:40:23 | ___ __ ______________ _____
16:40:23 | __ | / /___________ ____/__ /_______ __ /_
16:40:23 | __ | /| / /_ _ \ _ \ / __ __ \ __ `/ __/
16:40:23 | __ |/ |/ / / __/ __/ /___ _ / / / /_/ // /_
16:40:23 | ____/|__/ \___/\___/\____/ /_/ /_/\__,_/ \__/
16:40:23 | WeeChat 0.4.0 [コンパイル日時 Apr 2 2013 10:55:56]
16:40:23 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
16:40:23 | バー "input" が作成されました
16:40:23 | バー "title" が作成されました
16:40:23 | バー "status" が作成されました
16:40:23 | バー "nicklist" が作成されました
16:40:23 | ロード済みプラグイン: alias, aspell, charset, fifo, irc, logger, lua,
| perl, python, relay, rmodifier, ruby, script, tcl, xfer
weechat-cursesコマンドで初めてWeeChatを起動した時は、接続情報等が未設定なので接続先IRCサーバ等の設定を行う必要があります。
設定方法は、設定ファイル「~/.weechat/irc.conf」を直接編集するか、WeeChat内でWeeChatコマンドにパラメーターを付けて設定します。ここではWeeChatコマンドを使用して設定します。WeeChatコマンドで設定した内容を"cat ~/.weechat/irc.conf"とかでも確認できます。
まず、接続するIRCサーバを登録します。
/server add hoge irc.example.com/6667 -ssl -autoconnect -password=mypassword
IRCサーバのチャンネルを登録し、自動参加を設定します。チャンネルはカンマ区切りで複数指定可能です。
/set irc.server.hoge.autojoin "#channel1,#channel2"
サーバ接続に使用するユーザ名を設定します。これは、表示される名前ではなく、サーバ接続に使用する名前です。
/set irc.server.hoge.username "maepachi"
IRCで表示するニックネームを設定します。
/set irc.server.hoge.nicks "maepachi"
IRCサーバに対してSSL接続しようとしてエラーになることがあります。これは、"ssl_verify" オプションがデフォルト有効なためSSL接続処理で厳密な確認が行われ、0.3.1 より前のバージョンでは信頼性の確認に成功していたものが失敗する場合があるためです。この場合のエラーメッセージとしては以下のような内容の場合があります。
2013-05-05 17:54:55 =!= gnutls: 証明書内のホストネームは "irc.example.com" とマッチしません
2013-05-05 17:54:55 =!= irc: TLS ハンドシェイクに失敗
2013-05-05 17:54:55 =!= irc: エラー: Error in the certificate.
このエラー内容は、WeeChatコマンドで設定したサーバホスト名と証明書に記述されているサーバホスト名が異なる場合に発生しました。
証明書に関するエラーの場合、"ssl_verify" を無効化することで接続が成功することがあります。しかし、"ssl_verify" を無効化するということはSSL接続において厳格ではないので、セキュリティ強度が落ちることに注意してください。
/set irc.server.hoge.ssl_verify off
最低限の設定が出来たので、IRCサーバに接続します。/server addした時に"-autoconnect"を設定しているので次回WeeChat起動時には自動的に接続されます。
/connect hoge
切断する場合はdisconnectです。
/disconnect hoge
チャンネル切り替えはbufferです。ここでは他にもチャンネルに関わる操作を記述しておきます。
### Channel_hoge に切り替える
/buffer #Channel_hoge
### Channel_bar に接続する
/join #Channel_bar
### チャンネルを切断する(バッファは開いたままにする)
/part #channel
### チャンネルを切断する(バッファも閉じる)
/close #channel
WeeChatには様々なpluginがあり、対応言語であればpluginを作成することも出来ます。pluginに関しては、4.1. WeeChat におけるプラグインにザッと目を通しましょう。
### ロードされているpluginのリストを表示
### もしくは、/usr/lib64/weechat/pluginsディレクトリを参照
/plugin list
### plugin "hoge"をロード
/plugin load hoge
### plugin "hoge"をアンロード
/plugin unload hoge
デフォルトでロードされるpluginを以下に記述します。
Plugin name | Description |
---|---|
alias | コマンドの別名を定義 |
aspell | コマンドラインのスペルチェック |
charset | バッファの文字コードに従ってデコード/エンコード |
demo | デモプラグイン (デフォルトではコンパイルされません) |
fifo | 外部から WeeChat にコマンドを送信するための FIFO パイプ |
irc | IRC チャットプロトコル |
logger | バッファの内容をファイルに保存 |
relay | ネットワーク経由でデータを中継 (IRC プロキシ) |
rmodifier | ネットワーク経由でデータを中継 (IRC プロキシ) |
python | Python スクリプト API |
perl | Perl スクリプト API |
ruby | Ruby スクリプト API |
lua | Lua スクリプト API |
tcl | Tcl スクリプト API |
guile | Guile (scheme) スクリプト API |
xfer | ファイル転送とダイレクトチャット |
/bufferとか長くてタイポしちゃうー!!って場合は、コマンドにエイリアスを振る事が出来ます。aliasプラグインの機能。
/alias b /buffer
これで/bでチャンネル切り替えが可能です。
/b #Channel_hoge
LimeChatなんかでもキーワード登録した文字列がチャンネル内で書き込まれた場合、文字列がハイライトされますよね。あれです。ircプラグインの機能。
/set weechat.looks.highlight "pachi,maepachi,maehachi"
バッファの内容をファイルに保存できます。デフォルトで有効です。 保存形式とその方法をオプションで設定できます。loggerプラグインの機能。
### loggerを有効にする
/set logger.file.auto_log on
### ログ保存ディレクトリのパスを~/.weechat/logs/YYYY_mm_ddとする
### これでログファイルを日付ごとに管理できます
/set logger.file.path "%h/logs/"%Y_%m_%d"
### ログファイル名のセパレート文字列をアンダーバー( _ )にする
/set logger.file.replacement_char "_"
### ログファイル内で記録される行単位のタイムフォーマット設定
/set logger.file.time_format "%Y-%m-%d %H:%M:%S"
WeeChatをtmux等のターミナルマルチプレクサツールと併用することでターミナルアプリケーションの中でIRCを表示できます。ウィンドウやペインで表示しておけばマウス移動なく快適なターミナルライフを満喫できるでしょう♪♪
Perl |
3
|
Linux |
16
|
Jenkins |
1
|
CI |
1
|
Bashシェル |
1
|
シェルスクリプト |
1
|
Munin |
7
|
Ruby on Rails |
7
|
plenv |
1
|
sudo |
2
|
Cobbler |
6
|
ruby |
1
|
rbenv |
1
|
WeeChat |
1
|
tmux |
2
|
Webistrano |
1
|
capistrano |
1
|
puppet |
8
|
growthforecast |
1
|
Supervisor |
1
|
perlbrew |
1
|
git |
2
|
Python |
1
|
pip |
1
|
PHP |
1
|
Nginx |
1
|
MySQL |
2
|
LXC |
2
|
RPM |
3
|
ImageMagick |
1
|
Subversion |
1
|
qmail |
3
|
yum |
1
|
ucspi-tcp |
1
|
daemontools |
1
|
Puppet |
1
|
IPVS |
1
|
Kickstart |
1
|
aaa |
0
|