You can read this blog in any language using google translate as follows:

Goto http://translate.google.com/
Paste URL in the box and select "Japanese for From Language" and "To Language". Then click "Translate".

English translated pages are here:
http://bit.ly/xPuXoy

你可以閱讀這個博客,在任何使用“Google”的語言翻譯

本ブログのアクセス統計: 60万アクセスを達成しました。ご訪問ありがとうございました。

60万アクセスまでの経過

2009年12月に始めた本blog。2011年7月ごろに10万アクセスを達成し、2011年12月13日には15万アクセスを達成。
その後、私も更新しておらず、アクセスは少し減りましたが、3月1日には18万アクセス。2012/4/18に20万アクセス、2012/8/21に25万アクセス、2013/1/18に30万アクセス、2013/12/17に40万アクセスを達成しました。しばらく見ていなかったら、2015/5/1に50万2584アクセスになっていました。またまた、しばらく更新しないうちに、2017/6/11に60万7197アクセスになっていました。2018/7/7 .. おお七夕 .. には63万0656アクセスになっていました。久しぶりに更新しました。

2012年1月4日水曜日

emacsをMac OS-X LionでコンパイルしてIMEを使う

Emacs23 (Cocoa Emacs) 入門から中毒まで)http://sakito.jp/emacs/emacs23.html#imeのやりかたでIMEパッチをあてる。ここのサイトはemacsについて有用な情報が満載である。

unexecが通らないので、Lionでコンパイルするには以下のパッチが必要。
http://masutaka.net/chalow/2011-07-31-2.html
上記にあるリンクをクリックしてpatchを3つ取得する。

../patch-src_unexmacosx.c.diff は、以下 --- の次の行からをこの名前のファイルにカットアンドペーストすればよい。
* src/unexmacosx.c (copy_data_segment): Also copy __got section. (Bug#8223)
---
ChangeLogにはこのpatchはちゃんと当たらないが、それは気にする必要は無い。

emacs23.3のコンパイル)
上記patchファイルをおいたdirectoryから、以下のような処理を実施する。例えばruncmd.shのような、シェルスクリプトにして、実行時に、
  ./runcmd.sh 1>&2 | tee -a make.log  
とやれば、画面に出つつlogファイルが残って便利。
#!/bin/bash -v -f
/bin/rm -rf work
curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3b.tar.gz
curl -O http://jaist.dl.sourceforge.jp/macemacsjp/47986/inline_patch-23.2-beta3.tar.gz
tar xvfz emacs-23.3b.tar.gz
tar xvfz inline_patch-23.2-beta3.tar.gz
cd emacs-23.3
patch -p0 < ../inline_patch-23.2-beta3/emacs-inline.patch
patch -p0 < ../patch-no-pie.diff
patch -p1 < ../patch-src_unexmacosx.c.diff
patch -p0 < ../patch-fix-title-bar.diff
mkdir ../work; cd ../work
../emacs-23.3/configure --with-ns --without-x
make
make bootstrap
make install
cp -r nextstep/Emacs.app /Applications/Emacs-23.3.app

これをやると、/Applications/Emacs-23.3.app ができる。
Macの場合 Emacs-23.3.appの下に必要なものが固まっている。finderの右クリック Show Application Contentsで、packageの中身 (実はUnixのdirectory)が見える。Resourcesの下に必要なリソースが詰まっている。emacsの場合には、lisp,site-lisp,infoなど必要なものがここに詰まっている。したがって、アプリを消去したくなれば、トップのEmacs-23.3.appというdirectoryを消去すれば良い。これはfinderからは、Emacs-23.3.appというアプリを消去することに見える。
なんと素直な。。

~/.bash_profile に以下の行を追加して、パスを通し、emacsの名前で、Emacsというバイナリがterminalから実行できるようにする。
export PATH=$PATH:/Applications/Emacs-23.3.app/Contents/MacOSalias emacs="Emacs"
terminalから、which emacsとやって、/Applications/Emacs-23.3.app/Contents/MacOS/Emacsを刺していることを確認する。emacsを立ち上げて、ESC-x versionで、Emacs 23.3.1と出ればOKである。

X11のwindowとしてemacsを立ち上げたくない場合には、emacs -nw を実行する。

ATOK2008を使いたい人は以下のような情報がある) 

IMEの設定)
.emacsに以下の行を入れる。
(setq default-input-method "MacOSX")
(prefer-coding-system 'utf-8)
(global-set-key "\C-j" 'toggle-input-method)
が、これでは、imput modeをUSにすることはできても、ATOKに戻すことができない。さらには、emacsが動いているかぎり、他のウインドウでもUSに強制的に戻されてしまう。
以下のようにしたらできた。
;; C-j の機能を別のキーに割り当て
(global-set-key (kbd "C-m") 'newline-and-indent)
(set-language-environment 'Japanese)

 (prefer-coding-system 'utf-8) 
(global-set-key "\C-j" 'toggle-input-method)
;; (setq default-input-method "MacOSX")
は必要なかった。

prefer...がないと、shellを動かしても、漢字のファイル名(UTF-8)が表示されない。
shellでは、^Jで仮名にはできるが、^Jでは英字に戻らない。.emacsを編集していてもそういう状態になる。

.emacsの中のストリング中の漢字が表示されないのは、"を一つ追加したり、冒頭に; を入れてコメントにすると日本語が正しく表示されるのでバグのようである。これをやっていると、^Jが効くようになったりする。この状態でshell windowにいっても^Jが正しく機能する。が、一旦他のツールのwindowに移動すると切り替えはまた効かなくなる。

表示ルーチンのバグが、英語-日本語切り替え機能にも影響しているのかもしれない。

もう少し調べてみる。

文字やフォントのカラー変更)
後日追記したいが、、
http://www.nongnu.org/color-theme/

からカラーテーマをインストールして、.emacsに以下のなどのように追加すれば良い。ここでは分かりやすくするために、-nwとX11モードで色を変えている。
;; change color themes
;; use it with: M-x color-theme
(add-to-list 'load-path (concat homepath "lib/emacs/color-theme"))
(require 'color-theme)
(eval-after-load "color-theme"
  '(progn
     (color-theme-initialize)
     (if window-system
         (color-theme-subtle-hacker)
       (color-theme-hober))))
使い方については、以下にも解説がある。
http://www.emacswiki.org/emacs/ColorTheme#DoReMiColorThemes

以下では、windowモードの場合に、初期のwindowサイズと、ウィンドウの透過度も設定している。半透明にしておくと下が透けて見えて便利である。半透明化は、Macの通常のターミナルウィンドウでも設定が可能だが、emacsの場合には、activeとnon activeで透明度が変えられる。
(eval-after-load "color-theme"                                                                                                      
 

  '(progn                                                                                                                                  (color-theme-initialize)                                                                                                              (if window-system                                                                                                              
 

         (progn                                                                                                                                  (color-theme-subtle-hacker)                                                                                                           (add-to-list                                                                                                                           'default-frame-alist                                                                                                    
            '(alpha . (95 80))) ;; (alpha . ( ))                                                    
           (setq default-frame-alist                                                                                                                   (append                                                                                                                                '((width . 100) (height . 40))                                                                                    
                  default-frame-alist)))                                                                                                         (color-theme-hober))))                                                                                                     
これらについては、以下に解説がある。http://macwiki.sourceforge.jp/wiki/index.php/MacOSX_WorkShop/dot_emacs_el




blog comments powered by Disqus