2009年1月26日
AUCTEX で dvipdfmx と Preview.app を起動
Mac の Carbon Emacs Package で auctex を使っている。dvi にした後で dvipdfmx で PDF に変換し、プレビューで確認・印刷をするが、この部分も C-c C-c で起動できるようにした。
M-x customize-option TeX-command-list を実行。適当な位置で INS をクリックし、次のようなエントリを作る。
INS DEL Name: DVI to PDF
Command: dvipdfmx %s
How: Value Menu TeX-run-command
Create a process for NAME using COMMAND to process FILE. More
Prompt: Toggle off (nil)
Modes: Value Menu All
Menu elements:
INS
INS DEL Name: Preview
Command: open -a Preview.app %s.pdf
How: Value Menu TeX-run-command
Create a process for NAME using COMMAND to process FILE. More
Prompt: Toggle off (nil)
Modes: Value Menu All
Menu elements:
INS
Save for Future Sessions をクリックして保存する。
投稿者 hattori : 19:45 | コメント (0) | トラックバック
2008年7月12日
Thunderbird と Carbon Emacs Package
Thunderbird でメールを書く時に好きなエディタを使えるようにする external editor という拡張がある。これで Carbon Emacs Package を使うには、アドオンの設定でテキストエディタを次のように指定する。
/Applications/Emacs.app/Contents/MacOS/bin/emacsclient
実際に編集する時は、Emacs が動いていて M-x server-start が実行された状態でなければならない。Emacs を自動的に起動する方法もあるようだが、私は Emacs はほとんど常に立ち上げているので、~/.emacs に (server-start) を書いておけば、まあいいだろう。
追記:時々 Thunderbird が emacsclient の終了を検知しない(emacsclient がゾンビになる)で、作成ウィンドウが閉じられなくなるという現象が起きる。次のメールの emacsclient を起動すると、前のメールの終了が検知されて送信できるので、一つずつずらしながら送信して、最後にダミーメールの編集をすればうまくいく(場合もある)。うまくいかない場合はしょうがないので、書いたメールを /tmp から救出する。
投稿者 hattori : 18:22 | コメント (0) | トラックバック
2008年5月27日
.mailcap で Preview.app を起動
Wanderlust などで PDF を読む時は、.mailcap に Preview.app を起動するように書いておけばいいが、open コマンドがすぐに終了してしまうため、Preview.app が実際にファイルを読みに行く前にテンポラリファイルが消されてしまうことがある。それを防ぐには、open コマンドの実行後に数秒間 sleep すればよい。
.mailcap には次のように書く。
application/pdf; sh -c "open -a /Applications/Preview.app %s\; sleep 3"
投稿者 hattori : 12:52 | コメント (0) | トラックバック
2008年3月18日
Emacs の mmm-mode を使ってみた
PHPの中にHTMLが埋め込まれたプログラムを編集するのに、mmm-mode を使ってみた。
Carbon Emacs パッケージには mmm-mode も php-mode も入っている。ただし、php-mode のバージョンが古くて font-lock でエラーが出るので、1.4.0 をダウンロードして置き換える。
とりあえず M-x mmm-mode としてみる。これだけではまだ全体が php-mode なので、HTML の部分を指定してやらなくてはいけない。ヒアドキュメントをいちいち指定するのはやってられないので、あらかじめ用意されたクラスを使う。C-c % C-c でクラスの here-doc を指定する。ところが、うまくいくところといかないところがある。
echo <<<HTML
...
HTML
はうまくいくが、
echo <<<HTML
...
HTML;
はうまくいかない。セミコロンだけ次の行に書くのもきれいじゃないので、C-c % C-x で <<<HTML から ^HTML;? までを指定するとうまくいった。
投稿者 hattori : 18:54 | コメント (0) | トラックバック
2007年4月28日
Ubuntu で Emacs を使うための設定
システム->設定->キーボード
レイアウトのオプション
Alt/Win key behavior
Alt and Meat are on the Alt keys
Ctrl key position
Swap Ctrl and CapsLock
Group Shift/Lock behavior
Alt+Shift changes group を解除
Third level choosers
Press Right Alt key to choose 3rd level を解除
システム->設定->SCIM入力メソッド設定
ホットキー SCIM開始
Control+Space を削除
投稿者 hattori : 21:05 | コメント (0) | トラックバック
2005年11月30日
Wanderlust で大きなメールを出すと消えてしまう
症状:MacOSX 10.4 に EasyPackage で emacs と wanderlust をインストールし、大きなファイルを添付したメールを送ると、正常に送れたように見えるが、宛先に届かず、エラーも返ってこない。
原因:SMTP的にはエラーは起きていないし、サーバは他のマシンの wanderlust からのメールは正常に処理している。試しに他の SMTP サーバに送ってみると、今度はエラーが返ってきた。それを見ると、どうもスプリットメッセージがうまく処理できていないようである。なぜサーバがスプリットメッセージを特別扱いするのかは謎。
対策:M-x customize-option で mime-edit-split-message を off にする。
投稿者 hattori : 18:27 | コメント (0) | トラックバック
2005年9月 5日
Wanderlust で日本語ファイル名を mime-play する(3)
MIMEではファイル名の拡張子でファイルの種類を判断するという規定はないので、タイプがapplication/octet-streamの時はアプリケーションを起動しないというのは、正しい動作なのだそうだ。(cf. 間違いだらけのメールリーダ)
しかし正しくても不便なことには違いない。きっと同じことを考えている人がいるはずと思って探し回ったら、launcherまたはrun-mailcapを使う方法があった。
.mailcapに application/*; run-mailcap %s と書いたら、無限にプロセスが増殖してしまった…。launcherの方は大丈夫。
投稿者 hattori : 15:06 | コメント (0) | トラックバック
2005年8月25日
howm の設定
基本的な設定。
(global-set-key "\C-c,," 'howm-menu) (autoload 'howm-menu "howm" "Hitori Otegaru Wiki Modoki" t)
snap-record が標準ではキーバインドがないみたいなので、C-x , にバインドする。snap-play の方は、howm-mode なら action-lock がやってくれるので不要。
(global-set-key "\C-x," 'snap-record) (autoload 'snap-record "snap" "Convert snapshot of application to string, and put it to kill-ring." t) (autoload 'snap-play "snap" "Restore snapshot of application from string at point." t)
JPEG ファイルを表示しようとすると、mm-device-type が未定義と言われるので、定義する。
(defun mm-device-type () window-system)
file://~/hoge.jpg だと、チルダを展開してくれない。
(eval-after-load "howm-backend"
'(defadvice action-lock-find-file (before canonicalize first (f u) activate)
(setq f (expand-file-name f))))
- mm-device-type を使っているところ
snap:///usr/share/emacs/21.4/lisp/gnus/mailcap.el#55:(defvar mailcap-mime-data - action-lock のディスパッチャ。file: の場合は action-lock-find-file を呼ぶ。
snap:///~/share/emacs/lisp/action-lock.el#212:(defun action-lock-invoke (&optional arg) - action-lock-find-file のアドバイスで外部ビューワを呼んでいる。
snap:///~/share/emacs/lisp/howm-backend.el#904:(defadvice action-lock-find-file (around external-viewer (f u) activate)
投稿者 hattori : 11:38 | コメント (0) | トラックバック
2005年8月 4日
Wanderlust で日本語ファイル名を mime-play する(2)
症状:日本語のファイル名が付いた添付ファイルで v (mime-preview-play-current-entity) を実行すると、アプリケーションを起動せずに、ファイルに保存しようとする。
ファイル名が日本語かどうかは関係なくて、タイプが application/octet-stream なのが悪いようだ。
投稿者 hattori : 16:04 | コメント (0) | トラックバック
2005年5月31日
Emacs 用 RSS リーダ
newsticker.el - 未読は要約が表示されるが、既読は見出しだけになるので見やすい。ミニバッファの ticker 表示がよくできている!
投稿者 hattori : 20:10 | コメント (0) | トラックバック
2005年5月19日
Wanderlust で日本語ファイル名を mime-play する(1)
症状:日本語のファイル名が付いた添付ファイルで v (mime-preview-play-current-entity) を実行すると、例えば「あいう.doc」が「\あ\い\う.doc」になって、そんなファイルは無いと言われる。
原因:Debain の /etc/mailcap は引数をシングルクォートで囲んである。flim は引数の非ASCII文字の前にバックスラッシュを挿入する。結果として、二重にエスケープされてしまう。
対策:mime-format-mailcap-commandが呼ばれるときに、'%s'を%sに置き換えてしまう。
(eval-after-load "mime-conf"
'(defadvice mime-format-mailcap-command
(before mailcap-quote (mtext situation) activate)
(while (string-match "'%s'" mtext)
(setq mtext (replace-match "%s" nil t mtext)))))
投稿者 hattori : 20:09 | コメント (0) | トラックバック
2004年11月15日
mapae で複数ブログを切り替える
mapaeは MovableType 用 emacs フロントエンド。
- blogid は、各ウェブログの rsd.xml の中に書いてある。
- M-x mapae-blogset で指定する文字列は、blogid ではない。mapae.ph が 呼び出されるときに $BLOGSET に代入されているので、それによって $BLOGID を切り替えるのに使う。
投稿者 hattori : 20:33 | コメント (0) | トラックバック
2004年11月10日
csv-mode.el (その2)
2バイト文字が含まれていると、csv-align-fields で正しく揃わない。以下のように修正。
*** csv-mode.el.orig 2004-11-10 20:32:21.000000000 +0900
--- csv-mode.el 2004-11-10 20:37:17.000000000 +0900
***************
*** 255,261 ****
(defconst csv-mode-line-help-echo
;; See bindings.el for details of `mode-line-format' construction.
! (get-text-property 0 'help-echo (car default-mode-line-format))
"Primary default mode line help echo text.")
(defconst csv-mode-line-format
--- 255,263 ----
(defconst csv-mode-line-help-echo
;; See bindings.el for details of `mode-line-format' construction.
! ; We can't depend on default-mode-line-format which was modified by egg.
! ; (get-text-property 0 'help-echo (car default-mode-line-format))
! "mouse-1: select window, mouse-2: delete others, mouse-3: delete ..."
"Primary default mode line help echo text.")
(defconst csv-mode-line-format
***************
*** 1006,1012 ****
(setq beg (point)) ; beginning of current field
(while (not (eolp))
(csv-end-of-field)
! (setq x (- (point) beg)) ; field width
(if w
(if (> x (car w)) (setcar w x))
(setq w (list x)
--- 1008,1016 ----
(setq beg (point)) ; beginning of current field
(while (not (eolp))
(csv-end-of-field)
! ; width must be calculated by string-width
! ; (setq x (- (point) beg)) ; field width
! (setq x (string-width (buffer-substring beg (point))))
(if w
(if (> x (car w)) (setcar w x))
(setq w (list x)
***************
*** 1026,1032 ****
(let ((left-padding 0) (right-padding 0) overlay)
(csv-end-of-field)
(set-marker end (point)) ; end of current field
! (setq x (- (point) beg) ; field width
x (- (car w) x)) ; required padding
;; beg = beginning of current field
--- 1030,1038 ----
(let ((left-padding 0) (right-padding 0) overlay)
(csv-end-of-field)
(set-marker end (point)) ; end of current field
! ; width must be calculated by string-width
! ; (setq x (- (point) beg) ; field width
! (setq x (string-width (buffer-substring beg (point)))
x (- (car w) x)) ; required padding
;; beg = beginning of current field
投稿者 hattori : 20:40 | コメント (0) | トラックバック
2004年11月 1日
csv-mode.el (その1)
emacsでCSVを扱うためのメジャーモード。フィールド番号を指定して削除やソートができる。
eggが入っていると、ロードした時にエラーが出る。以下のように修正。
(defconst csv-mode-line-help-echo ;; See bindings.el for details of `mode-line-format' construction. ; We can't depend on default-mode-line-format which was modified by egg. ; (get-text-property 0 'help-echo (car default-mode-line-format)) "mouse-1: select window, mouse-2: delete others, mouse-3: delete ..." "Primary default mode line help echo text.")