2012年5月30日水曜日

法律家向けのEmacs,再び…elisp編

最近,また盛り上がってきたEmacsです(私だけですが)。

拡張elispも
書面づくりを主な仕事とする見方からは,
また,違ったものになるかとおもいます。

ちなみに,org-modeや,anythingは,もう十分書いたし,
当たり前に必要なので(!),それ以外で,役に立ちそうだ!
ものを書いていくことにします。

1. key-chord.el, space-chord.el

Emacsは,キーバインドを自分の好き勝手に変えることができます。
だが,あまりデフォルトを変えると不都合も起きるので,特に,C-なんとか,M-なんとかは,勝手に置き換えたくありません。
そこで,
文字同時押しで,呼び出せる,key-chord.el
SPACE+文字で,呼び出せる,space-chord.el
です。

いいですねえ。干渉しないので,本当に勝手に使えます。

インストールは,
M-x install-elisp-from-emacswiki
で,key-chord, or ,space-chord
で,各elが取得できます(C-c,C-c)。
(auto-installが前提になっているが,とばす!)
……………………………………………………
H240417追記
.emacs(.init.el etc)の設定は,elの中のコメントに書いているのが普通です。それを参考にします。
……………………………………………………

2. emacs-w3m(Emacs23で)
emacs上のブラウザです。
かなり早いし,検索結果を直接Emacs上で,コピペできるので,重宝します。

結構インストールに苦労しました。
Emacs23では,特殊な操作が必要になります。

http://d.hatena.ne.jp/shigemk2/20110727/1311774318
ここのやり方が最も親切だとおもいます。
Ubuntuでは,
「w3m」パッケージインストールの後に,
w3m-el-snapshot」パッケージインストールが必要になります。


追記すると,
削除されている5のところの最後,


$ cd emacs-w3m-cvs

は必要です。移ったところでコンパイルする必要があります(当たり前すぎて書いていなかったりするので,このとおりするとできないのです)。
注意点:make installは,sudo権限が必要となります(sudoをつける)。

できました!


3 migemo
インクリメンタル検索
 http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AA%E3%83%A1%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%81


ま,つまり,検索(C-s)で,語を指定しなくても勝手にしてもらう。
というものです。
日本語を含む場合は,これを使います。


3.1 マシン(!)
 仮想VirtualBox上のUbuntu11.04
 Emacs23


3.2 インストール
3.2.1
結構やっかいでした。


http://d.hatena.ne.jp/ser1zw/20100825/1282663086
ここのサイトが,最も参考になりました。
Cを使ってでのものですね。


端末(C,M t)で,入れていくのが一番簡単です。


まず,


3.2.2 subversion,nkfインストール
sudo apt-get install subversion 
sudo apt-get install nkf
ま,分からんくてもいれればいいです。私もよくわかりません。


……………………………………………………
H240417追記
Macの場合は,Xcodeが必要になります。


H240418追記
suvは,バージョン管理システム(適当),nkfは辞書(ファイルみたいなもの)ですね。ターミナル(端末)で,which nkf とかするとあれば場所が表示されます。
……………………………………………………






3.2.3 migemo インストール


つぎに,migemoを普通にインストール
sudo apt-get install migemo
早くて見るのが難しいですが,migemo.elが入ります。Emacsに使うので必要になります。ちなみにパスワードが要求されます。パスワードは普通に入力してエンターです。表示されませんがビビってはいけません。

……………………………………………………
H240417追記
Macの場合は,例えば,MacPortsを使うときは,port install 〜になります。
……………………………………………………


3.2.3 ソースダウンロード
さらに,ソースをダウンロード
http://code.google.com/p/cmigemo/downloads/list
にアクセスし,「Source Archive」から,
cmigemo-default-src-20110227.zip  
をダウンロードします。


作業フォルダを作るか(mkdir)などして,そこに移動します。
私は,Downloads中でやりました。


zip ファイルを解凍すると,
cmigemo-default-src」ディレクトリができ,この中に一式が入っております。


……………………………………………………
H240416追記
Macでもですが,wgetを使うと楽でしょうか。
……………………………………………………


3.2.4 ファイルの修正
src/wordbuf.cの12行目あたりに
#include <limits.h>

を挿入

http://d.hatena.ne.jp/ser1zw/20100825/1282663086
を参考にして,エラーが出る前に入れていますので,どうなるか分かりませんが入れました。


ちなみに,エディタでコピペして保存すればいいということになります(細かく書いておかないと分からない人も多いのではと)


……………………………………………………
H240418追記
Mac(Lion)でやったら同じエラーが出ます。同じ対処で可能です。
……………………………………………………


3.2.5 コンパイル,メイク
$ cd ~/Downloads/cmigemo-default-src 
参考リンクとは少し異なります。最初のソースに,trunkディレクトリがあったのでしょうか。
chmod u+x configure 
これも,参考リンクとは違います。いきなり,./configureをすると,許可がない・・って出ますので,権限を与えます。後は,参考リンクのとおり。 なんで急に出たのか分かりません。
$ ./configure
$ make gcc
$ cd dict
$ make utf-8
$ cd ..
sudo make gcc-install
……………………………………………………
H240416追記
makeにXcodeが必要だったり,しますが,基本的には,Macでも同じです

……………………………………………………

3.2.6 Emacs設定ファイル(.emacs等)
Emacsの.emacs設定も,参考リンクのとおりで大丈夫でした。

(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs"))
(setq migemo-dictionary "/usr/local/share/migemo/utf-8/migemo-dict")
(setq migemo-user-dictionary nil)
(setq migemo-regex-dictionary nil)
(setq migemo-coding-system 'utf-8-unix)
(load-library "migemo")
(migemo-init)


これで,評価(各C-x,C-e or C-x,C-cで終了後再起動)
して,C-sすると,migemo
と出ます。

できました!
……………………………………………………
H240522追記

4. rst-el
reStructuredText(reST)
を編集等するためのelです。
ここの記事を全面的に参考にしました。
http://d.hatena.ne.jp/ymotongpoo/20101106/1289007403

少しorg-modeに似た作りとなっています。

http://tokkyobengoshi.appspot.com/

sphinxでのサイト作成に直結します。


ショートカットが便利です。

……………………………………………………

H240530追記

5. undo-tree.el

デフォルトのundoを強化するelispです。
機能の仕方は,
ここの記事を参考に
http://what-linux.seesaa.net/article/158676846.html

ここでは,端末からgistを使ってインストールしていますが,
install.elが入っていれば,

M-x install-elisp-from-gist

を使って,インストールできます(C-c,C-c)。
gistの場合,ファイルネームを「.el」をつけてつけろ!
の指示が出ますので,指示に従い,変更します。

init.elに,

;;;; tree-undo
(when (require 'undo-tree nil t)
(global-undo-tree-mode))
を記載し,終了。

便利です。
……………………………………………………