tasuwo blog

Emacsについて 01

| Comments

Emacsを使おうと思うので,調べたこととやったことをメモする.

1. 環境

使用環境は以下.

  • Mac OS X Yosemite 10.10.1

2. 関連知識

2.1 基本コマンド

使いそうなコマンドをメモしておく1 2.何か不便に感じた時はそれを実現するコマンドがないかその都度調べる.

  • C-:コントロールキー(Ctrl)
  • M-:メタキー(Alt,Esc.Altは長押し.Escは1回押し.)

2.1.1 とりあえず

key desc notes
C-g コマンド中断 困った時に

2.1.2 移動

key desc notes
C-u 上
C-n
C-u
C-f Forward
C-b Back
M-f 1単語次
M-b 1単語前
C-e 行末 Endのe
C-a 行頭 ABC…のa
C-v 次ページ
M-v 前ページ
M-< ファイル先頭
M-> ファイル末尾
M-g g 任意の行へ移動

2.1.3 操作

key desc notes
C-d delete
C-h back space
M-d 1単語delete
M-BS 1単語back space
C-k 行末まで削除
C-d カーソル位置の文字を削除
C-space 領域始点
M-w 領域コピー
C-w 領域カット
C-y 貼り付け

2.1.4 その他

key desc notes
C-s 前方検索
C-r 後方検索
C-x num ウインドウ分割
C-x o ウインドウ移動

2.2 初期化

初期化について.
Emacsの起動時に設定等の初期化が行われるはずなので,どういう仕組みで行われているのかを調べてメモしておく.とりあえず,Emacsの公式ドキュメント3を読む.

初期化に用いられるファイル

Emacsは,最初にLispプログラムを読み込んで初期化する4 5

  • 個人用
    • ~/.emacs( ~/.emacs.el )
    • ~/.emacs.d/init.el
  • サイト用(PC毎,全ユーザ共通)
    • default.el
    • site-start.el

初期化の順序

  1. サイト設定(site-start.el)
  2. 個人設定(.emacs等)
    1. $HOMEから~/.emacs(~/.emacs.el)を探索
      1. 見つけた場合,読み込む
      2. 見つからなかった場合,~/.emacs.d/init.elを探索し,読み込む
  3. デフォルト設定(default.el)

読みこみたくない場合は-p,他のユーザの初期化ファイルを読み込みたい場合は-uをオプションとして指定する.また,個人設定でinhibit-default-init nilと指定すると,default.elは読み込まれない.-no-site-fileオプションを指定すると,site-start.elは読み込まれない.
サイト設定とデフォルト設定は,Emacsがライブラリを読み込みに行くパス内(load-path)に存在すれば読み込まれる.

各初期化ファイルの記述目的

参考サイト6より.

設定 記述目的
サイト設定 Emacs環境を用意した担当者が,標準的なものを設定
個人設定 個人用の設定
デフォルト設定 個人設定がない場合,あるいは使うとしたらコレ,という設定

設定の記述方法は別項で説明する.

Emacs の基本設定

2.3 ライブラリ

Emacsが読み込むライブラリについて触れる7 8.Lispコードを含むファイルをライブラリ(Library)と呼ぶ.基本的にEmacs Lispで書く(拡張子は.el).
Emacs Lispファイルはバイトコード(拡張子は.elc)にコンパイルされる.バイトコードはEmacs Lispファイルと比較してロードも実行も早く,容量も小さい.

ライブラリのロード

ロードを行うと,対象ファイル内の全ての式が評価され,設定が反映される.ロードはEmacs起動後に以下のコマンドで実行可能.

1
M-x load-file filename

ライブラリの探索

  1. filename.elcを探す.
  2. filename.elを探す.
  3. filenameを探す.

対象ファイルを見つけた時点でロードし,見つからなかった場合はエラーとなる.

2.4 load path

load path を用いたライブラリのロード

load pathが定義されており,以下のコマンドを実行すればload path内のディレクトリが全て探索される.同名の.el.elcがあった場合,.elcが実行される.

1
M-x load-library

load path のデフォルト値

load pathは変数load-pathとして定義されている.探索対象のディレクトリがリスト構造で格納されている.
環境変数EMACSLOADPATHが設定されていれば,その値で初期化される.もしくは,emacs/src/paths.hに指定されたデフォルト値になる.

load path へのパスの追加

自作ライブラリ等が別のフォルダにある場合は,load pathに追加する.パスを追加する方法をいくつかあげる.

  1. cshの場合,.loginファイルに設定する
1
setenv EMACSLOADPATH .:/user/bil/emacs:/usr/lib/emacs/lisp
  1. shの場合
1
2
export EMACSLOADPATH
EMACSLOADPATH=.:/user/bil/emacs:/usr/local/lib/emacs/lisp
  1. .emacsファイルに設定する
1
2
3
4
5
6
7
8
9
;; これとか
(setq load-path
      (append (list nil "/user/bil/emacs"
                    "/usr/local/lisplib"
                    "~/emacs")
              load-path))

;; これとか
(add-to-list 'load-path "/path/to/my/lisp/library")

2.5 scratchバッファ

scratchバッファは,Emacs Lisp の実行環境であり,Emacs の設定を試し書きできる場所.以下で起動できる9

1
C-x b *scratch*

C-jで式を評価できる.
C-h fで関数のヘルプが見れる.
C-h vで変数の値が見れる.

3. やったこと

満を持して,色々やっていく.
まずは,とりあえずやりたいことをまとめる.

  • Markdownをかけるようにして,さくっとブログを更新したい.
  • カラースキームの設定をしたい.

満を持してといいつつ,今回は何もしていない.
次回に持ち越し.

3.1 最新版インストール

MacにはEmacsがデフォルトで入っている.

1
2
3
4
5
6
7
$ emacs version
GNU Emacs 22.1.1
Copyright (C) 2007 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

最新ではないので,最新版をいれる10 11 12

1
$ brew install emacs --cocoa

/Applications/にシンボリックリンクを貼る.

1
$ brew linkapps

確認.

1
2
3
4
5
6
7
$ emacs version
GNU Emacs 24.4.1
Copyright (C) 2014 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

インストールできた.

4. 次回やること

感想.Lispの勉強になりそう.エディターは使いこなすまでやってなんぼだと思っているので積極的に使っていく.
今回はほぼ何もしてないので,次回はパッケージ管理辺りを調べながら,具体的に色々設定していきたいと思う.

参考文献

  1. Emacsのキーボードショートカット一覧
  2. GNUEmacs の学習
  3. The Emacs Editor
  4. 49.4.4 How Emacs Finds Your Init File
  5. 16. `.emacs' ファイル
  6. Ubuntu の site-start.el
  7. 27.8 Libraries of Lisp Code for Emacs
  8. 13.1 プログラムでロードする方法
  9. うわっ…私のEmacs、使いにくすぎ?だったら…カスタマイズシヤッセー!!ダァダァシエリイェッスッシェーショーヘイヘイ!!!
  10. HomebrewでEmacsをインストール。
  11. Macでemacsを設定しよう
  12. Macで本家EmacsとHomebrew IMEパッチ版とEmacs Mac PortとAquamacsを比べてみる。

Comments