Kamuycikap - SentenceDataBase

日々の勉強の記録を気分で書き綴るブログ

EmacsLispを触るときの予備知識

EmacsLispをいじり回すための知識

新規ファイルの作り方

1.C-x bとして、空ファイルを作成し、ファイル名を適当にxとかにしておく
2.C-x C-sとしてファイル名をつけて保存。

作成したプログラムの保存について

完成したプログラムを保存する時は
1.ファイルの拡張子を.elにする
2.ファイルの1行目を
 ;;;ファイル名 --- 説明文
 と記述する
3.タイトルとコピーライトメッセージを書いておく

Lispプログラムの評価方法

1.M-x load-fileで作成したファイルを読み込む
2.C-x C-fでファイルを開いてから、M-x eval-current-bufferを実行する
3.M-x lisp-interaction-modeとしておくか、M-x emacs-lisp-modeを実行

1はすでに完成したプログラムをロードする場合
2は継続してプログラムの修正を行う場合の方法として有効
3はLispプログラミング(編集)を行うときのモードとして必須

Lispプログラムの実行方法

Lisp関数やプログラムを実行する為には、あらかじめ関数やファイルを評価している必要がある。
(手順「Lispプログラムの評価方法」を参照)

M-x lisp-interaction-modeとしておくか、M-x emacs-lisp-modeとして評価しておき、関数の閉じ括弧「)」の後ろにカーソルを持ってきて、C-jとする。
または、M-C-xやC-x C-eを実行。

知らない関数の調べ方

setqと言う関数について調べたい場合は

C-h f setq

とコマンド入力。
基本的には英語の説明文になるが・・・・中学英語で頑張れる

知らない変数の調べ方

scroll-stepと言う変数について調べたい場合は

C-h v scroll-step

とコマンド入力。
基本的には英語の説明文になるが・・・・中学英語で頑張れる

こんな機能の関数あるかなぁ〜?と言った場合の関数の探し方

例えば・・・setqを使って変数の値を設定することで実現できそうな機能があるが、設定するべき設定が何なのかわからない場合、aproposコマンドを利用すると解決できるかもしれない。

<例:エディタ画面上の上端/下端を越えた場合、何行スクロールさせるか?>
コマンドaproposは引数として渡した正規表現にマッチするような記号列を名前に含む関数や変数を探してくれるコマンドなので、関係ありそうなscrollだとかcursorだとかで検索してみる

M-x apropos cursor\|scroll

すると、*Apropos*と言う名前のバッファが開いて、検索結果が画面に表示される。
表示された内容についてC-i等の検索コマンドを利用してみたり、少しずつしたにスクロールしながらみたりすれば・・・
scroll-stepなる変数を見つけることができて、その行でとすれば、詳しい説明を見ることができる。

この方法は、英語的な感覚(ボキャブラリ)が必要になるが、この方法が一番早い気がする。

キーバインドの一覧表示

M-x describe-bindings

特定のキーのバインド調査

M-x describe-key
この入力の後、調査したいキー操作を行う。
実際に呼び出されている関数を調査することが出来る。

Lispプログラミング時に利用するモード

下記2つのモードのどちらかで問題なくEmacsLispを編集できる。
M-x lisp-interaction-mode
M-x emacs-lisp-mode