現在のGNU Emacsロゴ | |
GNOME 3上で動作する GNU Emacs 26.2 | |
| 原作者 | リチャード・ストールマン |
|---|---|
| 開発者 | GNU プロジェクト |
| 初回リリース | 1985年3月20日 |
| 安定版リリース | 29.4 [1]
/ 2024年6月22日 |
| プレビューリリース | 30.0.93 [2]
/ 2024年12月19日 |
| リポジトリ |
|
| 書かれた | Emacs Lisp、C [3] |
| オペレーティング·システム | Unix系(GNU、Linux、macOS、BSD、Solaris)、Windows、MS-DOS [4] |
| プラットフォーム | クロスプラットフォーム |
| 利用可能 | 英語 |
| タイプ | テキストエディタ |
| ライセンス | GPL-3.0以降 |
| Webサイト | このサイトは、 |
GNU Emacsはテキストエディタとフリーソフトウェアツールのスイートです。その開発は1984年にGNUプロジェクトの創設者リチャード・ストールマンによって開始され、[5] Unixオペレーティングシステム用に開発されたEmacsエディタに基づいています。GNU EmacsはGNUプロジェクトの中心的なコンポーネントであり、フリーソフトウェア運動の旗艦プロジェクトです。[6] [7]
このプログラムのキャッチフレーズは「拡張可能な自己文書化テキストエディタ」である。[8] GNU Emacsのほとんどの機能は、ユーザーがアクセスできるEmacs Lispで実装されており、[9]ユーザーによる直接の拡張やコミュニティ提供のパッケージによる高度な拡張が可能となっている。その組み込み機能には、ファイルブラウザとエディタ(Dired)、高度な電卓(Calc)、電子メールクライアントとニュースリーダー(Gnus)、言語サーバプロトコル統合、[10]および生産性システムOrg-modeなどがある。大規模なユーザーコミュニティが、 GitインターフェースMagit、VimエミュレーションレイヤーEvil、いくつかの検索フレームワーク、ウィンドウマネージャEXWM、[11]および幅広いプログラミング言語で作業するためのツールなどの拡張機能を提供してきた。
歴史

オリジナルのEMACSは、1976 年にDavid A. MoonとGuy L. Steele Jr.によってTECOエディタ用のマクロのセットとして書かれ、1984 年に Richard Stallman が GNU Emacs の作業を開始し、プロプライエタリなGosling Emacsに代わるフリーソフトウェアのソフトウェアを作成しました。GNU Emacs は当初 Gosling Emacs をベースにしていましたが、Stallman がMocklispインタープリタを真の Lisp インタープリタに置き換えたため、ほぼすべてのコードを書き直す必要がありました。これが、当時誕生したばかりの GNU プロジェクトによってリリースされた最初のプログラムとなりました。GNU Emacs は C で書かれており、同じく C で実装されたEmacs Lisp を拡張言語として提供しています。最初の公開リリースであるバージョン 13 は、1985 年 3 月 20 日に作成されました。GNU Emacs の最初の広く配布されたバージョンは、1985 年後半にリリースされたバージョン 15.34 でした。GNU Emacs の初期のバージョンは「1.xx」と番号が付けられ、最初の数字は C コアのバージョンを示していました。メジャー番号は変更されないと考えられたため、バージョン 1.12 以降は「1」が削除され、メジャー バージョンは「1」から「13」にスキップされました。ユーザー サイトによる変更を表すために、新しい 3 番目のバージョン番号が追加されました。[12]現在の番号付けスキームでは、2 つのコンポーネントを持つ番号はリリース バージョンを示し、開発バージョンは 3 つのコンポーネントを持ちます。[13]
GNU Emacsは後にUnix オペレーティングシステムに移植された。これはGosling Emacsよりも多くの機能を提供し、特に拡張言語としてフル機能のLispを提供し、すぐにGosling Emacsに取って代わり、事実上のUnix Emacsエディタとなった。Markus Hessは1986年のクラッキングでGNU Emacsの電子メールサブシステムのセキュリティ上の欠陥を悪用し、 Unixコンピュータのスーパーユーザーアクセスを獲得した。[14]
ユーザーは net.emacsニュースグループにパッチや Elisp コードを提出することが一般的でしたが、GNU Emacs 開発への参加は 1999 年まで比較的制限されており、The Cathedral and the Bazaarでは「Cathedral」開発スタイルの例として使用されていました。プロジェクトはそれ以来、公開開発メーリング リストと匿名のCVSアクセスを採用しています。開発は 2008 年まで単一の CVS トランクで行われ、現在はGit [15] DVCS を使用しています。
リチャード・ストールマンはGNU Emacsの主たるメンテナーであり続けているが、時々その役割から退いている。ステファン・モニエとチョン・イードンは2008年からメンテナンスを監督してきた。[16] 2015年9月21日、モニエはEmacs 25の機能凍結をもってメンテナーを辞任すると発表。[17]長年の貢献者であるジョン・ウィーグリーが2015年11月5日に新しいメンテナーとして発表された。[18] 2016年7月にはイーライ・ザレツキーが、2020年9月にはラース・インゲブリクセンがウィーグリーに加わった。 [ 22 ]
ライセンス
GNU 一般公衆利用許諾書(GPL)の条項では、C および Emacs Lisp コンポーネントの両方を含む Emacs ソース コードは、自由に調査、変更、再配布できることが規定されています。
GNU Emacs ドキュメントの古いバージョンは、変更されたコピーには特定のテキストを含めることを要求する特別なライセンスの下で公開されました。たとえば、GNU Emacs ユーザー マニュアルでは、GNU Emacs の入手方法とリチャード ストールマンのエッセイ「GNU 宣言」が含まれていました。フォークが発生したときに古い GNU Emacs マニュアルから継承された XEmacs マニュアルには、同じライセンスがあります。ドキュメントの新しいバージョンでは、同じドキュメントを含めることを要求する「不変セクション」と、マニュアルがGNU マニュアルであることを宣言するGNU フリー ドキュメンテーション ライセンスを使用しています。[引用が必要]
GNU Emacs では、他の多くの GNU パッケージと同様に、著作権者が適切な免責事項を履行するか、著作権をフリーソフトウェア財団(FSF) に譲渡した場合にのみ、重要なコード貢献を受け入れるという方針が維持されています。10 行未満のコード貢献は免除されます。この方針は、コピーレフトライセンスが侵害された場合に、FSF が法廷でソフトウェアを弁護できるようにするために制定されています。
2011年、GNU EmacsがGPLの意図する精神に反して、2年間にわたってソースコードのないバイナリを誤ってリリースしていたことが判明しました。[23] [24] [25]リチャード・ストールマンはこの事件を「非常に大きな間違い」と表現しましたが、[26]すぐに修正されました。FSFは、これらのバイナリを配布することで無意識のうちにGPLに違反した下流の再配布者を訴えませんでした。
GNU Emacsの使用



コマンド
通常の編集モードでは、GNU Emacs は一般的なテキスト エディターのように動作し、ユーザーはキーボードでテキストを入力し、矢印キーで編集ポイントを移動できます。エスケープ キーシーケンス、または通常のキーと一緒にコントロール キーとメタ キー、Alt キー、またはスーパー キーを押すと、Emacs Lisp 環境から関数を呼び出す変更されたキーストロークsave-bufferが生成されます。やなどのコマンドは、save-buffers-kill-emacs複数の変更されたキーストロークを組み合わせます。
GNU Emacsのコマンドの中には、スペルチェック用のispellやプログラムのコンパイル用のGNU Compiler Collection (GCC)など、外部プログラムを呼び出すことで動作するものもあります。また、Emacsは「下位プロセス」、つまりエディタと対話する長時間動作する子プロセスもサポートしています。これは、Unixシェルを下位プロセスとして実行するシェルモードや、さまざまなプログラミング言語の読み取り-評価-印刷ループ(REPL)モードを実装するために使用されます。Emacsの外部プロセスのサポートにより、 InterlispやSmalltalkのような対話型プログラミングに適しています。[27]
広く使用されているIBM Common User Accessキーボード ショートカット レイアウトを好むユーザーは、cua-mode を使用できます。これは、もともとサードパーティのアドオンでしたが、バージョン 22 以降、GNU Emacs に含まれているパッケージです。
ミニバッファ
Emacs は、通常は最下行にある「ミニバッファ」を使用してメッセージを表示し、情報を要求します。これらの機能は、GUIエディタのダイアログ ボックスでよく実行されます。ミニバッファには、検索の対象となるテキストや、読み取りまたは保存するファイルの名前などの情報が保持されます。該当する場合は、タブ キーとスペース キーを使用して コマンド ラインの補完を利用できます。
ファイルの管理と表示
Emacsはテキストをバッファと呼ばれるデータ構造に保存します。バッファは画面に表示されるかどうかは関係なく、バッファのすべての機能はEmacs Lispプログラムとユーザーインターフェースの両方からアクセスできます。[28]ユーザーは新しいバッファを作成したり、不要なバッファを削除したりできます。また、使用可能なメモリによってのみ制限される複数のバッファが同時に存在できます。[29] Emacsは、終了時に開いているバッファのリストを保存し、再起動時にこのリストを再度開くように設定できます。[30]
一部のバッファにはテキストファイルから読み込まれたテキストが含まれており、ユーザーはこれを編集して永続的なストレージに保存することができます。これらのバッファは「ビジティング」ファイルと呼ばれます。バッファは、Emacs コマンドの出力、diredディレクトリ リスト、「ヘルプ」ライブラリによって表示されるドキュメント文字列、他のエディタではダイアログ ボックスに表示される通知メッセージなど、他のデータを表示するのにも役立ちます。これらの通知の一部はミニバッファに簡単に表示され、GNU Emacs は、このタイプの最新の通知の履歴を保持する*Messages*バッファを提供します。ミニバッファが Emacs からの出力に使用される場合、それは「エコー領域」と呼ばれます。 [31]長い通知は、独自のバッファに表示されます。ミニバッファに表示されるメッセージの最大長は、もちろん構成可能です。
バッファは、シェルやREPLなどの外部プロセスの入力および出力領域としても機能します。Emacs が独自に作成するバッファは、通常、ユーザー バッファと区別するために、両端にアスタリスクが付いた名前が付けられます。このタイプのバッファには、開いているバッファのリスト自体が表示されます。
Emacs のほとんどのキーシーケンスは、どのバッファでも機能します。たとえば、標準の Ctrl-sisearch機能を使用して dired バッファでファイル名を検索できます。また、ファイルリストは他のバッファと同様にテキストファイルに保存できます。dired バッファは書き込み可能モードに切り替えることができ、ファイル名と属性をテキストで編集できます。バッファを保存すると、変更がファイルシステムに書き込まれます。これにより、Emacs の検索と置換機能を使用して複数のファイルの名前を変更できます。この機能が装備されている場合、Emacs はバッファに画像ファイルを表示します。Emacs はバイナリセーフで 8 ビットクリーンです。[32]
Emacs では、編集領域を「ウィンドウ」と呼ばれる重なり合わない個別のセクションに分割できます。この機能は、グラフィカル ユーザー インターフェイスが一般的に使用されるようになる前の 1975 年から利用できました。Emacs の用語では、「ウィンドウ」は他のシステムで「フレーム」または「ペイン」と呼ばれるものに似ています。つまり、プログラムの表示の長方形の部分で、個別に更新および操作できます。各 Emacs ウィンドウには、 「モード ライン」と呼ばれるステータス バーがあり、デフォルトでウィンドウの下端に表示されます。Emacs ウィンドウは、テキスト ターミナル モードとグラフィカル モードの両方で使用でき、複数のバッファー、またはバッファーの複数の部分を一度に表示できます。一般的な用途としては、現在のディレクトリにあるファイルの内容とともにdiredバッファを表示する(dired で強調表示されたファイルにファイル バッファを追従させる特別なモードがあります)、プログラムのソース コードを 1 つのウィンドウに表示し、別のウィンドウにプログラムのコンパイル結果を含むシェルバッファを表示する、プログラムを実行しているシェル バッファとともにデバッガを実行する、man ページやその他のドキュメント ( Emacs の組み込み Web ブラウザのいずれかを使用してWorld Wide Web経由でロードされる可能性があります) を表示しながらコードを操作する、または単に複数のファイルを一度に表示して編集する (C ベースの言語のヘッダーとその実装ファイルなど) などがあります。さらに、ウィンドウを連結してバッファの重なり合わない部分を表示するマイナー モードである follow-mode があります。follow -mode を使用すると、1 つのファイルを複数の並列ウィンドウに表示でき、スクロールすると適切に更新されます。さらに、Emacs はバッファを「狭めて」ファイルの一部だけを表示する機能をサポートしており、バッファの上部/下部のナビゲーション機能と、選択された範囲のみを反映したバッファ サイズの計算が行われます。
Emacs のウィンドウはタイル状になっており、他のウィンドウの「上」や「下」に表示することはできません。Emacs は複数の「フレーム」を起動することができ、それらはグラフィカル環境で個別のウィンドウとして表示されます。テキスト端末では、複数のフレームが端末全体を埋め尽くすように積み重ねられて表示され、標準の Emacs コマンドを使用して切り替えることができます。[33]
主要モード
GNU Emacs は、さまざまな種類のテキストを表示または編集することができ、「メジャー モード」と呼ばれるアドオン モードに入ることで動作を調整します。メジャー モードには、通常のテキスト ファイル、多くのマークアップ言語やプログラミング言語のソース コードの編集、 Web ページ、ディレクトリ リスト、その他のシステム情報の表示など、さまざまな目的があります。各メジャー モードには、エディターを拡張して特定の種類のテキストに対してより便利に動作させる Emacs Lisp プログラムが含まれています。メジャー モードは通常、次の共通機能の一部またはすべてを提供します。
- 構文の強調表示(「フォントロック」):「フェイス」と呼ばれるフォントと色の組み合わせ[34]で、キーワードやコメントなどの文書要素を区別します。
- ファイル内の一貫した書式を維持するための自動インデント。
- スペース、改行、括弧など、ドキュメントの構造に必要な要素を自動的に挿入します。
- プログラミング ファイルの編集中に関数の先頭または末尾にジャンプするコマンドや、XMLなどのマークアップ言語の操作中にドキュメントを検証したり閉じタグを挿入したりするコマンドなどの特殊な編集コマンド。
マイナーモード
「マイナーモード」を使用すると、さらにカスタマイズできます。GNU Emacs 編集バッファでは、一度に 1 つのメジャーモードしか使用できませんが、複数のマイナーモードを同時に操作できます。これらのマイナーモードは、C プログラミング言語のメジャーモードが一般的なインデントスタイルごとに個別のマイナーモードを定義するのと同じように、ドキュメントに直接作用することも、編集環境を変更することもできます。後者の例には、ウィンドウ構成の変更を元に戻す機能を追加するモードや、オンザフライ構文チェックを実行するモードなどがあります。また、複数のプログラミング言語が埋め込まれたドキュメントを編集するときに便利なように、1 つのファイルで複数のメジャーモードを使用できるマイナーモードもあります。
「バッチモード」
GNU Emacs は、テキスト エディターのユーザー インターフェイスを表示せずに、Emacs Lisp言語のインタープリターとして使用する機能をサポートしています。バッチ モードでは、ユーザー設定は読み込まれず、ターミナル割り込み文字 Cc と Cz は、Emacs キーバインディングを呼び出す代わりに、プログラムを終了したり実行を一時停止したりする通常の効果を持ちます。GNU Emacs には、読み込んで実行するファイルを指定するコマンド ライン オプションがあります。または、コマンド ラインから Emacs Lisp 関数を渡すことができます。Emacs は起動し、渡されたファイルまたは関数を実行し、結果を出力してから終了します。 [35]シェバンラインを使用#!/usr/bin/emacs --scriptすると、Emacs Lisp でスタンドアロン スクリプトを作成できます。[36]
マニュアル

リチャード・ストールマンが書いたGNU EmacsマニュアルはGNU Emacsにバンドルされており、組み込みの情報ブラウザで閲覧できる。[37]さらに、ビル・ルイス、リチャード・ストールマン、ダン・ラリベルテによるEmacs Lispリファレンスマニュアルとロバート・シャッセルによるEmacs Lispプログラミング入門の2つのマニュアルも同梱されている。これら3つのマニュアルは、フリーソフトウェア財団によって書籍としても出版されている。
国際化
GNU Emacs は、多くのアルファベット、スクリプト、書記体系、文化的慣習をサポートしており、ispellなどの外部プログラムを呼び出すことで、多くの言語のスペルチェックを提供します。バージョン 24 では、アラビア語、ペルシア語、ヘブライ語などの言語の双方向テキストと、左から右および右から左の記述方向のサポートが追加されました。
UTF-8を含む多くの文字エンコーディングシステムがサポートされています。GNU Emacs はバージョン 23 以降、エンコーディングに UTF-8 を使用していますが、それ以前のバージョンでは内部的に独自のエンコーディングを使用し、読み込みおよび保存時に変換を実行していました。XEmacs が使用する内部エンコーディングは GNU Emacs のものと似ていますが、細部が異なります。
GNU Emacs のユーザー インターフェイスは英語で作成されており、初心者向けのチュートリアルを除いて、他の言語に翻訳されていません。
Emacspeakと呼ばれるサブシステムにより、視覚障害者や盲目のユーザーは音声フィードバックを通じてエディターを制御できます。
拡張性

GNU Emacsの動作は、新しいコマンド、新しいバッファモード、新しいキーマップを定義したり、コマンドラインオプションを追加したりするEmacs Lispプログラムを組み込むことで、ほぼ無制限に変更および拡張できます。 [38]ユーザー向けの機能を提供する多くの拡張機能は、メジャーモードを定義します(新しいファイルタイプ用またはテキスト編集以外のユーザーインターフェイスを構築するため)。他の拡張機能は、コマンドまたはマイナーモードのみを定義したり、別の拡張機能を強化する機能を提供したりします。
バージョン24以降のGNU Emacsには、コマンドでアクセスできる組み込みパッケージマネージャが含まれており、list-packagesユーザーはこれを使用してパッケージを検索してインストールできます。歴史的には、パッケージは手動でダウンロードされ、多くの場合、Usenet ニュースグループgnu.emacs.sourcesを通じて配布されていました。時間の経過とともに、多くの人気のあるパッケージがデフォルトでEmacsに含まれるようになりました。たとえば、バージョン21では、 Org-mode、Calc、TRAMP、その他多くのパッケージがバンドルされ始めました。 [39]


注目すべきパッケージは次のとおりです。
- AUCTeX 、 TeXおよびLaTeX文書を編集および処理するためのツール
- ファイルマネージャDired
- Dissociated press、Racterのようなテキストジェネレータ
- ダネット、テキストアドベンチャー
- Emacs Web Wowser (eww) は、Web ブラウザです。
- RやSASなどの統計言語を編集するためのEmacs Speaks Statistics(ESS)モード
- ERC、IRCクライアント[40]
- Eshell は、Emacs Lisp で書かれたコマンドラインシェルです。これにより、Emacs 内からも使用できるbashやPowerShellなどの標準シェルよりも、Emacs 環境とのより密接な統合が可能になります。たとえば、Eshell では、Elisp 関数をシェル コマンドとして使用でき、 Unix コマンドからの出力をEmacs バッファーにリダイレクトできます。
- Exwmは、X11アプリケーションをEmacsウィンドウで実行できるようにするXウィンドウマネージャーです。 [11]
- Gnus は、フル機能のニュースクライアント(ニュースリーダー)と電子メールクライアントであり、ザウィンスキーの法則の初期の証拠です。
- Magit、バージョン管理システムGitを操作するためのもの[41] [42]
- MULtilingual Enhancement to Emacs ( MULE ) は、Unicode に似た方法で複数の言語のテキストを編集できるようにします。
- メモの保存、さまざまな種類のリストの維持、プロジェクトの計画と測定、さまざまな形式 ( PDF、HTML、OpenDocument形式など)でのドキュメントの作成に使用するOrg-mode。Org -mode を使用する静的サイト ジェネレーターや、拡張機能 Babel があり、これを使用して文芸プログラミングを行うことができます。
- Rcirc、IRCクライアント[40]
- Superior Lisp Interaction Mode for Emacs ( SLIME ) は、GNU Emacs をCommon Lispの開発環境に拡張します。SLIME (Emacs Lisp で記述) を使用すると、GNU Emacs エディタは特別な通信プロトコルを介して Common Lisp システム (SWANK バックエンドを使用) と通信し、読み取り、評価、印刷ループ、データ インスペクタ、デバッガなどのツールを提供します。
- Texinfo (Info)、オンラインヘルプブラウザ
パフォーマンス
GNU Emacs は、その初期の歴史において、 Lispベースのコードの読み込みと解釈にパフォーマンスのオーバーヘッドが発生するため、競合するテキストエディタよりも明らかに遅く動作することが多かった。現代のコンピュータは GNU Emacs を簡単に実行できるほど強力だが、19.29 (1995 年リリース) より前のバージョンでは 8 MB を超えるファイルを編集できなかった。ファイルサイズの制限はその後のバージョンで引き上げられ、 GNU Emacs 23.2 以降の32 ビットバージョンでは最大 512 MB のファイルを編集できる。64 ビットマシンでコンパイルされた Emacs は、はるかに大きなバッファを処理できる。[43]
GNU Emacsは主にEmacs Lispで書かれていますが、パフォーマンスを向上させるためにネイティブにコンパイルされたCコードを多用しています。独自のCコードに加えて、XMLの解析にはlibxml2などの外部ライブラリを使用します。ユーザーがインストールしたパッケージは動的モジュールを読み込むことができます。[44]
バージョン28.1以降、EmacsはEmacs Lispファイルをバイトコンパイルするlibgccjitのではなく、を介してネイティブにコンパイルできるようになり、パフォーマンスが大幅に向上しました。[45] [46]
プラットフォーム
GNU Emacsは、DOS、Windows、[47] [48] [49]およびLinux、さまざまなBSD、Solaris、AIX、HP-UX、macOSなどのほとんどのUnix系オペレーティングシステムを含む、さまざまなオペレーティングシステムで動作します。[50] [51] [52]多くのUnix系システムには、デフォルトでEmacsが含まれています。[53] 2023年にAndroid用の公式ポートがリリースされました。[54]バージョン23.1では、廃止されたと見なされた一部のプラットフォームのサポートが削除されました。[4]
GNU Emacs は、テキスト端末とグラフィカル ユーザー インターフェイス(GUI) 環境の両方で動作します。Unix 系オペレーティング システムでは、GNU Emacs はX Window System を使用して GUI を生成することができます。これには、 Athena ウィジェットを直接使用するか、 Motif、LessTif、GTK+などの「ウィジェット ツールキット」を使用します。GNU Emacs は、macOS および Windows にネイティブのグラフィック システムを使用して、各プラットフォームの外観と操作性により近いメニューバー、ツールバー、スクロール バー、コンテキスト メニューを提供することもできます。
フォーク
エマック

Lucid Emacsは、GNU Emacs 19の初期バージョンをベースに、1991年にLucid Inc.のJamie Zawinskiらによって開発が始まった。フリーソフトウェア開発における最もよく知られたフォークの1つは、2つのEmacsバージョンのコードベースが分岐し、別々の開発チームがそれらを1つのプログラムに統合する努力をやめたときに発生した。[55] Lucidが破産申請した後、Lucid EmacsはXEmacsに改名された。[56] XEmacsの開発は減速し、最新の安定バージョン21.4.22が2009年1月にリリースされた一方で、GNU Emacsは以前はXEmacsのみだった多くの機能を実装した。これにより、一部のユーザーはXEmacsの死を宣言した。[57]
GNU Emacsの他のフォーク
XEmacs ほど知られていない他のフォークとしては、以下のものがあります。
- Meadow – Microsoft Windows用の日本語版[58]
- SXEmacs – Steve YoungsによるXEmacsのフォーク[59]
- Aquamacs – Apple Macintoshのユーザーインターフェースとの統合に重点を置いたバージョン
- Remacs – GNU EmacsをRustプログラミング言語に段階的に移植したもので、2023年現在では不完全でメンテナンスも行われていない。[60]
リリース履歴
各 Emacs リリースの変更は、Emacs とともに配布される NEWS ファイルにリストされています。[61]以前のリリースへのダウングレードによってもたらされた変更は、「Antinews」ファイルにリストされており、多くの場合、なぜこれが望ましいのかについての皮肉なコメントが添えられています。[62]
参考文献
- ^ Stefan Kangas (2024年6月22日). 「Emacs 29.4がリリースされました」。2024年6月22日閲覧。
- ^ Andrea Corallo (2024年12月19日). 「Emacs 30.0.93のプレテストが利用可能」 。 2024年12月27日閲覧。
- ^ 「GNU Emacs」、分析概要、Open Hub
- ^ ab "Emacs マシン リスト"。
- ^ リチャード・ストールマン。「GNUプロジェクト」。2024年9月3日時点のオリジナルよりアーカイブ。
- ^ Fusco, John (2007-03-06). Linux プログラマーのツールボックス. Pearson Education. ISBN 9780132703048。
- ^ Cameron, Debra; Elliott, James; Loy, Marc ; Raymond, Eric; Rosenblatt, Bill (2005)。『GNU Emacs を学ぶ』。O'Reilly Media, Inc.。ISBN 9780596006488。
- ^ 「Debian – wheezy の Emacs パッケージの詳細」。
- ^ 「GNU Emacs Lispリファレンスマニュアル」www.gnu.org . 2024年9月15日閲覧。
- ^ "gnu.org". www.gnu.org . 2024年9月15日閲覧。
- ^ ab Feng, Chris (2017年11月27日). 「exwm: Emacs X Window Manager」 – GitHub経由。
- ^ "NEWS.1–17"。
新しいバージョン番号体系があります。以前の最初のバージョン番号 1 は、3 レベルのバージョン番号は必要ないと思われるため、削除されました。ただし、ユーザー サイトによる変更を表すために、新しい 3 番目のバージョン番号が追加されました。この番号は、Emacs を配布するときには常に 0 になります。Emacs が別のサイトでビルドされるたびに増加します。
- ^ 「GNU Emacs FAQ」。2
つのコンポーネントを持つバージョン番号 (例: '22.1') はリリース バージョンを示します。3 つのコンポーネントを持つバージョン番号は開発バージョンを示します (例: '23.0.50' は最終的に '23.1' になります)。
- ^ ストール、クリフォード(1988)。「狡猾なハッカーを追跡する」。Communications of the ACM。31 ( 5): 484– 497。doi : 10.1145 /42411.42412。S2CID 6956966 。
- ^ 「Re: GNU EMACS」. GNU . 2014年11月16日閲覧。]
- ^ 「Re: 新しい Emacs メンテナーまたはチームを探しています」。gnu.org メーリング リスト。2008年 2 月 23 日閲覧。; 「GNU Emacs の引き渡し、その将来、そして命名法の重要性について語る Stallman」も参照してください。
- ^ 「機能凍結」. lists.gnu.org .
- ^ 「リチャード・ストールマンが退任し、Emacs に新しいメンテナーが就任」The Register。
- ^ 「新しい共同メンテナーの Eli Zaretskii さんを歓迎します」。lists.gnu.org。
- ^ フリーソフトウェア賞受賞者発表: Eli Zaretskii、Tad (SkewedZeppelin)、GNU Jami、フリーソフトウェア財団、2023-03-18、2023-03-29取得
- ^ ザレツキーは1990年代からGNU Emacsに貢献しており、FSFから2022年のフリーソフトウェア賞を受賞した。[20]
- ^ 「Lars Ingebrigtsen は現在、Emacs のメンテナーの 1 人です」。lists.gnu.org。
- ^ Brockmeier, Joe (2011 年 7 月 29 日)。「Say what? GNU Emacs は GPL に違反している」。Network World。2016年 1 月 19 日閲覧。
- ^ ライセンス取り消し: GPL の第 4 条と Best Buy の教訓を Google の Android に適用する 2016 年 1 月 27 日にWayback Machineにアーカイブされました(Edward J. Naughton (2011 年 8 月 8 日))
- ^ 「Emacs は 2009 年から GPL に違反している – Slashdot」。developers.slashdot.org。2011 年 7 月 29 日。2022年 1 月 10 日閲覧。
- ^ 「Re: ソースのないコンパイル済みファイル????」. lists.gnu.org . 2022年1月10日閲覧。
- ^ ヘイキ、ハルメ;ハイネン、ユハ (1988)。 「動的に拡張可能なプログラミング環境としての GNU Emacs」。ソフトウェア: 実践と経験。18 (10): 999–1009。土井:10.1002/spe.4380181006。S2CID 8629911。
- ^ Spinellis, Diomidis; Gousios, Georgios (2009-01-15)。美しいアーキテクチャ: 一流の思想家が明かすソフトウェア デザインの隠れた美しさ。「O'Reilly Media, Inc.」。ISBN 9780596554392。
- ^ Heiberger, Richard M.; Holland, Burt (2015-12-23). 統計分析とデータ表示: 例題付き中級コース R. Springer. ISBN 9781493921225。
- ^ 「Emacsセッションの保存」。
- ^ 「エコーエリア」。
- ^ 「GNU Emacs入門チュートリアル」。
- ^ 「フレーム – GNU Emacs マニュアル」。
ただし、テキスト端末に複数の「フレーム」を作成することは可能です。このようなフレームは一度に 1 つずつ表示され、端末画面全体を埋め尽くします。
- ^ Cameron, Debra; Rosenblatt, Bill; Raymond, Eric S. (1996). Learning GNU Emacs. In a Nutshell Series (第 2 版). O'Reilly Media, Inc. p. 533. ISBN
978-1-56592-152-8. 2010-11-02取得。
フェイスはフォントと色の組み合わせです。
- ^ 「初期オプション」。
バッチモードでは、Emacs は編集中のテキストを表示せず、Cz や Cc などの標準端末割り込み文字は通常どおり機能します。通常エコー領域にメッセージを出力する Emacs 関数は、代わりに標準出力ストリーム (stdout) または標準エラー ストリーム (stderr) に出力します。(正確には、prin1、princ、print などの関数は stdout に出力し、message や error は stderr に出力します。)通常ミニバッファからキーボード入力を読み取る関数は、代わりに端末の標準入力ストリーム (stdin) から入力を取得します。
- ^ 「スクリプト言語としてのEmacs Lisp」leancrew.com 。 2023年6月27日閲覧。
- ^ Stallman, Richard; et al. (1987). GNU Emacs マニュアル(PDF) (19 版). ボストン、マサチューセッツ州、米国: フリーソフトウェア財団。Bibcode : 1987gem..book .....S 。 2022年1月8日閲覧。
- ^ 「コマンドライン引数」。
- ^ 「Emacs 22.1 リリース」。lists.gnu.org 。 2023年7月5日閲覧。
- ^ ab Stallman, Richard (2007-06-03). 「Emacs 22.1 リリース」. info-gnu-emacs (メーリング リスト) . 2011-07-31に取得。
- ^ Jonas Bernoulli. 「It's Magit! A Git Porcelain inside Emacs」2017年2月8日閲覧。
- ^ Petersen, Mickey. 「Git 用の Emacs モードである Magit の紹介」。Mastering Emacs。2017年2 月 8 日閲覧。
- ^ 「6.1 Emacs では 8 メガバイトを超えるファイルで問題が発生しますか?」
- ^ 「Emacs Dynamic Modules」。GNU Emacs Lispリファレンスマニュアル。 2022年4月15日閲覧。
- ^ 「Lisp からネイティブコードへのコンパイル」。GNU Emacs Lisp リファレンスマニュアル。2022年 4 月 15 日閲覧。
- ^ コラーロ、アンドレア;ナッシ、ルカ。マンカ、ニコラ (2020-04-06)。 「GNU Emacs をネイティブ コードに導入する」。European Lisp シンポジウム 2020。arXiv : 2004.02504。土井:10.5281/zenodo.3736362。
- ^ B, Ramprasad (2005-06-24). 「GNU Emacs FAQ For Windows 95/98/ME/NT/XP and 2000」。2006-09-27閲覧。
- ^ Borgman, Lennart (2006). 「EmacsW32 ホームページ」。2007 年 3 月 6 日時点のオリジナルよりアーカイブ。2006 年 9 月 27 日閲覧。
- ^ 「GNU Emacs on Windows」。Franz Inc. 2006年。 2006年9月27日閲覧。
- ^ 「Emacs For Mac OS X」。2022年2月9日閲覧。
- ^ 「Carbon Emacs パッケージ」 。2012年 6 月 10 日閲覧。
- ^ 「Aquamacs は、Mac OS X 用の使いやすい Mac スタイルの Emacs です」 。2006年 9 月 27 日閲覧。
- ^ "gnu.org". www.gnu.org . 2023年7月5日閲覧。
- ^ 「Emacs | F-Droid – 無料でオープンソースの Android アプリ リポジトリ」。f-droid.org 。2023 年 6 月 26 日閲覧。
- ^ Stephen J.、Turnbull。「XEmacs vs. GNU Emacs」。2012年10月2日閲覧。
- ^ "xemacs(1): Emacs: Next Generation – Linux man page". linux.die.net . 2023年6月26日閲覧。
- ^ 「XEmacs は死んだ。XEmacs 万歳!」
- ^ 「FrontPage – Meadow Wiki」。2012年2月16日。2012年2月16日時点のオリジナルよりアーカイブ。
- ^ 「SXEmacs ウェブサイト」。Sxemacs.org。2009 年 10 月 11 日。2009 年 11 月 8 日閲覧。
- ^ 「Remacs」。Remacs github リポジトリ。2017年2 月 22 日閲覧。
- ^ "NEWS.24.5".
GNU Emacs NEWS – ユーザーが目にする変更の履歴。
- ^ 「Antinews」。
過去を振り返るユーザーのために、Emacs バージョン 24.5 へのダウングレードに関する情報を紹介します。Emacs 25.2 の多くの機能がなくなったことで得られる、よりシンプルな操作性を楽しんでいただければ幸いです。
- ^ 「Emacs Timeline」。www.jwz.org 。 2022年1月10日閲覧。
- ^ Kangas, Stefan (2024-06-22). 「Emacs 29.4 リリース」。2024-06-25 にオリジナルよりアーカイブ。2024-07-07に取得。Emacs
29.4 は緊急バグ修正リリースです。Emacs 29.3 以前で発見されたセキュリティ脆弱性を解決することを目的とした少数の変更を除き、新機能は含まれていません。
- ^ Kangas, Stefan (2024-06-22). 「etc/NEWS: Emacs 29.4 の更新」。GNU Savannah。2024-07-08 にオリジナルからアーカイブ。2024-07-07に取得。Emacs
29.4 は、下記のセキュリティ脆弱性を修正することを目的とした緊急バグ修正リリースです...Org モードをオンにしても、任意のシェル コマンドは実行されなくなりました。これは、セキュリティ上の理由から、悪意のあるコマンドの実行を回避するためです。
- ^ “GNU Emacs NEWS”. git.savannah.gnu.org . 2024年7月27日時点のオリジナルよりアーカイブ。2024年9月15日閲覧。
- ^ 「GNU Emacs - GNU プロジェクト」www.gnu.org . 2024 年 2 月 21 日閲覧。
- ^ 「Emacs 29.1 リリース」。
- ^ 「Emacs 29.1 の変更点」。
- ^ バツォフ、ボジダル (2023-07-30)。 「Emacs 29.1 リリース」。Emacs Redux 。2023-07-30に取得。
- ^ 「Emacs 28.2 の変更点」。
- ^ 「Emacs 27.2 の変更点」。
- ^ 「Emacs 26.1 リリース」。lists.gnu.org 。2018年 5 月 29 日閲覧。
- ^ 「Emacs 25.3 の変更点」。
- ^ 「Emacs 25.2 の変更点」。
- ^ 「Emacs 25.1 リリース」。lists.gnu.org 。2016年 9 月 17 日閲覧。
- ^ 「GNU Emacs NEWS – ユーザに見える変更の履歴」 2015-04-10 . 2015-04-11閲覧。
- ^ Petton, Nicolas (2015-04-10). 「Emacs 24.5 リリース」。2015-04-11 時点のオリジナルよりアーカイブ。2015-04-11閲覧。
- ^ Morris, Glenn (2014-10-20). 「Emacs 24.4 がリリースされました」。2014 年 10 月 22 日閲覧。
- ^ Morris, Glenn (2013-03-10). 「Emacs 24.3 リリース」。2013 年 3 月 16 日閲覧。
- ^ Yidong, Chong (2012-08-27). 「Emacs リリース候補 24.2」。2012 年 11 月 11 日閲覧。
- ^ Yidong, Chong (2012-06-01). 「Emacs リリース候補 24.1」。2012-06-01閲覧。
- ^ Yidong, Chong (2012-01-09). 「EDE のセキュリティ欠陥、新しいリリース計画」 。2012年 2 月 23 日閲覧。
- ^ 「emacs-fu: emacs 23 がリリースされました!」 Emacs-fu.blogspot.com. 2009-07-28 . 2009-11-08閲覧。
- ^ Zawodny, Jeremy (2003-12-15). 「Emacs Remote Editing with Tramp」. Linux Magazine . 2008年4月17日時点のオリジナルよりアーカイブ。 2010年2月1日閲覧。
Tramp
[...] は「Transparent Remote (file) Access, Multiple Protocol」の略です。
- ^ Free Software Foundation Inc (2007). 「Emacs News version 22.1」。2013年12月29日閲覧。
- ^ abc "NEWS.19" より.
- ^ 「Emacsタイムライン」。
- ^ 「GNU のフラッシュ」。
- ^ 「NEWS.18」.
- ^ 「NEWS.18」。
テキストを編集するために「エディター」を下位プロセスとして呼び出すメーラーなどのプログラムに、新しいエディターを作成する代わりに既存の Emacs プロセスを使用するように指示できるようになりました。
- ^ ab "NEWS.1–17"より。
- ^ 「Xemacs 内部」.
さらに読む
- ストールマン、リチャード M. (2002)。GNU Emacs マニュアル (第 15 版)。GNU プレス。ISBN 978-1-882114-85-6。
- Stallman, Richard M. (2002) 「私の Lisp 経験と GNU Emacs の開発」2007 年 2 月 1 日閲覧。
- シャッセル、ロバート J. (2004)。Emacs Lisp プログラミング入門。GNU プレス。ISBN 978-1-882114-56-62013年7月3日時点のオリジナルよりアーカイブ。
- ボブ・グリックスタイン(1997年4月)。『GNU Emacs 拡張機能の書き方』O'Reilly & Associates。ISBN 978-1-56592-261-7。
- Cameron, Debra; Elliott, James; Loy, Marc; Raymond, Eric; Rosenblatt, Bill (2004 年 12 月)。Learning GNU Emacs、第 3 版。O'Reilly & Associates。ISBN 978-0-596-00648-8。
外部リンク
- 公式サイト
- 非公式 Emacs ウィキ
- Emacs - フリーソフトウェアディレクトリ
