tokyo-emacs行ってきたよ

id:hayamiz先生主催のtokyo-emacsに参加してきました。便利なemacs lispをたくさん知ることにより、またEmacsをすばらしく使いこなしてる方々のデモを拝見して刺激を受ける事によりEmacsの世界が開け、コピペ厨からは早く脱却しなければというモチベーションを高めることができました。

以下、当日のメモをもとに具体的な内容などに触れます。内容に間違いがあったら見逃すかこっそり正しいことを教えてくださると助かります。

.emacsコピペ厨のためのEmacs lisp講座

Emacs Lispは怖くない
括弧は空気
EmacsのことはEmacsに聞け
  • M-x helpでヘルプ一覧表示
  • C-h <何か>で個別のヘルプ。C-h v で変数、C-h fで定義されている関数など。
  • aproposは便利(M-x apropos、C-h aなど)
Lispは単純
  • (<何か> <引数1> <引数2> ...)
LISTがすべて
  • '(1 2 3), (list 1 2 3), (cons 1 '(2 3))
  • ドット対(cons 'a 'b) => (a . b)
  • 連想リスト(associative list略してalist)(cons key value) => (key . value)
  • alistの各要素はlistじゃだめなん?→cdrでvalue取り出せないから不便ね
  • .emacsにおけるidiom→(setq auto-mode-alist (cons "\\.rb$" ruby-mode) auto-mode-alist)
  • それadd-to-listでできるよ(add-to-list 'auto-mode-alist '("\\.rb$" ruby-mode))

便利なelisp紹介

files.el
  • C-x C-fのなかのひと 1600行くらいある。C-h k C-x C-fでヘルプからfiles.elの中身にジャンプ。
  • auto-mode-alistの他にもinterpreter-mode-alist(shebang lineをチェック)、magic-mode-alist(マジックコメントをチェック)などががんばって必死こいて使用すべきモードの判別をやっているよ!
moz.el
  • mozillaEmacs間でtelnet通信
  • Webコンテンツの編集を保存すると同時にブラウザをリロードする、と言ったことができてしまう
  • mozplus.elというのもあるよ。
pabbrev.el
  • 略語の動的な登録と動的な呼び出し
  • abbrev.elやdabbrev.elなどよりも動的
鬼軍曹.el
  • カーソルキーやbackspaceを使うと叱ってくれる鬼軍曹をemacsに召喚する
  • 実装はシンプルで、ソースがマイナーモードを作るための参考になるかも。
sense-region.el
  • 矩形選択をよりやりやすくする
wdired.el
  • dired中でファイルのリネームができる
yasnippet.el
  • お手軽なcode snippetの挿入。
  • snippet.elはS式で補完内容を定義するので難しいがyasnippet.elはもっと簡単に定義ファイルを書ける
color-theme.el
  • カラーリングのテーマをマネジメントする。
  • 英語に負けずGNU Emacs Lisp Manualを嫁
  • 自分でtheme作りたかったら他のをパクる事から始めよう
  • ちなみに、私はEmacsの背景は白、文字が黒派です…。デフォルトのカラーリングはあまり好きではない。
anything.el
  • とてもすごそうだけどすごさがいまいちつかめてません><
yatex.el+reftex.el
  • LaTeX使わない人は右上のかがみんでお楽しみください
  • reftexは(私にとって)初耳。equation、figureやtable、sectionなどのlabelとそのrefの対応をサポート。アウトライナーとしての役割もある。

空いた時間で追加発表

小指の鍛え方(jj1bdxさん)
  • GRIPMASTERで鍛えよ。もとはギタリストのためのもの。楽器屋さんで売ってる
id:IMAKADOさんによる.emacsの紹介
  • コピペ厨の私などは見ていて恥ずかしくなる程のカスタマイズぶり。半分くらいよくわかりませんでした><


第2回以降も開いていくとのこと。また楽しみにしてます。
最後に、イベント主催のid:hayamiz先生と会場をお貸しくださったミラクリナックス吉岡さん、どうもおつかれさまでした&ありがとうございました。