Emacs

出典: フリー教科書『ウィキブックス(Wikibooks)』

メインページ > 情報技術 > Emacs


はじめに[編集]

GNU Emacsを使用することで、テキストエディタとしての基本的な機能だけでなく、多くの高度な機能を利用することができます。これには、プログラム開発や文書作成に役立つツールが含まれます。

GNU Emacsは、ユーザーインターフェイスをカスタマイズできる柔軟性に優れており、他のエディタと比較して大幅に拡張可能です。多数のプラグインや拡張機能が利用でき、カスタムキーバインディングにより、自分の作業に合わせて独自のショートカットを作成することもできます。

本チュートリアルでは、Emacsの基本操作を学ぶことから始め、機能を拡張し、より高度なタスクを実行するための方法を学びます。このチュートリアルを終えるころには、Emacsを使いこなすことができ、効率的に作業を進めることができるようになることを目指します。

キーボードショートカットの概要[編集]

以下に、主要なショートカットとその意味を紹介します。

C- と M- の表記法の解説
C-
C-x はCTRLキーを押しながら x を押すことを表します。
M-
M-x はMETAキーを押しながら x を押すことを表します。METAキーがない場合はALTキーやコマンドキーを使います。またESCを押して話したあと x を押しても同じ意味になります。Viから移行した人はESCを連打してコマンドモードに戻る癖がついているので、ESCがM-に割り当てられていることを強く意識する必要があります。
基本操作
C-g:操作を中断する
C-x C-c:Emacsを終了する
ファイル操作
C-x C-f:ファイルを開く
C-x C-s:ファイルを保存する
C-x C-w:ファイルに別名をつけて保存する
C-x C-v:別のファイルを開く
バッファ操作
C-x b:別のバッファに切り替える
C-x k:現在のバッファを閉じる
カーソル移動
C-f:1文字右に移動する
C-b:1文字左に移動する
C-p:1行上に移動する
C-n:1行下に移動する
M-f:1単語右に移動する
M-b:1単語左に移動する
C-a:行頭に移動する
C-e:行末に移動する
M-<:バッファの先頭に移動する
M->:バッファの末尾に移動する
テキスト操作
C-d:1文字削除する
M-d:1単語削除する
C-k:カーソル位置から行末までを削除する
M-k:カーソル位置から単語末までを削除する
C-y:削除したテキストを挿入する
M-y:ヤンク(最後に削除したテキストを挿入する)
C-t:前後の文字を入れ替える
マークとリージョン
C-SPC:マークを設定する(リージョンを選択する)
C-w:リージョンを削除する
M-w:リージョンをコピーする
C-x C-x:カーソル位置とマークの位置を交換する
検索と置換
C-s:前方検索する
C-r:後方検索する
M-%:置換する
ウィンドウとフレーム
C-x 1:現在のウィンドウだけを表示する
C-x 2:ウィンドウを上下に分割する
C-x 3:ウィンドウを左右に分割する
C-x o:次のウィンドウに移動する
C-x 5 2:新しいフレームを開く

編集の基本操作[編集]

GNU Emacsでテキストを編集するための基本的な操作について説明します。

  1. バッファーの作成とファイルの読み込み
    GNU Emacsでは、テキストを編集するために、まずバッファーを作成する必要があります。バッファーとは、テキストが格納される場所のことで、新しいファイルを開いたり、既存のファイルを読み込んだりするときに使用します。
    バッファーを作成するには、「C-x C-f」とタイプして、ファイル名を入力します。既存のファイルを読み込むには、「C-x C-f」とタイプして、ファイル名を入力します。
  2. テキストの挿入と削除
    テキストを挿入するには、「C-a」とタイプして、行の先頭にカーソルを移動し、テキストを入力します。また、テキストを挿入するには、「C-x C-i」とタイプして、他のバッファーからテキストをコピー&ペーストすることもできます。
    テキストを削除するには、「C-k」とタイプして、カーソルがある行の末尾までを削除します。また、「C-w」とタイプして、選択されたテキストを削除することもできます。
  3. カーソルの移動
    カーソルを移動するには、「C-p」とタイプして、一行上に移動します。「C-n」とタイプして、一行下に移動します。「C-f」とタイプして、一文字右に移動します。「C-b」とタイプして、一文字左に移動します。「C-e」とタイプして、行の末尾に移動します。「C-a」とタイプして、行の先頭に移動します。
  4. ファイルの保存と終了
    編集が完了したら、「C-x C-s」とタイプして、ファイルを保存します。「C-x C-c」とタイプして、GNU Emacsを終了します。

これらは、GNU Emacsでテキストを編集するための基本的な操作です。これらの操作に慣れることができれば、より高度な編集操作を行うことができます。

テキストの挿入、削除、移動[編集]

Emacsでテキストを編集するには、まずテキストを挿入する必要があります。テキストを挿入するには、カーソルを移動してから、文字を入力するだけです。カーソルは、左右の矢印キーで移動することができます。

また、テキストを削除する場合は、C-d を使用します。このキーを押すと、カーソルの右側の文字が削除されます。

テキストを移動する方法はいくつかあります。最も一般的な方法は、カーソルを移動することです。また、画面内をスクロールすることもできます。これには、C-v(次のページに移動)およびM-v(前のページに移動)のキーを使用します。

テキストを移動するためのさらに高度な方法としては、Emacsのマークとリージョンを使用する方法があります。これについては、次のセクションで説明します。

マークの設定とリージョンの選択[編集]

Emacsでは、マークと呼ばれる特殊な位置を設定できます。これは、テキストのリージョンを選択するために使用されます。リージョンは、マークから現在のカーソル位置までの範囲を指します。

マークを設定するには、まずカーソルを移動して、C-SPC でマークを設定します、それからカーソルを移動します。すると、カーソルとマークの間のテキストがリージョンとして選択されます。

リージョンを選択すると、様々な操作が可能になります。

リージョン関係の一般的なコマンドとキーバインドのいくつかを示します。

  • C-SPC : 開始位置をマーク
  • C-g : マークを解除
  • C-x h : バッファ全体をマーク
  • M-h : 現在の段落をマーク
  • C-M-h : 現在の関数をマーク
  • C-x C-x : マークを始点と終点を反転
  • C-w : マークした範囲をカット
  • M-w : マークした範囲をコピー
  • C-y : カットやコピーした範囲をペースト
  • M-u : マークした範囲の大文字化
  • M-l : マークした範囲の小文字化
  • M-c : マークした範囲の最初の文字を大文字に変換し、他を小文字に変換
  • M-| : マークした範囲のシェルコマンドを実行

これらのコマンドを使って、テキストを選択、カット、コピー、ペースト、変換することができます。キーバインドはEmacsのバージョンや設定によって異なる場合がありますが、一般的には上記のコマンドの多くが標準のキーバインドで使用されます。

バッファとウィンドウ[編集]

Emacsは、テキストエディターとして機能するだけでなく、バッファやウィンドウなどの概念を持つマルチウィンドウ環境でもあります。

バッファとは、開いているテキストの一時的な保存領域で、ファイルを開いたときや、新しいファイルを作成したとき、またはバッファを別のファイルに切り替えたときに作成されます。バッファには、バッファ名が割り当てられ、バッファ名でバッファを切り替えることができます。また、バッファには、検索や置換などの操作が可能なテキストを含むテキストエリアがあります。

ウィンドウは、画面上の領域であり、バッファを表示するために使用されます。Emacsは、複数のウィンドウを開いて、同じバッファを複数の場所で表示することができます。各ウィンドウには、異なるバッファを表示することもできます。ウィンドウには、ウィンドウの位置とサイズを変更することができます。

また、Emacsは、フレームという概念も持っています。フレームは、ウィンドウを含む独立したウィンドウマネージャーのようなもので、ユーザーがアプリケーションウィンドウを制御することができます。フレームには、ウィンドウを配置するためのタブやボタンなどが含まれることがあります。

バッファの切り替え[編集]

Emacsでは、複数のバッファを同時に開くことができます。バッファは、現在編集中のファイルや、別のファイルを開いたときに作成されるものです。

バッファの切り替えには、いくつかの方法があります。以下に代表的な方法を示します。

  1. C-x bコマンドを使用する方法
    • C-x bを入力すると、Buffer:というプロンプトが表示されます。ここで、切り替えたいバッファ名を入力すると、そのバッファに切り替わります。
  2. C-x C-bコマンドを使用する方法
    • C-x C-bを入力すると、*Buffer List*というバッファが表示されます。ここで、jキーを押すと下にスクロールし、kキーを押すと上にスクロールします。また、バッファ名をクリックすることで、そのバッファに切り替えることができます。
  3. C-x <right>C-x <left>コマンドを使用する方法
    • C-x <right>を入力すると、次のバッファに切り替わります。C-x <left>を入力すると、前のバッファに切り替わります。
  4. C-x C-fコマンドを使用する方法
    • C-x C-fを入力すると、Find file:というプロンプトが表示されます。ここで、既存のファイル名を入力すると、そのファイルを開きます。すでに開いているバッファがある場合は、そのバッファに切り替わります。

これらの方法を使って、Emacsで開いている複数のバッファを効率的に切り替えてください。

ウィンドウの分割と結合と移動[編集]

Emacsは、複数のウィンドウを使用して、同じファイル内の複数の場所を同時に表示することができます。以下は、Emacsでウィンドウを分割、結合、移動する方法です。

  • ウィンドウの分割: Emacsでウィンドウを分割するには、C-x 2またはC-x 3を使用します。C-x 2はウィンドウを上下に分割し、C-x 3はウィンドウを左右に分割します。これらのコマンドを使用すると、現在のウィンドウが2つまたは3つに分割されます。各ウィンドウには、異なる部分が表示されます。
  • ウィンドウの結合: Emacsでウィンドウを結合するには、C-x 1を使用します。このコマンドを使用すると、現在のフレームのすべてのウィンドウが1つに結合されます。ただし、このコマンドを使用すると、ウィンドウ内のコンテンツが失われるため、注意が必要です。
  • ウィンドウ間の移動: Emacsでウィンドウを移動するには、C-x oを使用します。このコマンドを使用すると、現在アクティブなウィンドウから、他のすべてのウィンドウを順番に移動できます。ウィンドウを選択するには、移動したいウィンドウにカーソルを移動し、RETを押すか、マウスを使用することができます。また、別のウィンドウに移動するには、C-x oを繰り返し使用することもできます。

ファイルとディレクトリ操作[編集]

Emacsは、ファイルとディレクトリ操作に関する多数の便利な機能を提供しています。以下に、代表的な機能を紹介します。

  1. ファイルを開く・保存する Emacsでファイルを開くには、C-x C-fを入力し、ファイル名を入力します。また、既存のファイルを保存するには、C-x C-sを入力します。
  2. ファイル名の補完 ファイル名を入力する際に、TABキーを押すと、ファイル名の補完候補が表示されます。これにより、長いファイル名を手入力する手間を省くことができます。
  3. バッファを開く Emacsでは、ファイルを直接開くのではなく、ファイルの内容を格納するバッファを開きます。これにより、複数のバッファを同時に開いて作業することができます。バッファを開くには、C-x C-fを入力し、ファイル名を指定します。
  4. ファイルを閉じる ファイルを閉じるには、C-x kを入力します。このコマンドは、現在アクティブなバッファを閉じるためのものです。
  5. ファイルを削除する ファイルを削除するには、C-x C-fで削除したいファイル名を指定し、C-x C-dを入力します。この操作により、指定したファイルが完全に削除されます。
  6. ディレクトリを表示する Emacsでは、ファイルを扱うだけでなく、ディレクトリの内容を表示することもできます。ディレクトリの内容を表示するには、C-x dを入力し、ディレクトリ名を指定します。
  7. ディレクトリを作成する ディレクトリを作成するには、C-x C-fで新しいディレクトリ名を指定し、M-x make-directoryを入力します。これにより、指定したディレクトリが作成されます。

以上が、Emacsでのファイルとディレクトリ操作の基本的な機能です。これらの機能を組み合わせることで、効率的かつスムーズな作業を行うことができます。

拡張機能の利用[編集]

Emacsは、様々な拡張機能を備えた高機能なテキストエディタです。Emacsの拡張機能を利用することで、より効率的な編集作業が可能となります。

Emacsの拡張機能は、以下のような方法で利用できます。

  • パッケージのインストール Emacsには多数の拡張機能が用意されており、これらの拡張機能を利用するためには、まず対応するパッケージをインストールする必要があります。Emacsには、パッケージをインストールするためのパッケージマネージャーが用意されており、MELPAなどのリポジトリから必要なパッケージをインストールできます。
  • .emacsファイルの設定 Emacsの拡張機能は、.emacsという設定ファイルに記述することで利用できます。.emacsファイルには、拡張機能の設定やキーバインドの割り当てなどを記述することができます。
  • M-xコマンドの実行 Emacsの拡張機能は、M-xというコマンドを実行することで利用できます。M-xコマンドを実行すると、拡張機能の名前を入力することができます。また、拡張機能にはそれぞれ固有のショートカットキーが割り当てられている場合もあります。

Emacsの拡張機能は非常に多岐にわたり、ユーザーが利用する用途に合わせて自由に設定できます。初めてEmacsを使う場合は、まず基本的な操作方法を学び、必要に応じて拡張機能を追加していくことがおすすめです。

Emacsの設定とカスタマイズ[編集]

Emacsは高度なテキストエディタであり、多くのユーザーが自分好みにカスタマイズして使用しています。以下は、Emacsの設定とカスタマイズについての基本的な情報です。

  • .emacsファイルの作成 Emacsの設定は、.emacsファイルに保存されます。このファイルはホームディレクトリに保存されることが一般的です。
  • パッケージのインストール Emacsには、多くのパッケージがあります。これらのパッケージは、拡張機能を提供し、Emacsの機能を強化することができます。MELPAなどのパッケージマネージャを使用して、必要なパッケージをインストールすることができます。
  • キーバインディングの設定 Emacsは、キーバインディングをカスタマイズすることができます。.emacsファイルに追加することで、自分好みのキーバインディングを設定することができます。
  • テーマの変更 Emacsの外観は、テーマを変更することで変更することができます。Emacsには、多くのテーマがあり、自分好みのテーマを選択することができます。
  • モードの設定 Emacsは、多くのモードをサポートしています。モードには、プログラミング言語やファイルフォーマットなどがあります。.emacsファイルに設定を追加することで、自分好みのモードを設定することができます。
  • フォントの設定 Emacsのフォントを変更することができます。.emacsファイルにフォントの設定を追加することで、自分好みのフォントを設定することができます。
  • ショートカットの設定 Emacsは、多くのショートカットをサポートしています。これらのショートカットをカスタマイズすることができます。.emacsファイルにショートカットの設定を追加することで、自分好みのショートカットを設定することができます。

以上が、Emacsの基本的な設定とカスタマイズについての情報です。Emacsは非常に柔軟なテキストエディタであり、多くの機能を提供しています。これらの機能を活用して、自分好みの環境を構築することができます。

Emacsの高度な機能[編集]

Emacsは非常に高度なテキストエディタであり、多くの機能があります。以下は、Emacsの高度な機能のいくつかの例です。

  • マクロ機能: Emacsはマクロを作成することができます。これにより、同じ種類の編集作業を繰り返し実行することができます。マクロは、キーの入力、マウスの操作、テキストの編集、ファイルの保存などの複数のアクションを含めることができます。
  • Elispプログラミング: Emacsは、拡張性を高めるために、Elispと呼ばれるLisp方言で記述されたスクリプトを使用してカスタマイズできます。Elispは、機能の追加や変更を行うために非常に強力であり、多くのユーザーがEmacsをカスタマイズするために使用しています。
  • ウィンドウシステム: Emacsは、複数のウィンドウやフレームを扱うことができます。ウィンドウは、同じファイルを異なる部分で同時に編集することができ、フレームは、異なるファイルを同時に開くことができます。
  • バッファとモード: Emacsは、複数のバッファを同時に開いて編集することができます。バッファには、テキストファイル、スクリプト、シェル出力、diredリストなど、多数の種類のコンテンツが含まれます。また、Emacsは、異なるモードでバッファを開くことができ、それに応じて様々な機能を提供します。
  • プロジェクト管理: Emacsは、プロジェクト管理ツールとして使用できます。プロジェクトを定義することにより、プロジェクトに関連するファイルのグループを作成し、それらを一括して編集できます。また、プロジェクトに関連するタスクを管理することもできます。

これらは、Emacsの高度な機能の一部ですが、Emacsにはその他にも多数の機能があります。

Tips
GNU Emacs の Tips を紹介します。
  1. キーボードショートカットを使う
    Emacsはキーボードショートカットを使って使うことを前提に設計されています。ファイルを開くにはC-x C-f、ファイルを保存するにはC-x C-s、Emacsを終了するにはC-x C-cなど、生産性を高めるために、基本的なショートカットを覚えましょう。
  2. 内蔵のチュートリアルを利用する
    Emacsには、C-h tと入力することでアクセスできるチュートリアルが組み込まれています。このチュートリアルは、Emacsを使い始め、その基本機能を学ぶのに最適な方法です。
  3. Emacsのパッケージを使う
    Emacsには、機能を拡張するために使用できるパッケージの膨大なコレクションがあります。Gitを統合するmagit、プロジェクト管理を行うprojectile、検索やブラウジングを行うhelmなど、人気のあるパッケージがあります。
  4. Org-modeを使う
    Org-modeは、タスク、ノート、プロジェクトを整理して管理するための強力なツールです。ToDoリストの作成から研究論文の作成まで、あらゆることに活用できます。
  5. Emacsをカスタマイズする
    Emacsはカスタマイズ性に優れており、好みに合わせて外観や動作を調整することができます。Emacsの設定ファイル(.emacsまたはinit.el)を変更することで、新しい機能を追加したり、デフォルト設定を変更したりすることができます。
  6. 複数のウィンドウを使う
    Emacsでは、画面を複数のウィンドウに分割し、異なるバッファやファイルを並べて表示することができます。これは、ファイルを比較したり、大きなファイルの複数の部分を同時に表示するのに最適な方法です。
  7. ミニバッファを使用する
    ミニバッファはEmacsの画面下部にある小さなウィンドウで、コマンドやテキストを入力するために使用することができます。非常に強力なツールであり、ファイル名の補完や検索などに使用できます。
  8. マクロを使う
    マクロは、Emacsで繰り返し行う作業を自動化するための方法です。一連のキー入力を記録し、必要な回数だけ再生することができます。時間を節約し、生産性を向上させるための素晴らしい方法です。
  9. ブックマークを使う
    ブックマークは、ファイルやバッファの特定の場所をマークして、後で簡単に戻れるようにする方法です。Emacsのコマンドを使って、ブックマークを作成、削除、ナビゲートすることができます。
  10. ビルトインヘルプシステムを利用する
    Emacsには、C-hと入力することでアクセスできるビルトインヘルプシステムがあります。このシステムは、Emacsのすべてのコマンドと機能に関する詳細な情報、およびEmacsパッケージのチュートリアルとドキュメントを提供します。