須賀 友也 神戸大学 理学研究科 地球惑星科学専攻 M1 Emacs を使おう!
目次 はじめに Emacs って? 動かしてみよう 起動してみよう 基本の動作のコマンド その他の機能
はじめに
Emacs とは? テキストエディタ GUIでもCUIでも使える 高い拡張性を持つ Emacs Lisp というプログラミング言語で書かれ た 追加アプリケーションや、独自のカスタマイズ も可能 独特のキーバインド 要はショートカットキーが他のと違う →ちょっと敷居が高いと思われている原因?
どんなところがいいの? 文字の入力は普通のテキストエディタと同じ vi よりも簡単? 文字・改行コードの自動判別が出来る 文字コード・改行コードによらず正しく表示で きる 拡張子を判別して色付けやインデントができる 拡張子ごとに編集モードがある .c , .f90 , .rb , .tex などなど対応ファイル多い 複数のファイルを同時に開くことが出来る etc......
それでは実際に動かしてみましょう
起動してみよう メニュー画面から、またはコマンドで”emacs” 起動画面はこんな感じ
起動してみよう 端末上で起動させたい粋な人は “emacs -nw”
一番下のバーは何? モード行 編集中のファイルの状態を表す エコー領域・ミニバッファ システムからのメッセージの表示 コマンド入力時に文字を入力する部 分
C-? , M-? とは? C-h C-a ってどういうこと? C-h : Ctrl を押しながら h を押す C-h C-a : Ctrl を押しながら h , a の順に押 す M-? というのもある M-x : Esc を押して離して x を押す Alt を押しながら x を押す
困ったときは C-g !! C-g ! コマンドの途中やよく分からないウィンドウが 開いたら C-g !!
基本の動作のコマンド
ファイルを開く・保存・終了 これだけ覚えたらなんとかなる! 適当なファイルで試してみよう! コマンド 解説 C-x C-f ファイルを開く C-x C-s ファイルの保存 C-x k ファイルを閉じる C-x C-c Emacs の終了 適当なファイルで試してみよう!
カーソル移動 マウスや矢印キーなどを使わずに操作! C-p C-a C-b C-f C-e C-n コマンド 動き 対応キー C-f 一文字先(forward) → C-b 一文字前(backward) ← C-e 行末へ(end) [Home] C-a 行頭へ(ahead) [End] C-p 前行へ(previous) ↑ C-n 次行へ(next) ↓ C-p C-a C-b C-f C-e C-n
ページ移動 マウスや矢印キーなどを使わずに操作! M-< M-v C-v M-> コマンド 動き 対応キー C-v 一画面分先へ進む [PageDown] M-v 一画面分前へ戻る [PageUp] M-< ファイルの最初へ C-[Home] M-> ファイルの最後へ C-[End] M-< M-v C-v M->
カット・コピー・ペースト カット・コピー 選択領域の開始点を決定→選択領域の終了点に 移動 →切り取り・コピーのコマンドを打つ! →ペーストしたい位置で C-y コマンド 説明 C-[Space] または C-@ 領域選択の開始 C-w 選択した領域の切り取り M-w 選択した領域のコピー C-k 行のカーソル以降を切り取り C-y 貼り付け (yank) M-y C-y 後に押すと、貼り付け内容を過去にコピーした内容に変更
日本語入力 日本語の入力は C-\ から! コマンド 説明 C-\ 日本語入力 On / Off C-o 変換時文節を伸ばす C-i 文節を縮める C-f, C-b 変換する文節の移動
文字・改行コード もちろん文字コード・改行コードも変更可能! C-x [Enter] f を実行した後、メッセージの後ろに “utf-8-unix” のように入力 コマンド・入力 説明 C-x [Enter] f 文字コード・改行コードを変更する utf-8, euc-jp, sjis 日本語文字コードの候補 dos, unix, mac 改行コードの候補
文字・改行コード もちろん文字コード・改行コードも変更可能! C-x [Enter] f を実行した後、メッセージの後ろに “utf-8-unix” のように入力 S=Shift-JIS E=EUC-JP u=UTF-8 (DOS)=CR・LF (Mac)=CR : = LF
その他便利そうなコマンド コマンド 説明 C-s, C-r 文字列の検索 M-% 文字列の置換 C-x u, C-_ やり直し(Undo) C-x C-q 開いているファイルの変更禁止 C-l カーソルがある行が真ん中にくるように画面を再描画 M-x shell Emacsでシェルへの入出力を行う
その他の機能
ウィンドウの分割・結合 ひとつの Emacs のウィンドウの中で さらに複数のウィンドウに分割できる コマンド 説明 C-x 2 縦にウィンドウを分割 C-x 3 横にウィンドウを分割 C-x C-o 別のウィンドウへ移動 C-x C-b ウィンドウに表示するファイルを変更 C-x 1 今いるウィンドウだけ表示する C-x 0 今いるウィンドウを閉じる
ウィンドウの分割・結合 ひとつの Emacs のウィンドウの中で さらに複数のウィンドウに分割できる
オートセーブ・バックアップ機能 オートセーブ 自動的に一時ファイルが作成される #test.txt# のように”#”で挟まれた名前のファイル 変更を保存すれば削除される 強制終了などが起こったときにこのファイルか ら 復帰可能 バックアップ 上書き保存する際に、変更前のファイルがバッ クアップとして残される test.txt~ のように”~” が最後についたファイル
.emacs .emacs Emacs の環境設定ファイル vi(vim) で言う所の .exrc(.vimrc) 例えば こんな感じ?
追加アプリケーション Emacs に後から追加できるアプリケーション パッケージにたくさん登録されてます Debパッケージの場合は “xxx-el” という名前が多 い 例えば Mew : Emacs 上で動くメールリーダー Emacs-w3m : Emacs 上でテキストブラウザを動 かす anthy-el : Emacs のインプットメソッドを変更 yatex : コマンド補完など tex ファイルの編集を 便利に
まとめ Emacs は高機能なテキストエディタ コマンドを覚えるまでは使い辛いかもしれない が 慣れてしまえば便利な機能が多い 知識がある人はさらに使いやすいように カスタマイズが可能 基本的なコマンドは多くないので 簡単に覚えられる.......よね?
参考資料 藤原誠, 「Emacs らくらく入門」, 技術評論社 C-h r , Emacs マニュアル C-h t , Emacs チュートリアル(日本語)