Skip to content

Instantly share code, notes, and snippets.

@sambatriste
Last active September 20, 2018 01:22
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sambatriste/c89f273faaec5a0e60c58f58066abaf9 to your computer and use it in GitHub Desktop.
Save sambatriste/c89f273faaec5a0e60c58f58066abaf9 to your computer and use it in GitHub Desktop.
how-to-start-emacs

レッツ入信!Emacsをはじめよう!

https://stallman.org/graphics/saint-button.png

時に、汝ら問いて曰く、「Emacs教会に身を置きながら、viなるテキストエディターを使うことは罪なるか」と。 いかにも、vi vi viは獣の数字なるが、自由な実装のviを使いたるときは、罪ならず。そは贖罪なり。

Saint IGNUcius (aka R.M.S)

https://coubsecure-s.akamaihd.net/get/b15/p/coub/simple/cw_timeline_pic/306833db7dd/b94517e7e3947da4c3057/med_1411642359_1402568277_image.jpg

はじめに

自己紹介

  • Emacs歴18年(かなりブランクあり!)

Emacsとの出会い

おじさんなら知ってる?こんなemacsenたち。

  • mule (on Solaris)
  • nemacs (on SunOS!!)

など。

  • telnet(sshじゃない)してEmacsを使わないと仕事できなかった。
  • ほんとはVisualStudioを使う同僚が羨ましくてしょうがなかった。

よいところ

すべてがバッファである。

例:Emacsで出力した結果をEmacsで検索

  • eshellの出力結果をoccur
  • eshellの出力結果をdabbrev
  • grepした結果のバッファをマクロで編集

Lisp系はさすがに書きやすい

ClojureでもCommon Lispでも同じような使用感。

  • auto-complete
    • 最近はcompany-modeなのか?
  • paredit-mode
  • rainbow-delimiters-mode

お気に入り機能

org-mode

  • アウトライン・プロセッサ兼タスク管理兼 …
    • Emacs最大のメジャーモード。
  • Githubも*.orgを認識してくれます!
    • このファイルもorg-modeで書きました。
    • maven3-tutorial もこれで書きました。
  • 文芸的プログラミング

実はReStructuredTextもすごく書きやすい!

eshell

  • Emacs Lispで実装されたシェル
    • Windows, Mac, Linuxどこでも変わらない使い心地
    • 特にWindowsで活躍!

余談:Windowsのシェル

http://www.nyaos.org/index.cgi?p=FrontPage.ja

migemo

  • ローマ字でインクリメンタルサーチ
  • vimやサクラエディタでも使えるらしいので、まだの人は是非!

moccur-grep-find

  • grep, findしてくれるやつ
  • Windowsで特にコマンド(agとか)入れてなくても使えるので便利

Emacsのはじめかた

バイナリは?

Windows

あんまりいいバイナリがない。

  • CygwinやGNUPACKはやめといたほうがいい
  • Windowsでmakeの環境作るのはつらい

64bitならこれでいいかと。 https://github.com/chuntaro/NTEmacs64

Mac

  • Homebrewでいいかと。

Linux

  • なんでもいい
  • makeしてもよし!

キーバインドムズくない?

基本キーバインドを覚えるとMacやbashでも幸せになれる。 モードレスなので他のエディタやIDEでもそんなに辛くない。

基本操作

  • (help-with-tutorial)
  • (help-with-tutorial-spec-language)

キーバインドをあんまり覚えない

  • よく使うやつは勝手に覚える
  • 使わないやつは忘れる

パレートの法則

インタラクティブ関数の名前を覚える

  • Emacsでは全ての操作が関数
    • C-f は forward-char関数、C-p はprevious-line関数
  • M-x を使う
    • 補完が効くのでだいたいでよい(helm-M-x)
    • prefixを覚えておく(モード名)
  • どのキーバインドに割り当てられているか調べる(describe-function)
  • メニューバーを見る(メニューバーを消さない!)
    • マウスを使ってよい

IntelliJでもこの技使えるよ!(Find Action)

小指が痛くなるのでは?

  • CAPSと入れ替える
  • 小指の付け根で押す
    • ホームポジションを崩さず、左小指も使える
    • 左下にCtrlがないHHKは使えなくなる
      • ぼくはRealForce党の等荷重派!(91UDK-G)

はなす

./c89f273faaec5a0e60c58f58066abaf9/raw/689e00c45a1536f4f3b78124d348625e8c0a7f5f/up.jpg

おす

./c89f273faaec5a0e60c58f58066abaf9/raw/689e00c45a1536f4f3b78124d348625e8c0a7f5f/down.jpg

※写真のキーボードはsiosioさんにもらったRealforce!!

設定・カスタマイズがたいへんそう?

  • Yes, it is!
  • 初期状態のEmacsはかなりつらい。
  • できれば身近に使っている人に聞けるというのが最も望ましい。

周りの人のinit.elをもらう

身近にEmacsユーザがいればこれがベストと思われる。

デフォルト設定がされているやつを使う

ほかにもあるが、できては更新が止まったりする。。。 (結局自分で設定するしか無いのかも?)

本を読む

  • まとまって勉強するには本が効率よいが、Emacsの知識は割と陳腐化が早い。
    • Eclipseより辛いかも
  • 下2つは当時はかなり参考になったのだが、今見るとやはり古くなっている。
    • Emacsはpackage管理方法がまだ落ち着いていない。
    • 本に書いてある手順でやってもうまくいかないかも。
書籍名コメント
入門GNU Emacs何も持ってないならいいかも。
Emacs実践入門少し古いがなんとか。
Emacsテクニックバイブルかなり古くなってしまった。厳しい(使える箇所もある)。

あと、Software DesignがちょくちょくVim&Emacsの特集をやってる。

ネットで調べる

  • QiitaのEmacsタグをウォッチする。
    • Emacs Advent Calendarも見ておく。
  • るびきち「日刊Emacs」 をウォッチする。
  • Github等で人の設定ファイル(init.el)をパクる。

ドットインストールにもEmacs入門があった!

Clojureが書きたいだけなんだけど。。。

Clojureが書きたいだけなら、ayato-pさんのQiita記事をパクるのがよい(すごくわかりやすい)。

ぼくは正直 Cursive もいいと思います!

  • 商用利用には有料ライセンスが必要です!
  • 無理してEmacs覚えるより$99払うのもアリ!

モバイルEmacs

  • どうしてもEmacsを持ち歩きたい!
    • モバイルPCは1kg以下でないと厳しい
  • ぼくはASUS Chromebook C100PAを使ってます!
    • 35,000〜40,000円くらい?
      • poorman’s Macbook Air
  • ChromebookはLinuxベースで割といじりやすい
    • Andriodよりガードがゆるい
    • chrootする(crouton)

./c89f273faaec5a0e60c58f58066abaf9/raw/689e00c45a1536f4f3b78124d348625e8c0a7f5f/emacs-on-chromebook.jpg

Emacsのいいところ?

正直設定がたいへんだし、人様にも実は積極的にお勧めしにくい。。。

が、それを補って余りある魅力あります!

百年エディタ

他のエディタやIDEなどが今後どうなるかわかりませんが、Emacsは一生使えると思います。 自分でも一番最後まで使うソフトはEmacsな気がしています。

奥行き

最近、WindowsとかEclipseとかでなにか新しい技を覚えましたか? 使いやすいように設定を変えたり足したりしましたか?

Emacsは世界中のハッカーが使っています。 こんなことできないかなーと思ってググるとだいたいヒットします。 考えもしなかったelispを書く人がいます。

Emacsで何かできないとしたらそれはEmacsのせいではなく 自分の力量が不足しているということになります。

Emacsはいつまでも勉強しようという気にさせてくれます。

しかしEmacsにはそれ以上のものがある。 Emacsには名のない資質があるのだ。

Steve Yegge

そして、デスマ中とかにウダウダしたいとき、init.elをいじるのは最高です!

バッドノウハウと「奥が深い症候群」

http://0xcc.net/misc/bad-knowhow.html

バッドノウハウは、ソフトウェアの複雑怪奇な仕様が歴史的に引きずられ、根本的な改善は行われないまま、そのノウハウが文書によって受け継がれることによって蓄積が進行する。Unix上で広く使われているツールとしてはTeX, Emacs, sendmail, bind, perl, gnuplot, procmail などは、役に立つツールであると同時に、その複雑怪奇な仕様によって長年に渡ってユーザを苦しめ続け、バッドノウハウの温床として悪名が名高い。こうしたツールに関する書籍やWeb上の情報などの充実は、バッドノウハウが文書によって受け継がれていくという性質をよく表しているといえる。

バッドノウハウがはびこる大きな理由は、ソフトウェアの開発者に 使いやすさに対するセンスを欠如していたり、場当たり的な機能拡 張が度重なって行われたり、単に開発の手を抜くために実装が楽な ように仕様を決めてしまうといったところにあるが、別の理由によ るものも根深いと私は考えている。それは、そういった使いにくい ソフトウェアを使いこなす事に対して、「奥が深い」といって喜び を見出す「奥が深い症候群」によるものである。

豆知識

ポール・グレアムはEmacsを使っていない。 http://www.paulgraham.com/pfaq.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment