Emacs 機能

Emacs

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/08 16:39 UTC 版)

機能

Emacsは主にテキストエディタでありテキスト要素を操作するよう設計されているが、LaTeXGhostscriptウェブブラウザといった外部のプログラムと通信することで、ワードプロセッサのように文書を整形したり印刷することができる。Emacsは、そして段落といった異なるセマンティック要素や、関数のようなソースコードの構成要素を処理したり様々な色を付けるためのコマンドを提供する。さらにEmacsは編集コマンドのユーザー定義バッチ用にキーボードマクロも提供する。

GNU Emacsはリアルタイム表示エディタであるので、編集する度にその編集がオンスクリーンで表示される。これは現在のテキストエディタの標準的振る舞いであるが、EMACSは初期の段階でこの機能を実装していたため、viのように既存のテキストに新しい編集を挿入するために個別のコマンドを実行する必要がなかった。

viが編集のための基本的な機能のみを搭載していたのに対し、Emacsはインクリメンタルサーチ・無制限のアンドゥ・ヤンク(ペースト)用のスタック・複数のバッファ・バッファ上でシェルを実行・補完・言語ごとのモードなど、エディタとして考えられる限りの機能を詰め込んでいる。VimではEmacsと同等のことができるようになっているが、バッファの使い方はEmacsより控えめである。

一般的アーキテクチャ

文書への文字列挿入などの基本的な編集操作を含むEmacsの機能はほとんど全て、LISPの方言で書かれた関数で行える。GNU Emacsで使われるLISP方言はEmacs Lispとして知られている。Emacs Lisp層はCで書かれた基本的なサービスとプラットフォームを抽象化した概念の、安定したコアの頂点に位置している。LISP環境の変数関数は、Emacsのリコンパイルや再起動をせずとも一時的に修正できる。

Emacsは追加属性を持つテキストを含んだバッファと呼ばれるデータ構造上で動作する。全てのバッファはその固有のポイント(カーソル位置)とマーク(ポイントと併せて、選択されたリージョンを区切るためのもう1つの位置)、(適用可能な場合)バッファが訪問しているファイル名、そして変数で編集や振る舞いを制御する現在のモードのセット(正確には1つの「主モード」[要説明]と複数の「副モード」[要説明]からなる)を保存している。対話的に実行可能なEmacs Lispコードをコマンドという。コマンドはキープレスなどのイベントにバインドでき、さらに名前でアクセスすることもできる。コマンドの中にはバッファから任意のEmacs Lispコードを評価するもの(例としてはeval-regioneval-bufferなど)もある。

バッファはウィンドウ内に表示される。ウィンドウは端末画面やGUIウィンドウのタイリングされた部分である(その部分はEmacs用語でフレームと呼ばれ、複数のフレームが可能)。特に設定されていない場合、ウィンドウにはスクロールバー、行番号、一番上にあるヘッダ行(通常この行にはバッファタイトルやファイル名が表示される)、そして一番下にあるモード行(通常この行には現在のモードとバッファにおけるポイントの位置のリストが表示される)が含まれる。

同じバッファ上で複数ウィンドウを開くことができるため、例えば1つの長いテキストから異なるパートを見ることができる。さらに複数バッファで同じテキストを共有できるので、例えば言語が混在したファイルで異なる主モードを利用することができる。M-x <mode name>により必要に応じてモードを手動で変更することもできる。

ふつう最下行にあるミニバッファは、Emacsが情報を受け取る場所である。検索対象のテキストや読んだり保存したりするファイルの名前などの情報をミニバッファに入力する。一部の入力ではタブキーを用いて入力を補完することができる。ミニバッファは通常1行しかないが、ここでも通常のバッファと同じ移動・編集コマンドを使うことができる。

カスタマイズ

  • キーストロークをマクロに記録し、複雑な反復タスクを自動で再現できる。これは使用後に廃棄される各マクロによりアドホックベースに行われることが多い。ただしマクロを保存したり、後で呼び出すこともできる。
  • 起動時にEmacsは~/.emacsと名付けられたEmacs Lispスクリプト(近年のバージョンでは~/.emacs.el~/.emacs.d/init.elでもよい[47]。Emacsは最初に見つけたスクリプトを実行し、それ以外のスクリプトは無視する)を実行する。個人的なカスタマイズファイルは任意の長さや組み合わせでよいが、通常は以下のものが含まれる:
    • Emacsの振る舞いをカスタマイズするための、グローバル変数や関数呼び出しの設定。例としては(set-default-coding-systems 'utf-8)など。
    • 標準的なキーバインディングを上書きしたり、ユーザーにとって便利なのにデフォルトでバインドされていないキーを持つコマンド用ショートカットを追加するためのキーバインディング。例 : (global-set-key (kbd "C-x C-b") 'ibuffer)
    • Emacsの拡張の読み込み、有効化、および初期化(Emacsには多くの拡張が付属しているが、デフォルトでは極少数しか読み込まれない)。
    • 指定された時間に任意のコードを実行するイベントフックの設定。例としてはバッファの保存後に自動でソースコードをリコンパイルするafter-save-hookなど。
    • 任意の複数ファイル実行。通常は長すぎる設定ファイルを管理できるように均等な部分に分割するためのもの(これらの個人的スクリプト用の伝統的な場所は~/.emacs.d/~/elisp/である)。
  • 「カスタマイズ」拡張により、ユーザーは~/.emacsに変数を設定するよりもユーザーフレンドリーな方法で、Emacs内部からインタラクティブなカラースキームのような設定プロパティを設定できる。これは検索、説明やヘルプ文、複数選択の入力、デフォルトへのリバート、再起動を必要としない起動中のEmacsインスタンス修正や、他のプログラムにおける好みの機能と類似した他の機能を提供する。カスタマイズされた値は~/.emacs(または他の指定ファイル)に自動で保存される。
  • テーマはフォントや色の選択に影響を与え、Emacs Lispファイルで定義されカスタマイズ拡張で選択される。

Emacsは、プログラマが単一インターフェースでコードを編集、コンパイルデバッグするような統合開発環境 (IDE) としても使うことができる。

このような編集機能にとどまらず、Emacs LispはTCP/IP通信や外部プロセスの起動などの機能を持っており、テキストエディタとしては一般的でない機能も多くEmacs Lispで記述されている。これらの機能を利用した様々なアプリケーションソフトウェアが書かれてきた。Emacsはこれらのアプリケーションソフトウェアを動作させる実行環境となっている。外部プロセスとして、UNIXのプロセスを起動する場合、Emacs はプロセスのフロントエンドプロセッサとして動作する。例えば、LISP を Emacs から起動すると、閉じカッコ")"がキーボードから入力された時それに対応する開きカッコ"("をハイライトするようなマクロを組んでおくことで、カッコの確認をしながら入力が可能である[48]

ライブラリーは、インターネットで見付けることができる。 新しいライブラリーを投稿するためのUsenetニュースグループgnu.emacs.sourcesまである。一部のライブラリーは、最終的にEmacsに取り込まれて、「標準」ライブラリーとなる。

GNU Emacs 24では、パッケージマネージャが内蔵された。公式のパッケージアーカイブであるGNU ELPA(Emacs Lisp Package Archive)[49]のほか、いくつかのアーカイブを扱うことができる。

自己文書化

Emacsには最初から各個別のコマンド、変数、内部関数の説明文字列を表示する、強力なhelpライブラリが付属していた。このため通常の機能や現在の状態の情報をユーザーに提供するので、Emacsは自己説明的だと評される。各関数には説明文字列が含まれていて、要求に応じてユーザーに表示される。その後関数に説明文字列をつける習慣は、LISP、JavaPerl、およびPythonといったさまざまなプログラミング言語に広まった。このヘルプシステムにより、ユーザーは組込みのライブラリや追加されたサードパーティーのライブラリのどちらからも各関数用の実際のヘルプコードを取得できる。

Emacsには組み込みのチュートリアルもある。編集ファイルを指定せずEmacsを起動すると、簡単な編集コマンドの実行方法とチュートリアルを呼出す方法についての説明が表示される。このチュートリアルはStuart Cracraftとストールマンによって作られたものである。

GNU Emacsには組込みの説明文字列のほかにも、ストールマンの執筆したGNU Emacs Manualの電子コピーがついており、組込みのInfoブラウザで閲覧することができる。電子版のほかに、3種のマニュアルがフリーソフトウェア財団から書籍のかたちで刊行されている。

XEmacsの場合、ソフトウェア本体と同時にGNU Emacs Manualからフォークした同様のマニュアルがある他、Bill Lewis、ストールマン、Dan Laliberte共著のEmacs Lisp Reference Manual、Robert Chassel著のProgramming in Emacs Lispも含まれている。

  • texinfoはGNU Emacsの標準ドキュメントシステムであり、Emacsのマニュアルはtexinfoでドキュメント化されている。texinfoはTeXをベースにしたマークアップ言語を使って記述し、ハイパーテキスト的なブラウジング・検索が可能なオンラインドキュメントinfoとして使用することも、TeXを経由して組版されたペーパドキュメントとしても利用することができる。

注釈

  1. ^ 他の共同制作者としてリチャード・ストールマンがクレジットされることが多いが、ダニエル・ウェインレブ英語版は「(TECOベースである)オリジナルのEmacsはガイ・L・スティール・ジュニアとデイビット・ムーンが開発・設計した。彼らがEmacsを動くようにした後で、MIT AI研における標準テキストエディタとして確立されていき、ストールマンがそのメンテナンスを引き継いだ」と記している。ムーン自身は「私が覚えている限り、それは全て真実だ。しかし公正を期して言えば、ストールマンがガイと私からEmacsを『解放した』後、ストールマンがEmacsを大幅に改善したと言わなければならない」と応えた。以下を参照 : ウェインレブ, ダニエル (November 11, 2007), “Rebuttal to Stallman’s Story About The Formation of Symbolics and LMI”, Dan Weinreb's blog: software and innovation, オリジナルのJanuary 1, 2009時点におけるアーカイブ。, https://web.archive.org/web/20090101103828/http://danweinreb.org/blog/rebuttal-to-stallmans-story-about-the-formation-of-symbolics-and-lmi 

出典

  1. ^ /EmacsReleaseDates”. 2017年11月1日閲覧。
  2. ^ a b Zawinski, Jamie (2005年6月21日). “Emacs Timeline”. 2015年8月11日閲覧。
  3. ^ A Tutorial Introduction to GNU Emacs”. 2017年5月15日閲覧。 “For an editor to be called "emacs" the main requirement is that it be fully extensible with a real programming language, not just a macro language.”
  4. ^ GNU Emacs Pocket Reference”. 2017年11月1日閲覧。 “GNU Emacs is the most popular and widespread of the Emacs family of editors.”
  5. ^ 最初の声明”. FSF. 2023年9月27日閲覧。
  6. ^ Initial Announcement”. FSF. 2023年9月27日閲覧。
  7. ^ GNU Emacs Manual”. GNU Emacs Manual. FSF. 2012年11月24日閲覧。
  8. ^ Introducing Elfeed, an Emacs Web Feed Reader”. 2016年6月12日閲覧。
  9. ^ Amusements”. 2017年11月1日閲覧。 “Finally, if you find yourself frustrated, try describing your problems to the famous psychotherapist Eliza. Just do M-x doctor.”
  10. ^ A Guided Tour of Emacs”. 2016年6月12日閲覧。 “Some users find that they can do almost all of their work from within Emacs.”
  11. ^ Greenberg, Bernard S. (1979). Multics Emacs: The History, Design and Implementation. http://www.multicians.org/mepap.html 2016年6月12日閲覧。 
  12. ^ GNU Emacs FAQ”. 2016年6月12日閲覧。
  13. ^ a b c Adrienne G. Thompson. “MACSimizing TECO”. 2016年6月12日閲覧。
  14. ^ A history of Emacs”. XEmacs Internals Manual (2006年12月11日). 2007年8月22日閲覧。
  15. ^ Allombert, Bill. “Debian Popularity Contest”. Editors report. Debian. 2011年11月22日閲覧。
  16. ^ The 10 oldest, significant open-source programs”. 2017年11月1日閲覧。
  17. ^ Raymond, Eric S.; Cameron, Debra; Rosenblatt, Bill (1996). Learning GNU Emacs, 2nd Edition. Sebastopol, CA: O'Reilly. pp. 408–409. ISBN 1-56592-152-6. https://books.google.com/books?id=a_lea3-w-1kC&pg=PA408&dq=bucky+keyboard#PPA408,M1 
  18. ^ Arthur Samuel (1980年3月). “Essential E”. 2011年8月1日閲覧。[リンク切れ]
  19. ^ EMACS vs. vi: The endless geek 'holy war'”. 2016年6月12日閲覧。 “"EMACS as such actually started out as a standards project," emails Guy Steele”
  20. ^ Stallman, Richard M. (1987年). “The EMACS Full-Screen Editor”. GARB (Lysator, Linköping University) (Maj 1987): pp. 8–11. http://www.lysator.liu.se/history/garb/txt/87-1-emacs.txt 2007年9月14日閲覧。. 
  21. ^ The Emac Bolio Name Koan”. David G. Wiseman: Stories of Computer Folklore (1992年2月10日). 2016年6月12日閲覧。 “A cocky novice once said to Stallman: 'I can guess why the editor is called Emacs, but why is the justifier called Bolio?'. Stallman replied forcefully, Names are but names, Emack & Bolio's is the name of a popular ice cream shop in Boston town. Neither of these men had anything to do with the software.' His question answered, yet unanswered, the novice turned to go, but Stallman called to him, 'Neither Emacs nor Bolio had anything to do with the ice cream shop, either.'”[リンク切れ]
  22. ^ a b Stallman, Richard (26 March 1981). EMACS: The Extensible, Customizable, Self-Documenting, Display Editor (Technical report). MIT AI Lab. AI Memo 519a. 2022年6月7日閲覧
  23. ^ Leigh Klotz (2007年8月29日). “email quoted in "Be Careful What You Joke About"”. The New York Times. http://pogue.blogs.nytimes.com/2007/08/29/be-careful-what-you-joke-about/ 2010年5月1日閲覧。 
  24. ^ Comment by ZWEI's author Dan Weinreb”. 2016年6月12日閲覧。 “I wrote the second Emacs ever: the Lisp machine implementation, whose spec was "do what Stallman's PDP-10 (original) Emacs does", and then progressed from there. There's just a whole LOT of it. It took me and Mike McMahon endless hours to implement so many commands to make ZWEI/Zmacs.”
  25. ^ RMS Lecture at KTH: Japanese
  26. ^ プロプライエタリソフトウェアとは、ソースコードが公開されていないソフトウェアで、プログラムを自由に配布や改変、逆コンパイルをすることができないものを指す用語である。
  27. ^ A History of Emacs”. 2016年6月12日閲覧。
  28. ^ emacs-devel msg 00872 (2014-09-29)”. 2016年6月12日閲覧。 “In retrospect 24.3 should have been named 25.1 and 24.4 should have been named 26.1. The .N thingy should really be kept only for bug-fix releases and neither of 24.3, 24.4, nor the previously planned 24.5 are bug-fix releases.”
  29. ^ Stoll, Clifford (1988). “Stalking the wily hacker”. Communications of the ACM 31 (5): 484?497. doi:10.1145/42411.42412 
  30. ^ New Git repository is up.”. 2016年6月12日閲覧。
  31. ^ Re: Looking for a new Emacs maintainer or team”. gnu.org Mailing List. 2008年2月23日閲覧。; see also "Stallman on handing over GNU Emacs, its future and the importance of nomenclature"
  32. ^ Emacs gets new maintainer as Richard Stallman signs off”. 2017年11月1日閲覧。
  33. ^ Ugliest…repository…conversion…ever”. 2016年6月12日閲覧。 “twenty-nine years of continuous development by no fewer than 579 people”
  34. ^ Stephen J., Turnbull. “XEmacs vs. GNU Emacs”. 2012年10月2日閲覧。
  35. ^ XEmacs is Dead. Long Live XEmacs!”. 2016年6月12日閲覧。
  36. ^ FrontPage - Meadow WikiArchived 2012-02-16 at the Wayback Machine.
  37. ^ SXEmacs Website”. Sxemacs.org (2009年10月11日). 2009年11月8日閲覧。
  38. ^ http://www.stifflog.com/2006/10/16/stiff-asks-great-programmers-answer/
  39. ^ NotGNU Emacs Editor (Author's Official Download Site)”. Notgnu.org (2004年1月15日). 2009年11月8日閲覧。
  40. ^ Zile home page”. 2016年6月20日閲覧。
  41. ^ QEmacs Homepage”. Fabrice.bellard.free.fr. 2009年11月8日閲覧。
  42. ^ Christian Jullien. (1986年). “EmACT on sourceforge”. Christian Jullien. 2011年12月31日閲覧。
  43. ^ AMACS source”. 2016年6月12日閲覧。
  44. ^ apple2.org”. 2016年6月12日閲覧。
  45. ^ Cocoa text system”. 2016年6月12日閲覧。
  46. ^ SublemacsPro plugin for Sublime Text”. 2016年6月12日閲覧。
  47. ^ Init file”. 2016年6月20日閲覧。
  48. ^ 村井純、井上尚司、砂原秀樹『プロフェッショナルUNIX』株式会社アスキー、1986年1月15日、243頁。ISBN 4-87148-184-0 
  49. ^ https://elpa.gnu.org/packages/
  50. ^ Saint IGNUcius - Richard Stallman”. 2015年1月29日閲覧。
  51. ^ The unabridged selective transcript of Richard M Stallman's talk at the ANU”. 2015年1月29日閲覧。
  52. ^ alt.religion.emacs newsgroup
  53. ^ Saint IGNUcius - Richard Stallman
  54. ^ a b How To Avoid The Emacs Pinky Problem”. Xahlee.org. 2009年11月8日閲覧。
  55. ^ EmacsWiki: Repeated Strain Injury”. 2015年1月29日閲覧。
  56. ^ Moving The Ctrl Key”. EmacsWiki. 2009年11月8日閲覧。
  57. ^ EmacsWiki: Ace Jump”. 2015年1月29日閲覧。
  58. ^ Spacemacs”. 2015年4月20日閲覧。
  59. ^ BayleShanks (2009年10月7日). “Sticky Modifiers”. EmacsWiki. 2009年11月8日閲覧。
  60. ^ Viper Mode”. EmacsWiki. 2009年11月8日閲覧。
  61. ^ At Home Modifier by Evdev”. 2015年4月14日閲覧。
  62. ^ Why Emacs's Keyboard Shortcuts are Painful”. 2016年6月12日閲覧。
  63. ^ VAXen”. Catb.org. 2009年11月8日閲覧。
  64. ^ GLYN MOODY 小山祐司監訳『ソースコードの反逆』株式会社アスキー、2002年6月11日、288頁。 
  65. ^ Some funny acronym expansions of Emacs”. 2021年11月7日閲覧。






固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Emacs」の関連用語

Emacsのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Emacsのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのEmacs (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS