2010/12/07

Emacs初心者が Emacs Starter Kit(org-mode仕様)を利用して設定済みEmacsを起動させるまでのメモ

「Emacsのtips的なもの」に戻る


テスト環境

OS: Ubuntu10.10
GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0)


はじめに

今のEmacsの設定を見直すために org-mode仕様の Emacs Starter Kit を使おうと思ったので、
eschulte / emacs-starter-kit をとってきて、起動させるまでのメモ書きです。

Emacsの設定というよりは、gitの練習になってしまっていますが、最低ラインにEmacsを起動させるまでの過程を書いています。


インストール


■必要なもの
$ sudo aptitude install emacs texinfo git-core git-svn

texinfoはmakeinfoするために必要です。

emacsの設定ファイルを置くディレクトリをhomeディレクトリにつくっておく。

$ mkdir .emacs.d && cd .emacs.d

Emacs Starter Kitをgitを使ってとってくる。[1]

$ (emacs.d) git clone https://github.com/eschulte/emacs-starter-kit.git .


Resolving deltas: 100% (1325/1325), done.

$ (emacs.d) git:(master) ls
COPYING             starter-kit-bindings.org   starter-kit-lisp.org
README              starter-kit-defuns.org     starter-kit-misc.org
dominating-file.el  starter-kit-elpa.org       starter-kit-org.org
elpa/               starter-kit-eshell.org     starter-kit-perl.org
elpa-to-submit/     starter-kit-gnus-imap.org  starter-kit-python.org
eshell/             starter-kit-gnus-pop.org   starter-kit-registers.org
init.el             starter-kit-gnus.org       starter-kit-ruby.org
package.el          starter-kit-haskell.org    starter-kit-yasnippet.org
snippets/           starter-kit-js.org         starter-kit.org
src/                starter-kit-latex.org

.elファイルは init.el と package.el しかない。

とりあえず、自分のbranchをつくる。

$ (emacs.d) git:(master) git checkout -b hazimarino

Switched to branch 'hazimarino'

.gitignoreを変更する。

## exported files
#*el
starter-kit*el

## ignore packages held in the src directory
#src
この2つを変更した。

$ (emacs.d) git:(hazimarino) git commit -am ".gitignoreを変更"

一度、起動してみる。

$ (emacs.d) git:(hazimarino) emacs &


Warningが出る。
設定ファイルを読んでみる必要があるようだ。

.gitmodulesを読んでみる。
[submodule "src/org"]
        path = src/org
        url = http://repo.or.cz/r/org-mode.git
[submodule "src/magit"]
        path = src/magit
        url = http://git.gitorious.org/magit/mainline.git
[submodule "snippets/text-mode/org-mode"]
        path = snippets/text-mode/org-mode
        url = http://github.com/eschulte/yasnippet-org-mode.git
[submodule "src/auctex"]
        path = src/auctex
        url = http://github.com/eschulte/auctex.git
必要なものは org-mode magit auctex yasnippet-org-mode だと思う。

yasnippetなんたらが必要なら、yasnippetがいるはずだと思い。grepで設定を探してみる。
#+begin_src emacs-lisp
  (add-to-list 'load-path
               (expand-file-name  "yasnippet"
                                  (expand-file-name "src"
                                                    dotfiles-dir)))
  (require 'yasnippet)
  (yas/initialize)
#+end_src
starter-kit.orgにpathを通す設定が書かれているのでやはり、yasnippetは必要みたいだ。

とりあえず、必要なsubmoduleをとってくる。

$ (emacs.d) git:(hazimarino) git submodule init && git submodule update

これで、空だったディレクトリが埋まりました。

submoduleのブランチが空になっているので切り替える

$ (emacs.d) git:(hazimarino) cd snippets/text-mode/org-mode && git checkout master

$ (emacs.d/snippets/text-mode/org-mode) git:(master) cd ~/.emacs.d

$ (emacs.d) git:(hazimarino) cd src/org && git checkout master

$ (emacs.d/src/org) git:(master) cd ../magit && git checkout master

$ (emacs.d/src/magit) git:(master) cd ../auctex && git checkout master

$ (emacs.d/src/magit) git:(master) cd ../
$ (emacs.d/src) git:(master) git add magit org
$ (emacs.d/src) git:(master) git commit -m "空のbranchをmasterに切り替えた"

org-modeはmakeしないと、org-install.elが生成されないので、ちゃんとmakeしておく。

$ (emacs.d) git:(hazimarino) cd src/org/
$ (emacs.d/src/org) make && make doc


Wrote /home/iyori/.emacs.d/src/org/lisp/org-install.elc

これでorg-install.elが作成されました。

$ (emacs.d/src/org) ls lisp/ | grep org-install

org-install.el
org-install.elc

$ (emacs.d/src/org) cd ..

yasnippet.elをもってくる。

$ (emacs.d) git:(hazimarino) mkdir yasnippet && cd yasnippet
$ (emacs.d/src/yasnippet) git:(hazimarino) git svn clone http://yasnippet.googlecode.com/svn/trunk/ .

最新の状態に保つためには


$ (emacs.d/src/yasnippet) git:(master) git svn rebase

とするといい。

Feed: http://code.google.com/feeds/p/yasnippet/svnchanges/basic


$ (emacs.d/src/yasnippet) git:(hazimarino) cd ..
$ (emacs.d/src) git:(hazimarino) git add yasnippet
$ (emacs.d/src) git:(hazimarino) git commit -m "yasnippetを追加"

この状態で起動してみる。

$ (emacs.d/src) git:(hazimarino) cd ..
$ (emacs.d) git:(hazimarino) emacs &

Leaving directory `/home/iyori/.emacs.d/elpa/yasnippet-bundle-0.6.1'

Compiling file /home/iyori/.emacs.d/elpa/yasnippet-bundle-0.6.1/yasnippet-bundle-pkg.el at Mon Dec 6 20:19:15 2010
Entering directory `/home/iyori/.emacs.d/elpa/yasnippet-bundle-0.6.1/'

Compiling file /home/iyori/.emacs.d/elpa/yasnippet-bundle-0.6.1/yasnippet-bundle.el at Mon Dec 6 20:19:15 2010

In yas/minor-mode:
yasnippet-bundle.el:738:38:Warning: reference to free variable
`yas/snippet-tables'

In yas/define-snippets:
yasnippet-bundle.el:1605:8:Warning: function `yas/define-snippets' defined
multiple times in this file

In yas/indent:
yasnippet-bundle.el:3174:34:Warning: reference to free variable `column'

In end of data:
yasnippet-bundle.el:4460:1:Warning: the function `yas/define-snippets' is not
known to be defined.

Compiling no file at Mon Dec 6 20:19:17 2010
Leaving directory `/home/iyori/.emacs.d/elpa/gist-0.5'

Compiling file /home/iyori/.emacs.d/elpa/gist-0.5/gist-pkg.el at Mon Dec 6 20:19:17 2010
Entering directory `/home/iyori/.emacs.d/elpa/gist-0.5/'

Compiling file /home/iyori/.emacs.d/elpa/gist-0.5/gist.el at Mon Dec 6 20:19:17 2010

Compiling no file at Mon Dec 6 20:19:19 2010
Leaving directory `/home/iyori/.emacs.d/elpa/paredit-22'

Compiling file /home/iyori/.emacs.d/elpa/paredit-22/paredit-pkg.el at Mon Dec 6 20:19:19 2010
Entering directory `/home/iyori/.emacs.d/elpa/paredit-22/'

Compiling file /home/iyori/.emacs.d/elpa/paredit-22/paredit.el at Mon Dec 6 20:19:19 2010

Compiling no file at Mon Dec 6 20:19:19 2010

なんだかすごくWarningが出てるみたいだけど、気にしない。
これは後から修正する。

C-x C-c で終了させる。

$ (emacs.d) git:(hazimarino) ls
COPYING                   starter-kit-defuns.org     starter-kit-misc.org
README                    starter-kit-elpa.el        starter-kit-org.el
auto-save-list/           starter-kit-elpa.org       starter-kit-org.org
backups/                  starter-kit-eshell.el      starter-kit-perl.el
dominating-file.el        starter-kit-eshell.org     starter-kit-perl.org
elpa/                     starter-kit-gnus-imap.org  starter-kit-python.el
elpa-to-submit/           starter-kit-gnus-pop.org   starter-kit-python.org
eshell/                   starter-kit-gnus.org       starter-kit-registers.el
init.el                   starter-kit-haskell.el     starter-kit-registers.org
package.el                starter-kit-haskell.org    starter-kit-ruby.el
places                    starter-kit-js.el          starter-kit-ruby.org
snippets/                 starter-kit-js.org         starter-kit-yasnippet.org
src/                      starter-kit-latex.org      starter-kit.el
starter-kit-bindings.el   starter-kit-lisp.el        starter-kit.org
starter-kit-bindings.org  starter-kit-lisp.org
starter-kit-defuns.el     starter-kit-misc.el

おお! 見事に、.elファイルが生成されている!!

もう一度起動。

$ (emacs.d) git:(hazimarino) emacs &

無事に、起動した。


あとは、この設定をもとに自分好みに拡張していきます。

Emacs Starter Kit の 解説はまた次の機会に。



■脚注
[1] cygwinな方で、下記のようなエラーが出る場合、
$ (emacs.d) git clone https://github.com/eschulte/emacs-starter-kit.git .
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/eschulte/emacs-starter-kit.git/info/refs

fatal: HTTP request failed

応急処置として、証明書のチェックしないように設定するといいかもしれません。
$ (emacs.d) git config --global http.sslVerify false

もっといい方法があればいいんですが……

■引用
<s>gnarl,</s>技術メモ”’<marquee><textarea>¥- http://d.hatena.ne.jp/gnarl/20101105

2010/12/05

ポジションペーパーというものを書いてみた

生まれてはじめてポジションペーパーというものを書いてみたので、メモがわりにプログに
載せておこうと思います。

■ポジションペーパーとは
  • ポジションペーパとは「立場表明書」を意味する。
  • 参加者各自が現在の自分の立場をA4一枚にまとめ、配付する。
  • それぞれが5分づつ、そのペーパーを元に発表を行う。
  • 参加する全員が配付し、発表することが重要。あらかじめ人数分コピーする。


ということらしいです。

今回はEmacs勉強会ということで、

  • 自己紹介
  • 使っているエディタ
  • 使っているエディタの主な用途
    (できれば、使っているところを実演してもらえると嬉しいです)
  • 使っているエディタで便利だと思う機能
  • 使っているエディタで嫌いなところ
  • 今回議論したいこと

を書いてきてくださいと丁寧に説明がありました。
事前に書く項目をあげてくださったので、とても書きやすくて助かりました。

ということで、以下が自分の作成したポジションペーパーです。


このようなものでよかったのかはわかりません、、、

自分の不勉強と知識のなさに差し含みそうになりましたが、
もっともっと勉強して、プログラムを楽しみたいなと思える勉強会でした。

Emacsはやっぱりいいエディタです。
勉強会で紹介されたelispなどはのちのち紹介したいと思います。