EmacsをGnusで使う:USENETニュースリーダーとしての完全ガイド
USENETは、分散型のグローバルメッセージングシステムです。10万以上のニュースグループが存在し、さまざまなトピックや専門分野について議論が交わされており、世界初のグローバルなソーシャルネットワークとされています。知識を求める読者にとって、USENETは非常に価値のある情報・議論の宝庫といえるでしょう。
Gnusとは?
近年、USENETは衰退傾向にありますが、それでも今なお議論の場として利用し、ニュースを共有しているユーザーは少なくありません。現在の多くのUSENETユーザーはGoogle Groupsのウェブサイト経由でネットワークにアクセスしています。しかし、Emacsを使っているなら、Emacsから直接USENETのニュースグループを読む方法があります。
Gnusは、ニュースグループを読むために設計されたEmacsパッケージです。ニュース閲覧を簡単かつ快適にする多くの強力な機能を備えたリッチなプログラムであり、Emacs上で動作するため、投稿内のテキストを自由に操作し、Emacsシステムの他の機能と連携させることができます。
なぜEmacsでニュースリーダーを使うのか?
Emacsは「拡張性の万能シンク」と呼ばれてきました。豊富なパッケージや追加機能を持つだけでなく、テキスト編集以外の基本機能も非常に簡単に拡張できる点が大きな特徴です。
Emacsの根底にあるのは相互運用性という考え方です。この思想により、Emacsは各パッケージを組み合わせて、テキストを作成し、さまざまな形で加工できる統合環境を構築できます。
たとえば、Emacsには独自のファイラー「dired」が標準搭載されています。diredはディレクトリ構造を辿ってファイルを開くことのできるシンプルなパッケージですが、他のファイラーと違って結果をテキストとして表示するのが特徴です。
さらに、ジャーナリングにOrg Modeを使っているなら、そのテキストをコピーして、diredから生成した詳細なリンクをOrgファイルに埋め込むことも可能です。
あるパッケージのテキスト出力を別のパッケージの入力として利用できるEmacsの能力を考えると、GnusのようなニュースリーダーはEmacsエコシステムにおいて極めて有用だといえます。
たとえば、ニュース投稿から一節をコピーしてOrg Modeに貼り付け、ジャーナルのエントリー、アジェンダ、アイデアの記録として追加する、といった使い方が簡単にできるのです。
Gnusのインストール
GnusはEmacsバージョン19.32以降、すべてのデフォルトインストールに同梱されています。最近のバージョンのEmacsを使っているなら、すでにGnusが入っている可能性が高いでしょう。
Alt + X を押して gnus と入力すれば、Gnusがインストールされているか確認できます。これにより、未設定の素の状態のGnusが起動します。
USENETグループを読むためのGnus設定
Gnusの初期設定は比較的簡単です。init.elファイルにいくつかのオプションを設定して .newsrc ファイルを作成するだけです。
.newsrcファイルはニュースグループリーダーの標準的なファイルで、ホームディレクトリに配置されます。主な目的は、USENETサーバー上の利用可能なグループと購読中のグループをすべて記録することです。
また、.newsrcファイルは、既読の投稿を追跡するステートファイルとしても機能します。
.newsrcファイルを作成するには、次のコマンドを実行します。
touch /home/$USER/.newsrc
初期設定
作成できたら、Emacsの設定ファイルであるinit.elファイルの設定に移ります。このファイルはデフォルトでは「/home/$USER/.emacs.d/」または「/home/$USER/.config/emacs」にあります。
Gnusを正しく初期化するには、init.elファイルに以下の行を追加します。
(setq user-full-name '"yourusername") (setq user-mail-address '"yourname@email.invalid") (setq gnus-select-method '(nntp "news.eternal-september.org"))
- user-full-name は、Emacs内であなたのユーザー名を設定する一般的なオプションです。ニュース投稿を送信する際、「From」ヘッダーにGnusが表示する名前になります。
- user-mail-address も同様に一般的なオプションで、user-full-nameと同じく「From」ヘッダーに表示されるメールアドレスを指定します。筆者の場合は無効なメールアドレスを使用しました。
- 最後のgnus-select-methodはGnus固有のオプションで、ニュースリーダーがどのサービス・サーバーに接続するかを指定します。ここではnntpサービスを選択し、サーバーとして「news.eternal-september.org」を指定しました。
リモートUSENETサーバーの認証
重要なポイントとして、認証が必要なUSENETプロバイダーを利用する場合は、authinfoファイルにアカウント情報を記述する必要があります。Gnusはこのファイルから、USENETサーバーの情報とユーザー名・パスワードを読み込みます。
作成するには、Emacsで Ctrl + X、Ctrl + F を押し、/home/$USER/.authinfo と入力します。この操作でホームディレクトリに.authinfoファイルが作成され、バッファで開かれます。
.authinfoファイルの一般的な書式は次のようになります。
machine news.domain.name login yourusername force yes password yourpasswordgoeshere
- machine 変数は、別のマシン(サーバー)に接続することを示します。
- ドメイン名フィールドは、接続先マシンのアドレスをGnusに伝えます。
- login フィールドには、USENETアカウントのユーザー名を記入します。
- 「force yes」オプションは、サーバーが認証を要求しない場合でもGnusに認証を行わせます。
- 最後のpassword変数には、USENETアカウントのパスワードを記入します。
ローカルUSENETサーバーの利用
さらに、Gnusはローカルのスプールファイルをソースとして利用することもできます。これは、ニュースグループを自動的にローカルマシンへダウンロードするサービスを運用している場合に便利です。
その場合、「gnus-select-method」関数内のnntp設定を変更する必要があります。
(setq gnus-select-method '(nnspool ""))
ただし、ローカルUSENETサーバーとしてLeafnodeを使用している場合は、NNTPサーバーとして設定してください。Leafnodeは通常の「/var/spool/」ディレクトリではなく、よりUSENETサーバーに近い動作をするためです。
同じマシン上で稼働しているLeafnodeサーバーを使うには、次のように記述します。
(setq gnus-select-method '(nntp "localhost"))
設定が完了したら、Alt + X を押してコマンドバッファに gnus と入力し、Gnusを起動します。するとGnusが読み込まれ、リモートUSENETサーバー上の利用可能なグループがすべて取得されます。
基本的な使い方
Gnusを起動すると、最初は真っ白な画面が表示されます。これはデフォルトでは、未購読および既読のニュースグループが非表示になるためです。
Shift + 6 を押すと、USENETサーバー上の全ニュースグループの一覧を確認できます。これでGnusのサーバー画面が開き、筆者の場合はEternal Septemberの利用可能なニュースグループがすべて表示されました。
USENETグループの購読
この画面で U キーを押すことで、特定のニュースグループを購読・購読解除できます。購読したグループは、Gnus起動時のランディング画面に表示されます。
たとえば筆者は、サーバー画面で「alt.religion.emacs」と「alt.folklore.computers」の両方を購読しました。Gnusを再読み込みすると、この2つのグループがメイン画面に表示され、閲覧できるようになりました。
バッファ内の移動
グループ一覧からEnterを押してニュースグループに入り、Ctrl + N や Ctrl + P といったEmacsの標準移動キーを使って、グループ内の各投稿をスクロールできます。
また、Enter または Tab キーで投稿を開き、Backspace と Space キーで投稿内を上下にスクロールできます。
Emacsの検索機能(Ctrl + S および Ctrl + R)を使えば、目的の投稿をすばやく見つけることができます。
USENETへの投稿と返信
ニュースグループに新規投稿を作成するには、A キーを押してメッセージエディターを開き、投稿内容を記述します。
書き終えたら Ctrl + C を2回押すと、そのニュースグループにメッセージが送信されます。
一方、グループ内の投稿に返信したい場合は、Shift + S、Shift + F を押します。「Followup(フォローアップ)」バッファが起動し、元の投稿が引用済みの状態でメッセージエディターが開きます。
新規投稿と同様に、Ctrl + C を2回押せば、フォローアップをその投稿に送信できます。
スコアファイルによるフィルタリング
Gnusには、スコアファイルを使った強力かつシンプルなフィルタリングシステムもあります。特定のパターンや条件に一致した投稿を自動的に「削除(kill)」する通常のキルファイルとは異なる仕組みです。
スコアファイルでは、個々の投稿の内部スコアを段階的に上げ下げでき、Gnusはそのスコアに基づいて、どの投稿を優先表示し、どの投稿を非表示にするか、あるいはリモートサーバーから取得しないかを判断します。
フィルタリングの種類
さらにGnusは、機能豊富なフィルタリングシステムを備えており、フィルタのさまざまな要素を細かく調整できます。
たとえば、特定の投稿のスコアを下げたい場合は、その投稿を選択して L キーを押すだけです。コマンドバッファに小さなメニューが表示され、どのプロパティをスコア判定の基準にするかを尋ねられます。
プロパティのリストは非常に豊富ですが、特に重要なのは以下の通りです。
- A:投稿者の名前を基準にスコアを付ける。
- S:件名のテキストを基準にスコアを付ける。
- L:行数を基準にスコアを付ける。
- B:本文を基準にスコアを付ける。
筆者の場合は投稿者を基準にスコアを付けたかったため、A を押しました。
フィルタのマッチ方式
続いてGnusは、このスコアで使用する文字列マッチの種類を尋ねてきます。選択肢は「完全一致」「部分一致」「ファジー」「正規表現」の4つです。
- 完全一致(Exact):文字列全体を使ってテキストを照合します。
- 部分一致(Substring):文字列の一部を使ってテキストを照合します。全文が一致していなくてもヒットします。
- ファジー(Fuzzy):そのニュースグループの過去の投稿に基づく予測モデルを使用します。記号や数字などを使ってテキストを難読化し、部分一致を回避しようとする巧妙な投稿者への対策として特に有効です。
- 正規表現(Regexp):より伝統的な正規表現を使ってテキストをフィルタリングします。
筆者は部分一致を選んだため、S を押しました。
フィルタの適用期間
最後に、このスコアを「一時的」「恒久的」「即時」のどれにするかを尋ねられます。
- 一時的(Temporary):設定した日付でスコアが失効します。特定の投稿や投稿者のスコアを一定期間だけ上下させたい場合に便利です。
- 恒久的(Permanent):スコアは失効しません。グループに侵入してくるスパマーを排除するのに役立ちます。
- 即時(Immediate):スコアファイルに書き込まず、現在のバッファにのみスコアを適用します。今だけ投稿をフィルタしたいが、恒久的な評価はしたくない場合に便利です。
筆者はこのフィルタを恒久的なものにしたかったため、P を押しました。
おめでとうございます!これでEmacsでGnusをニュースリーダーとして使う基本をマスターしました。さらに、認証付きUSENETサーバーへの接続方法や、スコアファイルとフィルタリングの適切な活用方法についても基礎を理解できました。
この記事を読んでEmacsについてさらに学びたいと思った方は、Doom Emacsのインストール方法をチェックしてみましょう。
よくある質問
1. メッセージを書いたのですが、もう送信したくありません。投稿やフォローアップをキャンセルするには?
確実な方法は明示されていませんが、執筆中の投稿をキャンセルできる可能性があります。Ctrl + C、Ctrl + D を押してみてください。
2. Gnusで複数のUSENETサーバーを追加することはできますか?
はい、できます!init.elファイルにもう1つの「gnus-select-method」変数を追加するだけです。
たとえば、init.elファイルは次のようになります。
(setq user-full-name '"ramcesred") (setq user-mail-address '"ramcesred@email.invalid") (setq gnus-select-method '(nntp "news.eternal-september.org")) (setq gnus-select-method '(nntp "nntp.aioe.org")). (setq gnus-select-method '(nntp "localhost"))
設定後は、Emacsを再起動してGnusの設定を再読み込みしてください。
3. 記事を読んだらメイン画面の一覧から消えてしまいました。注目している特定の投稿をピン留めできますか?
はい、できます!gnus-summary-tick-article-forward関数を使います。対象の投稿が選択されている状態で U キーを押すと、この関数にアクセスできます。
ただし注意点として、これはその記事1件のみを「ピン留め」するものです。同じスレッド内の他の返信はデフォルトでは表示されません。スレッド全体を再構築したい場合は、Shift + A、Shift + T を押してください。
-
Microsoft Edgeでイマーシブ リーダーを使う方法|翻訳や文法ツールの活用術
Microsoft Edgeには、ウェブページやドキュメントなどを、余計な要素に邪魔されないシンプルなビューで読めるユニークな機能が搭載されています。それが「イマーシブ リーダー」です。このツールを使えば、テキストのレイアウトや行間、フォーカスを最適化できるほか、背景色や文字色、文字間隔も自由に変更でき、格段に読みやすくなります。 さらに、イマーシブ リーダーには「読み上げ」「テキストの基本設定」「文法ツール」といったアクセシビリティ機能も備わっています。インライン辞書を使って難しい単語の意味をその場で調べられるほか、テキストを他の言語に翻訳することも可能です。 この機能は、Outlook、T
-
GmailをMicrosoft Outlookで使う方法|IMAP設定とアカウント追加の手順
パソコンを使っている方なら、Yahoo!メール、Gmail、Hotmail、Outlook.comなど、複数のメールアドレスを持っていることも少なくないでしょう。時間が経つにつれて使わなくなったアドレスが出てくるのは自然なことですが、よく使うメールアドレスはOutlookの受信トレイに一元化しておくのがおすすめです。Microsoft Outlookには任意のメールアドレスを登録できますが、特に相性が良いのがGmailです。Gmailは他の多くのメールサービスよりも大容量のストレージを備え、スパム対策も強力です。さらにGoogle独自のクラウドサーバーで運用されているため、MS Outlook