gnus とは何ですか?
USENET は近年衰退していますが、それでもまだ、ディスカッションやニュースの共有に利用している人はいます。USENET ユーザのほとんどは、最近、Google Groups ウェブサイトを通じて、 ネットワークと接続しています。しかし、もしあなたがEmacsを使っているならば、Emacsを通してUSENETのニュースグループを見る方法がある。
Gnus は、ニュースグループを読むために設計された Emacs パッケージです。Gnus はニュースグループを読むために設計された Emacs パッケージで、 ニュースを簡単に、便利に読むための多くの強力な機能を持っています。さらに、Emacs 内にあるため、ユーザーは投稿内のテキストを簡単に操作し、 それを Emacs システムの他の部分で使用することができます。なぜ Emacs でニュースリーダを使うのか?
Emacsは常に拡張性の台所の流しとして宣伝されてきました。多くのパッケージや追加機能があるからだけではなく、テキスト編集以外の Emacs の基本的な機能を拡張することも非常に簡単なのです。
Emacsは相互運用性という考え方で動いています。この考え方により、Emacsはパッケージを利用して、テキストを作成したり、様々な方法で変更したりできる完全な環境を形成することができます。 例えば、Emacsには独自のファイルマネージャであるdiredが付属しており、ディレクトリ構造をたどり、ファイルを開くことができるシンプルなEmacsパッケージです。しかし、他のファイルマネージャとは異なり、diredは結果をテキストで表示します。 もしあなたがジャーナルを書くためにOrgモードを使っているなら、そのテキストをコピーして、Orgファイルの中でdiredから精巧なリンクを作ることができます。 Emacsの機能として、あるパッケージのテキスト出力を別のパッケージの入力として使用できるため、gnusのようなニュースリーダはEmacsのエコシステムにとって非常に貴重なものとなっています。 これにより、例えば、ニュース記事からテキストの一節をコピーし、そのテキストを Org モードに入れ、ジャーナルエントリ、アジェンダポスト、またはアイデアキャプチャとして追加することができます。gnusのインストール
Gnusはバージョン19.32以降、Emacsのデフォルトインストールに含まれています。もしあなたが最近のバージョンのEmacsを使用しているならば、すでにgnusが搭載されている可能性があります。
Alt+
Xを押して
gnus` と入力すると、gnus がシステムにインストールされているかどうかを確認することができます。これは gnus の無設定バージョンをロードします。
USENET Groups を読むための 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 '"あなたのユーザ名")
(setq user--mail-address '"yourname@email.invalid")
(setq gnus-select-method '(nntp "news.eternal-september.org"))です。
- user-full-name は Emacs でのユーザ名を設定する一般的なオプションです。* user-full-name は Emacs でのユーザ名を設定する一般的なオプションです。これは ニュース投稿を送るときに gnus が “From” ヘッダに表示する名前になり ます。
- user-mail-address も一般的なオプションです。user-full-nameと同様に、Fromヘッダにこのメールを表示させるように指示します。私の場合、無効なメールアドレスを指定しました。
- 最後の gnus-select-method は、gnus 固有のオプションで、ニュースリーダに接続するサービスやサーバを指定します。私の場合は、news.eternal-september.orgをサーバーとして、nntpサービスを選択しました。
このオプションは、どのサービスに接続するかを指定します。
リモート USENET 認証
注意点として、認証を必要とする USENET プロバイダを使用している場合、 authinfo ファイルにあなたのアカウント詳細を記述する必要があります。これは、gnus がユーザ名とパスワードだけでなく、USENET サーバの詳細も読み取るファイルです。
作成するには、Ctrl
+ X
, Ctrl
+ F
を押しながら、Emacs で /home/$USER/.authinfo
とタイプしてください。このコマンドはホームディレクトリに.authinfoファイルを作成し、それをバッファで開きます。
machine news.domain.name login yourusername force yes password yourpasswordgoeshere
- machine 変数は、別のマシンまたはサーバーに接続していることを示します。
- domain nameフィールドは、接続するマシンのアドレスであることをgnusに伝えます。
- ログイン**フィールドには、あなたのUSENETアカウントのユーザ名を入れます。
- **“force yes “**オプションは、サーバーが要求していない場合でも、gnusに認証させるように指示します。
- 最後に、password という変数に、あなたの USENET アカウントのパスワードを入れます。
ローカルの USENET サーバを使う
さらに、gnus はローカルのスプールファイルからソースを取得することもできま す。これは、ニュースグループを自動的にローカルマシンにダウンロードする サービスを持っている場合に便利です。
これを行うには、“gnus-select-method” 関数の nntp 設定を変更する必要があります。(setq gnus-select-method '(nnspool ""))
しかし、LeafnodeをローカルのUSENETサーバとして使用する場合、NNTPサーバとして設定する必要があります。これは、Leafnodeが通常の”/var/spool/“ディレクトリではなく、USENETサーバーのように動作するためです。
同じマシンで動作しているLeafnodeサーバを利用するには、次のようにタイプします。(setq gnus-select-method '(nntp "localhost"))
これで、Alt
+ x
を押して gnus を起動し、コマンドバッファに gnus
と入力します。これで gnus がロードされ、リモートの USENET サーバーで利用可能なすべてのグループが取得されます。
基本的な使用法
gnus がロードされると、空白の画面が表示されます。これはデフォルトで、gnus が購読を中止しているニュースグループと既読のニュース グループをすべて隠しているからです。
USENET サーバーで利用できるすべてのニュースグループのリストは Shift
+ 6
を押すことで見ることができます。これで、gnusのServer画面が表示されます。私の場合、これでEternal Septemberから利用可能なすべてのニュースグループが表示されました。
USENETグループの購読
ここから U
を押すと、特定のニュースグループを購読したり、購読をやめたりすることができます。これにより、gnus を最初に起動したときに、そのグループがランディングスクリーンに表示されます。
バッファの移動
そこから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” バッファが開始され、gnus は元の投稿をすでに引用したメッセージエディタを表示します。
新しいメッセージを投稿するのと同様に、Ctrl
+ C
を2回押すと、その投稿のフォローアップを送信することができます。
スコアファイルによるフィルタリング
Gnus には、scorefiles を使った強力かつシンプルなフィルタリングシステムもあります。これは、特定のパターンや基準にヒットしたときに投稿が自動的に「kill」される通常のkillfileとは異なるものです。
スコアファイルでは、ユーザーが特定の投稿の内部スコアを段階的に減らしたり増やしたりすることができ、それによってどの投稿を優先し、どの投稿をリモートサーバーから隠したり引き出さなかったりするかをgnusに伝えます。フィルタリングの種類
さらに、gnusは豊富な機能を持つフィルタリングシステムも備えています。さらに、gnusには豊富な機能を持つフィルタリングシステムがあります。これは、ユーザーが特定のフィルタのさまざまな部分を制御し、微調整することを可能にします。
例えば、ある投稿のスコアを下げたい場合。その記事をハイライトして L
を押すだけでいいんです。そうすると、コマンドバッファに小さなメニューが表示され、どのプロパティを基準にしてスコアを下げたいかを聞いてきます。
- A は、作者の名前に対してスコアをつけます。
- S は、件名テキストに対するスコアです。
- L** は行数に対してスコアリングします。
- B** は本文に対するスコアです。
私の場合、この投稿の作者を基準に点数を付けたいので、A
を押しました。
フィルターにマッチするメソッド
ここから、gnusはこのスコアで実装したい文字列マッチングの種類を尋ねてきます。完全一致、部分一致、ファジー、正規表現から選ぶことができます。
- Exact は文字列全体を使用してテキストをマッチングします。
- Exact は文字列全体を使用してテキストをマッチングします。 Substring は文字列の一部を使用してテキストをマッチングします。これは、投稿がヒットするためにテキスト全体をマッチさせる必要がないことを意味します。 Fuzzy は、ニュースグループで利用可能な以前の投稿に基づいた予測モデルを使用します。これは、シンボルや数字など、テキストを不明瞭にして部分文字列マッチングを 回避しようとするクリエイティブな投稿者に特に有用です。
- Regexp は、より伝統的な正規表現を使ってテキストをフィルタリングします。
私の場合、substringを選択したので、S
を押しました。
フィルタの持続時間
最後に、gnus はこのスコアを一時的なものにするか、恒久的なものにするか、あるいは即時的なものにするかを尋ねます。
- Temporary は、スコアが設定された日付で失効することを意味します。これは、特定の投稿やポスターのスコアを一定期間だけ下げたり上げたりしたい場合に便利です。 永久 は、スコアが期限切れにならないことを意味します。これは、グループに割り込んでくるスパマーをフィルタリングするのに便利です。 Immediate は、gnus が scorefile に追加することなく、現在のバッファにスコア を適用することを意味します。これは、今すぐ投稿をフィルタリングしたいが、持続的にスコアをつけたくない場合に有効です。
私の場合、このフィルタを永続させたかったので、P
を押しました。
よくある質問
1. メッセージを書きましたが、もう送信したくありません。どうすれば投稿やフォローを取り消すことができますか?
不明ですが、現在書いている投稿をキャンセルすることができるかもしれません。そのためには、Ctrl
+ C
、Ctrl
+ D
を押してください。
2. 2. gnus に複数の USENET サーバを追加することは可能ですか?
はい! init.elファイルに “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
を押すと、そのトピックのスレッド全体が再構築されます。