こんにちは。関東の大学に通う大学生ミンチ(@programminchi)です。今回はUNIXにおいて、ファイル編集などをする際に便利なEmacsの使い方について詳しく説明していきます。
Emacsで何ができるの?
Emacsを使うとテキストファイル(文字情報のみのファイル)を編集していくことができます。テキストエディタ(テキストファイルを作成、編集、保存するソフトウェア)として優れており、Emacs一つで様々な役割を果たすことができます。
テキストファイルの編集はもちろん、Emacsでコーディングしたプログラムをビルドしたり、Emacsからメールを送ったりなんてこともできます。
Emacsを起動しよう
まずはEmacsを開いていきましょう。以下のようにターミナルで入力してください。
$emacs
エンターを押すとEmacsがたちあがります。その後、C-x C-fとして、ファイル名を入力するとファイルが開かれます。
また、最初からターミナルでemacsの後にスペースを空けて、ファイル名を指定してあげると、そのファイルを開いた状態でEmacsがたちあがります。
Emacsのバッファの仕組み
Emacsのバッファについて説明していきます。Emacsのバッファとはデータを一時的に記憶してファイルの編集などを行う作業領域のことです。
バッファはよくファイルと混同してしまいがちですが、あくまでバッファは編集したいファイルのデータを一時的に保存してあるだけなので、バッファの内容を書き換えてもファイルの内容を書き換えたことにはならず、後からもう一度書きますが、コマンドC-x C-s(保存)を行って初めてファイルの内容が書き換えられます。
上に簡単なEmacsでの表示画面を示しました。上で説明したバッファはウィンドウに表示して編集していきます。また、複数のバッファを同時に表示して編集することもできます。それについても後々話していきます。
ウィンドウの下の黒い画面がステータスバーです。ステータスバーではウィンドウで編集中のバッファ名が表示されています。バッファ名はファイル名と同じになります。上では編集中のバッファ名はfile1.txtです。
1番下の白い領域はミニバッファといいます。ミニバッファはコマンドなどの入力に使います。
Emacsの基本的なコマンド
Emacsではかなり多くのコマンドが割り当てられており、効率よくファイルを編集できるようになっています。以下ではまず、基本的なコマンドについて見ていきます。
コマンドの書き方のルール
コマンドは以下のように記述していくので覚えておいてください。
C-文字.....Windowsではコントロールキーを押したまま文字で指定されたキーを押します。Macではコマンドキーを押したまま文字で指定されたキーを押します。
M-文字.....エスケープキーを押した後一旦離して、文字で指定されたキーを押します。
Emacsを使う上で絶対に覚えておくべきコマンド
以下にEmacsを操作する上で最低限覚えておく必要があるコマンドとその簡単な説明を表にまとめました。
コマンド | 簡単な説明 |
C-x C-f | ファイルを開く。コマンドを実行した後、ミニバッファで開きたいファイルの名前を指定する。 |
C-x C-s | ファイルを保存する。 |
C-x C-c | Emacsを終了する。 |
C-g | コマンド入力や実行を中断する。 |
C-x C-w | 名前を付けてファイルを保存する。 コマンドを実行した後、ミニバッファでファイル名を入力する。 |
C-x u | 変更を1つ前に戻す。 |
C-x k | バッファを削除する。(ファイルを削除するわけではない。行った編集を保存せずに終了するだけ。) |
※C-x uとはコントールキーを押しながらxを押し、一旦全て離してuを押してくださいということです。
カーソル移動のコマンド
次に、カーソル移動のためのコマンドを見ていきましょう。これらのコマンドをしっかり覚えておくと作業効率が結構上がります。
コマンド | 簡単な説明 |
C-f | カーソルを次の文字に移動する。 |
C-b | カーソルを前の文字に移動する。 |
C-p | カーソルを前の行に移動する。 |
C-n | カーソルを次の行に移動する。 |
C-e | カーソルを行末に移動する。 |
C-a | カーソルを行頭へ移動する。 |
M-> | カーソルをバッファ末尾へ移動する。 |
M-< | カーソルをバッファ銭湯へ移動する。 |
まとめ
今回はEmacsを使っていく上で本当に最低限の知識だけまとめました。他にもEmacsには冒頭で述べた通り色々な機能があります。
次回はEmacsの検索機能や置換機能など、非常に便利な機能について発信していきます。
今後も定期的にコンピュータ系の記事を発信していくので是非、興味のある人はツイッターの方もフォローお願いします!!