Emacsは何でもできる素晴らしいツールです。テキストエディタでありながら、メールクライアント、RSSリーダー、さらには音楽プレーヤーとしても機能します。インターネットリレーチャット(IRC)のユーザであれば、Emacsの中からIRCを使 うことも可能です。これは、IRCを通じて他の人とチャットしたいが、Emacsのバッファーから離れたくない場合に便利でしょう。

IRC と ERC って何?

基本的な意味で、IRC はインターネット上で二人以上の人がテキストでコミュニケーショ ンをするためのプロトコルです。新しいチャットプラットフォームとは異なり、IRC はプレーンテキストで通信できることだけに依存しています。このアプローチにより、このプロトコルは帯域幅が極端に制限された状況でも使用することができます。

Emacsで使える最も簡単なIRCクライアントの1つがERCです。これはElispのIRCクライアントで、あなたのニーズに合わせて変更することができる機能をサポートしています。例えば、ERCは “Autolog “機能を実装することができ、特定の間隔のすべてのチャットログをファイルに保存します。

さらに、ERCは標準的なEmacsのインストールにデフォルトで付属しています。つまり、外部パッケージやサードパーティリポジトリをインストールすることなく、起動することができます。

ERCを始めるにあたって

  1. Emacsで Alt + X を押してコマンドバッファを表示させます。
    1. erc と入力し、Enter を押します。

3. 3. プロンプトが表示されますので、接続したいサーバのアドレスを入力してください。デフォルトでは、EmacsはLiberaチャットサーバのアドレスでこのプロンプトを埋めます。これはフリーソフトウェアのネットワークで、あなたのお気に入りのオープンソースソフトウェアのサポートチャンネルを見つけることができます。

4. しかし、私たちの場合は、UnderNetに接続します。これは、ユーザーが一般的なトピックやテストチャンネルを簡単に作成することができるIRCネットワークです。

5. ここから、ERCは、あなたが接続したい特定のポートを尋ねます。ほとんどの場合、すべてのチャットネットワークは同じポート番号を共有しており、そこに接続することができます。このため、UnderNetに接続する場合は、「6667」ポートを使用することもできます。

1. EmacsでIRCチャンネルに参加する

そこから、ERCは新しいバッファを作成し、あなたのチャットサーバに接続するためにこれらの詳細を使用します。一旦完了すると、サーバーの歓迎メッセージと、テキストやコマンドを入力するための小さなプロンプトが表示されます。

  1. 次に必要なことは、特定の IRC チャンネルに参加することです。これを行うには、プロンプトで /join の後にチャンネル名を入力するか、Ctrl + C を押し、次に Ctrl + J を押してください。
  2. 後者の場合、コマンドバッファが表示され、参加したいチャンネルの名前を入力することができます。この例では、"#hello-world-test” チャンネルに参加することにします。

2. 最初の IRC メッセージを送る

チャンネルに入ったら、ERC> プロンプトの後にタイプして Enter を押すことで、そのチャンネルにメッセージを送り始めることができます。

この例では、"#hello-world-test” チャンネルにメッセージを送るために、プロンプトに “Hello world!” とタイプしています。

メッセージの送信のほかに、ERC バッファにいる間にいくつかの追加コマンドを実行することができます。

  1. 例えば、Ctrl + C を押し、次に Ctrl + N を押すと、現在のチャンネルにいるすべてのユーザのリストが表示されます。

2. さらに、ERCセッション内のすべてのテキストを操作することもできます。Ctrl+Space で任意のテキストを視覚的に選択し、Ctrl+W` でクリップボードにコピーします。

3. ERCはバッファの中からオペレータ固有のコマンドも提供します。これは、あなたが Emacs の中にいながらチャンネルを調節したいオペレータである場合、 特に有用です。例えば、Ctrl + C を押して、Tab でチャンネルを非公開にすることができます。

3. Emacs で IRC チャンネルとサーバを離脱する

  1. ERC で現在の IRC チャンネルから抜けるには、プロンプトで伝統的な /part コマンドを入力するか、ERC バッファ内で Ctrl + C を押し、次に Ctrl + P を押すことができます。

2. そうすると、小さなプロンプトが表示され、チャンネルを抜ける理由を書くことができます。プロンプトで Enter を押せば、空白のままにしておくことができます。

3. IRCサーバーから抜けるには、従来の /quit コマンドを使うか、Ctrl + C, Ctrl + Q を押してください。このコマンドを実行すると、小さなプロンプトが表示されますので、そこに終了する理由を入力してください。

ERC を設定する

チャットテキストの送信以外にも、ERCのデフォルトの動作を自分のニーズに合わせて変更することができます。例えば、ERCではオプションの機能を追加するだけでなく、カスタム関数によって新しい機能を作成することもできます。

1. モジュールによるオプション機能の有効化

ERCの最も強力な機能の1つは、モジュールシステムを通じてクライアントの一部をロードおよびアンロードできることです。この機能を利用することで、自分のやりたいことだけを行うカスタムERCインスタンスを作成することができます。

    1. ERCのモジュール機能を有効にするには、Alt + X を押し、“customize-option “とタイプしてください。

2. これで小さなプロンプトが表示され、オプション名を入力することでその有効性を切り替えることができます。この場合、“erc-modules” という値を指定する必要があります。

3. そこから、Emacsはあなたのマシンで利用可能なすべてのモジュールのチェックボックスリストを持つバッファを作成します。例えば、ERCの状態管理を有効にするために、“autoaway “モジュールを選択して適用してみました。

2. Emacsへのサードパーティ製ERCモジュールの追加

ERCの非標準のモジュールを有効にすることも可能です。これにより、ERCの内部をいじらなくても、新しいカスタム機能を導入することができます。

  1. まず、インストールしたいモジュールのコピーを入手する必要があります。今回は、ERCのカスタムモジュール「erc-highlight-nicknames.el」を使用します。

2. そこから、モジュールファイルをあなたのEmacsクライアントのロードパスにコピーする必要があります。ほとんどの場合、これはあなたのEmacsの設定ディレクトリになるはずです。そのため、以下のコマンドを実行することで、モジュールを適切なディレクトリにコピーすることができます。

cp -v /path/to/your/module /home/$USER/.emacs.d/ です。
  1. それが終わったら、新しいサードパーティモジュールを認識するように Emacs クライアントを設定する必要があります。これを行うには、次の行をinit.elファイルに追加する必要があります。
(add-to-list 'ロードパス "~/.emacs.d/")
(load "nameofmodule.el")
  1. 最後にEmacsクライアントを再起動すると、新しい設定が適用されます。

3. 新しいERCの関数を定義する

最後に、Lisp関数をinit.elファイルに直接書くことによって、ERCに新しい機能を追加することもできます。カスタムモジュールをロードするのとは異なり、ERCセッションに小さな調整をすばやく導入することができます。

  1. ERCの新しいLisp関数を定義するのは比較的簡単です。そのためには、まず、init.elファイルをロードする必要があります。

2. そこから、ERCの動作を直接変更する様々なLisp関数を使用することができます。例えば、define-key関数を使うと、Emacsに新しいキーバインドを作成することができます。この関数を erc-mode-map とリンクすることで、新しいEmacsのキーバインドをERCに適用することができます。

3. このことを知った上で、次のコードの断片はこれら2つの関数を使ってERCにシンプルなニックネームの問い合わせ関数を作ります。

(define-key erc-mode-map (kbd "C-c C-z"))
       (lambda (nick)
	 (interactive (list (completing-read "Nick: " channel-members")))
	 (erc-cmd-QUERY nick)))

Frequently Asked Questions (よくある質問)

SSL/TLSでERCを使用することはできますか?

はい!デフォルトでは、ERCは暗号化されたIRCポートをネイティブにサポートしていません。つまり、サーバに接続する際にSSLポートを提供しても、ERCは暗号化された接続を検出しません。これに対処する1つの方法は、SSLを使用するERCの専用フォークを使用することです。これを利用するには、Alt + X を押して、“erc-ssl “と入力するだけです。そうすることで、通常のERCセッションと同様のプロンプトとコマンドがロードされます。

EmacsでIRCチャンネルのログをダンプすることはできますか?

はい! ERCバッファの一部を引き出すことはもちろんですが、ERCログ全体を引き出してファイルに保存することも可能です。これはIRCチャンネルでの会話を記録しておきたい場合に特に便利です。それを知っていれば、ERCでIRCのチャットログをダンプするのは信じられないほど簡単です。Ctrl+Cを押し、次にCtrl+L` を押すだけで、アクティブなログの全てのテキストをファイルに保存することができます。そこから、Emacsはファイルをあなたの “/home/$USER/logs” ディレクトリに保存しようとします。

ERCのために複数のEmacsキーバインドを作成することはできますか?

はい、できます。他のEmacsの関数と同様に、init.elファイルに複数のERCキーバインドを追加することができます。例えば、次の図はinit.elの抜粋ですが、ここではERCのキーバインドを2つ作成しています。

(define-key erc-mode-map “\C-m” ’newline)`。

(define-key erc-mode-map "\C-c" 'erc-send-current-line)

しかし、1つ重要なことは、ERCの現在のアクティブなキーバインドに注意する必要があることです。これを行うには、ERCバッファの中で Ctrl + H を押し、次に B を押します。そうすると、Emacsはそのバッファで現在アクティブになっているERC固有のキーバインドをすべて見るように指示します。

画像クレジット Unsplash すべてのスクリーンショットはRamces Redによるものです。

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。