けんごのお屋敷

2014-04-15

Weechat内でマウスを操作せずにURLを開けるプラグイン欲しくありませんか?

CUI で動作する IRC クライアントの 1 つに weechat があります。ペパボでは業務に IRC を利用しており、会話中によく URL が貼られたり BOT の通知で URL が貼られたりして、それなりの頻度でチャンネルの中に URL が出現します。Mac であれば Command を押しながら URL をダブルクリックするとブラウザで開けるのですが、その際に一度キーボードから手を離す必要があって面倒臭かったので Hometype(紹介記事) のヒントモードをヒントに weechat のプラグインを作ってみました。

前提

  • Mac OS X でのみ有効なプラグインです。
  • ruby で書かれているので ruby を有効にしてコンパイルされている必要があります。brew でインストールするのであれば --with-ruby オプション付きでコンパイルされている必要があります。

インストール

weechat の公式スクリプトとしての登録はされてないので、リポジトリから直接ファイルをダウンロードしてきてください。

$ curl -o ~/.weechat/ruby/autoload/url_hinter.rb https://raw.githubusercontent.com/tkengo/weechat-url-hinter/master/weechat-url-hinter.rb

ダウンロードが終わったら weechat を再起動してください。

使い方

URL が表示されているバッファ上で

/url_hinter

とコマンドを打ってみてください。通常はこのようなバッファーですが

コマンドを実行すると

のように URL だけハイライトされて、先頭に 1 文字のキーが表示されていることがわかります。(1 文字で収まらない数の URL が画面上にある場合は 2 文字になります)

ハイライトされた URL の先頭に表示されているキーを押下することで、対応する URL をブラウザで開くことができます。この状態でたとえば k キーを押下すると https://github.com/tkengo/weechat-url-hinter が開きますし f キーを押下すると https://github.com/tkengo/hometype が開きます。

オプション

基本的な使い方は以上ですが、このプラグインは 2 つのオプションを持っています。

最初の URL を開く

/url_hinter first

という風に first オプションをつけてコマンドを実行すると、現在のバッファ上で一番新しい行の URL が自動的に開かれます。上のスクリーンショットで言うと j に対応する http://tkengo.github.io/ が開かれます。

複数の URL を一気に開く

/url_hinter continuous

バッファ上の複数の URL を一気に開きたい場合は continuous オプションをつけてコマンドを実行します。通常であれば 1 度 URL を開くとその時点で URL ハイライトが解除されますが、このオプションを付けた場合はそうなりません。

  1. /url_hinter continuous を実行
  2. 開きたい URL のキーを連続で押下していく
  3. 最後にエンターキーを押下する

とすることで、選択した URL が一気にブラウザで開かれます。

continuous オプション付きで起動すると、押下されたキーは * アスタリスクになります。

キーバインド

これで使い方の説明は終わりですが、プラグインを起動する度に毎回

/url_hinter

とコマンドを打ち込むのは面倒ですので、キーバインドの設定をします。どのキーに割り当てるかは使う人次第ですが、自分は以下のようにバッファに入力して

/key bind meta-u /url_hinter
/key bind meta-i /url_hinter first

のように割り当てて Alt + u または Alt + i でプラグインを起動するようにしています。設定を保存する場合は

/save

を忘れずに。

ちなみに Mac のターミナル上で Alt キーを使う場合、ターミナルの設定で メタキーとして option キーを使用 という設定にチェックを入れておく必要があります。Terminal.app でも iTerm でも同じような設定があるので Alt キーが動かない場合はその設定を行うとうまくいくようになります。この辺を参考に。

終わりに

プラグインは github に置いてあります。public にしてて誰でも見れますので、是非プラグイン開発の参考にしたりバグがあったらプルリクエスト送ったりしてください。

https://github.com/tkengo/weechat-url-hinter

  • このエントリーをはてなブックマークに追加