rieceに関する覚書

1. 概要

Riece とは、Emacs 上で動作する IRC クライアントです。 screen 経由のターミナル上から emacs + SKK 環境がシームレスに使えるので色々と便利です。

画像は GNU Screen + Emacs 上で動作している riece のスクリーンショットです。

2. インストール

公式ページより、樽玉をダウンロードし、Make します。

[bash]
wget http://dl.sv.gnu.org/releases/riece/riece-8.0.0.tar.gz
tar zxvf riece-8.0.0.tar.gz
cd riece-8.0.0
./configure
make
sudo make install
[/bash]

3. 設定

~/.riece/init を編集します。下記は、”tiarra” と “2nd”、二つのサーバを定義しています。( “tiarra” がデフォルト )

  (setq riece-server "tiarra"
    riece-server-alist '(
      ("tiarra"
        :host "127.0.0.1"
        :coding iso-2022-jp
        :service "6660"
        :password "hoge"
        :nickname "fuga"
        :username "piyo"
    )
      ("2nd"
        :host "example.com"
        :coding utf-8
        :service "6666"
        :nickname "dyama"
        :username "dyama"
    )
    )
  )

4. 起動

 $ emacs -e riece

または

 $ emacs
 M-x load-library
 riece

5. 使い方

手っ取り早く会話を開始するには、以下のようにします。

  1. emacs -e riece で起動します。
  2. C-c O とタイプし、サーバ名を指定し接続します。サーバ名は”irc.gnu.org”、”irc.gnu.org:6667″、”2nd” (~/.riece/initで指定した名称)といった形式で指定します。
  3. ~/.riece/init にて設定をしていない場合、UserName? や NickName? を求められますので、適宜入力します。
  4. ログインが完了したら、C-c j とタイプし、任意のチャンネル名を指定してチャンネルに join します。複数のサーバにログインしている場合は、”#channel@server” の書式で指定します。
  5. チャンネルから離脱する場合は、C-c C-p とタイプし、チャンネル名を指定して part します。省略すると、現在表示されているチャンネルから part します。
  6. 終了時には、C-x C-c とタイプし、そのまま Emacs を終了して構いません。

詳しい使い方は、[公式ページのマニュアル]を読んでください。

6. キーバインド

公式ページのマニュアルに掲載されているキーバインドです。

6.1. IRC commands

  • RET
    文章を送ります(riece-command-enter-message)
  • C-RET
    文章を NOTICE として送ります(riece-command-enter-message-as-notice)
  • C-c j
    チャンネルに参加します(riece-command-join)
  • C-c C-p
    チャンネルから離脱します(riece-command-part)
  • C-c p
    宛先を指定して現在の行を送ります(riece-command-enter-message-to-user)
  • C-c q
    IRC をやめます(riece-command-quit)
  • C-c n
    自分のニックネームを変更します(riece-command-change-nickname)
  • C-c f
    ユーザの情報を調べます(riece-command-finger)
  • C-c C-k
    ユーザをチャンネルから蹴り出します(riece-command-kick)
  • C-c i
    ユーザをチャンネルに招待します(riece-command-invite)
  • C-c l
    パターンに対して LIST を発行します(riece-command-list)
  • C-c C-n
    パターンに対して NAMES を発行します(riece-command-names)
  • C-c w
    パターンに対して WHO を発行します(riece-command-who)
  • C-c t
    チャンネルのトピックを設定します(riece-command-topic)
  • C-c C-m
    チャンネルのモードを設定します(riece-command-change-mode)
  • C-c o
    ユーザにチャンネルの管理者権限を与えます。C-u C-c o では逆に、ユーザからチャンネルの管理者権限を奪います(riece-command-set-operators)
  • C-c v
    ユーザにチャンネルでの発言権を与えます。C-u C-c v では逆に、ユーザからチャンネルでの発言権を奪います(riece-command-set-speakers)
  • C-c V
    Riece のバージョンを表示します。(C-u C-c V) で、より詳細な情報を表示します。
  • C-c /
    IRC コマンドを直接送ります(riece-command-raw)

6.2. Window manipulating commands

  • C-c r
    フレーム全体を再描画します(riece-command-configure-windows)
  • C-c C-j または C-c >
    チャンネル一覧で次のチャンネルを選択します(riece-command-next-channel)
  • C-c <
    チャンネル一覧で前のチャンネルを選択します(riece-command-previous-channel)
  • C-c ^
    アドオンの一覧を表示します(riece-command-list-addons)
  • C-c 数字
    チャンネル一覧で n番目のチャンネルを選択します(riece-command-switch-to-channel-by-number)
  • C-c C-c 数字
    チャンネル一覧で n + 10番目のチャンネルを選択します(riece-command-switch-to-channel-by-number)
  • C-c Home
    チャンネルバッファ、またはダイアログバッファを上端までスクロールします(riece-command-beginning-of-buffer)
  • C-c $
    チャンネルバッファ、またはダイアログバッファを下端までスクロールします(riece-command-end-of-buffer)
  • C-c SPC
    チャンネルバッファ、またはダイアログバッファを上方向にスクロールします(riece-command-scroll-up)
  • C-c DEL
    チャンネルバッファ、またはダイアログバッファを下方向にスクロールします(riece-command-scroll-down)

6.3. Status toggle commands

  • C-c C-t c
    チャンネルバッファの表示・非表示を切り替えます(riece-command-toggle-channel-buffer-mode)
  • C-c C-t C
    チャンネルリストバッファの表示・非表示を切り替えます(riece-command-toggle-channel-list-buffer-mode)
  • C-c C-t u
    ユーザリストバッファの表示・非表示を切り替えます(riece-command-toggle-user-list-buffer-mode)
  • C-c C-t f
    チャンネルバッファ、またはダイアログバッファの自動スクロールを禁止します(riece-command-toggle-freeze)
  • C-c C-t o
    チャンネルバッファ、またはダイアログバッファを、自分が発言するまで、自動スクロールを禁止します(riece-command-toggle-own-freeze)
  • C-c C-t a
    自分の離席状態を切り替えます(riece-command-toggle-away)

7. 豆知識

  • “C-c 数字” でチャンネル切り替えが可能なのは、発言バッファがアクティブな時だけです。
  • 参加者リストバッファがアクティブな時に o とタイプすると、MODE +o する事が出来ます。
  • MODE +o する際、Tab キーによる補完が可能です。また、一度に複数(<=3)のメンバに +o する場合は、カンマ(,)区切りで指定する事が出来ます。

8. アドオンについて

riece には快適に IRC を使う為に様々なアドオンが用意されています。バージョンやディストリによって標準で同梱されているアドオンが違うようですので、お使いのホストでは何が 使えるか /usr/share/emacs/site-lisp/riece/*.el あたりを確認してみてください。

例として、DCC を行うアドオンを使ってみたいと思います。以前の riece では、Emacs のネットワーク機能を使った riece-ndcc というアドオンと Ruby を使った riece-rdcc というアドオンの二つがありましたが、私のホストでは、後者のみが使用可能のようでした。Ruby が入っていなかったので、apt でインストールしました。(最低限の3パッケージ、約8メガバイト)

次に ~/.riece/init に以下のように記述します。

 (add-to-list 'riece-addons 'riece-rdcc)

これで起動時に riece-rdcc がロードされます。この状態で riece を実行し、DCC ファイル受信要求が到達すると、ミニバッファに「受信するには C-c C-d r」と親切なメッセージが出てきます。またメインウィンドウにも

 15:20 *** DCC SEND from alice (alice@0.0.0.0) to dyama: mypicture.xpm (16.1KB) (from server)

といったログが表示されます。メッセージのとおり C-c C-d r (Command Dcc Receiveと覚えられます)とタイプします。次に、複数のファイルが送信されようしていた場合は受信したいファイルを番号で指定し、保存ファイルパス を指定すれば受信できます。

また、DCC ファイル送信を行うには、~/.riece/init に以下を追記した上で、C-c C-d s (Command Dcc Send かな)とタイプします。すると、ユーザ名とファイル名を聞いてくるので、任意のものを指定して送信する事が出来ます。

 ;;; DCC のリスンポートを指定
 (setq riece-rdcc-server-port 10020)

rieceに関する覚書」への2件のフィードバック

  1. Есть такая услуга – добровольное медицинское обслуживание (или ДМО).
    Она предполагает, что вы вносите небольшую сумму за абонемент и посещает врачей весь год не платя за каждый прием.
    Однако опросы показывают, что лишь 3% жителей Санкт-Петербурга знают об этом.
    Почему?
    Да потому что частным клиникам намного выгодней сдирать с людей деньги за каждый визит.
    А если какой-нибудь сотрудник клиники попытается рассказать про добровольное медицинское обслуживание клиенту – это сулит ему увольнением.
    Информация о ДМО уже вызвала много скандалов, сразу после того как информацию об услуге распространил один возмущенный врач.
    Его уволили “по собственному желанию”, после того, как он посоветовал ДМО постоянному клиенту.
    Самое невероятное, что официальные положения по ДМО есть в открытом доступе, просто натыкались на эту информацию только случайные люди.
    Как отстоять свои права?
    О правилах оказания такой услуги и обязанностях частных клиник можно узнать, просто вбив в Яндекс фразу: “добровольное медицинское обслуживание”.
    Обязательно обслуживание, а не страхование.

    34j5c6h86

コメントを残す

メールアドレスが公開されることはありません。