sakito - Emacsがすきすぎる

|

2010-02-16パッチを当てた Emacs バイナリを配布する人に願うこと このエントリーを含むブックマーク

これは個人的に パッチを当てた Emacs バイナリを配布する人に願っていることです。


1. M-x report-emacs-bug の宛先を変更してほしい

パッチを当てているのですから当然のように本家の物とは異なるバイナリとなります。M-x report-emacs-bug の宛先が本家になっているなどはもっての他ではないでしょうか。


2. (emacs-version) の内容にパッチがあたっている事を示す文字列をいれてほしい

本家の物そのままではないよ、ということを示すのが良いかと思います。


3. できるだけ 開発版でなく リリース版にパッチを当てて配布してほしい

開発版は結構バグがあります。バイナリを取得して利用する人は初心者が多いので、危険です。


4. Emacs の標準的な動作を保持してほしい

例えばフルスクリーンであれば (set-frame-parameter nil 'fullscreen 'fullboth) は Linux でも、NTEmacs でも動作します。

この記事をかくために、いろんな OS で動作確認しましたが、共通的にこれがフルスクリーンにする設定です。

Emacs では フレームの操作をするなら フレームのパラメータにするのは常識中の常識です。

こうした標準的な動作が守られていないとこまります。


5. Emacs 本家のメーリングリストを読む

本家のメーリングリストはいろいろ議論されています。すでに同様のパッチが作られている場合もあります。常に読むのは大変ですから RSS を提供してくれているサービスがあります。

http://www.opensubscriber.com/messages/emacs-devel@gnu.org/rss091.xml

議論だけでも追いかけておくと良いかと思います。



大体以上です。


まとめ


バイナリは一度配布すると長い間、他人のパソコンの中にあり続ける可能性があり、バグなどが大きな問題になりがちです。

またそのバグが本家のバグなのか、パッチバグなのかが判別がつかないとこまります。

ほんのちょっとした気づかいなので、ぜひともお願いしたい所です。

ちなみに 例えば、Carbon Emacs パッケージ (http://homepage.mac.com/zenitani/emacs-j.html)はちゃんとこれらに配慮しています。

また、ftp://ftp.math.s.chiba-u.ac.jp/emacs/ で配布されているパッチも配慮されています。



一つでも守っていないバイナリはわたしは個人的に利用を推奨しません。

2010-02-13CocoaEmacs(Emacs23) で fullscreen 機能を利用する このエントリーを含むブックマーク

CocoaEmacs で フルスクリーンと言うと、はてな界隈などでは typester さんのパッチ(http://github.com/typester/emacs)が有名な感じですが、これは CarbonEmacs パッケージなどの動作と互換性がありませんし、多少変態な操作に対応してないような印象です。

CarbonEmacs パッケージの設定をそのまま移行したいなら ftp://ftp.math.s.chiba-u.ac.jp/emacs/ で公開されているパッチを当てるのが良いでしょう。

コンパイル手順は以下になります。

curl -O ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-23.1.92.tar.gz
curl -O ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-23.1.92-mac-1.97.tar.gz
tar xvfz emacs-23.1.92.tar.gz
tar xvfz emacs-23.1.92-mac-1.97.tar.gz
cd emacs-23.1.92
patch -p 0 < ../emacs-23.1.92-mac-1.97/patch-mac
cp -r ../emacs-23.1.92-mac-1.97/mac mac
cp ../emacs-23.1.92-mac-1.97/src/* src
cp ../emacs-23.1.92-mac-1.97/lisp/term/mac-win.el lisp/term
cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources/Emacs.icns
./configure --with-mac --without-x
make
sudo make install

このパッチの利点はいくつかあります。

  • Emacs22 と互換性があり、 window-system が mac になります。そのため elscreen 等 window-system が ns だと動作が変になるようなパッケージが問題なく動作します
  • C-g の動作を変更できます
  • 外部からの Apple Event に対応しています
  • Command-Control-D による 辞書 に対応しています

など様々な利点があります。

fullscreen は例えば 以下のような関数とキーを定義して C-c m すれば toggle できます。

(2010-02-17 mac という prefix が以下の関数についていたが他の環境でも動作するのではずした)

(defun toggle-fullscreen ()
    (interactive)
    (if (frame-parameter nil 'fullscreen)
        (set-frame-parameter nil 'fullscreen nil)
      (set-frame-parameter nil 'fullscreen 'fullboth)
      ))
  (global-set-key (kbd "C-c m") 'mac-toggle-fullscreen)

外部からの Apple Event は

osascript -e 'tell application "Emacs"
			to open location "mailto:foo@example.com"'

等として Emacs を呼べます。

欠点は inline patch がそのままだと適用できないことですが、inline patch を修正すると動作させることも可能です。

このパッチを利用すれば Emacs22 からの移行がスムーズになるのではないでしょうか。

2010-02-06inline_patch-23.1.92-b1 を適用して Emacs 23 をコンパイルする手順 このエントリーを含むブックマーク

inline_patch-23.1.92-b1 がリリースされました。64bit 対応した inline patch です。

コンパイル手順は以下のようになります。

curl -O ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-23.1.92.tar.gz
tar xvfz emacs-23.1.92.tar.gz
curl -O http://jaist.dl.sourceforge.jp/macemacsjp/45818/inline_patch-23.1.92-b1.tar.gz
tar xvfz inline_patch-23.1.92-b1.tar.gz
cd emacs-23.1.92
patch -p 0 < ../inline_patch-23.1.92-b1/emacs-inline.patch
./configure --with-ns --without-x
make bootstrap
make install
open nextstep/Emacs.app

2010-01-31Emacs で矩形選択と 連番挿入 このエントリーを含むブックマーク

とりあえず以下を設定。

(setq cua-enable-cua-keys nil)
(cua-mode t)

あとは以下のチュートリアルを見て操作すると良いと思う。

http://www.vimeo.com/1168225?pg=embed&sec=1168225

2010-01-30objc-mode での flymake このエントリーを含むブックマーク

objc-mode での flymake にしばらく悩んでいたが、簡単なことだった。

-x objective-c

を付けてなかった。

ということで EmacsiPhone アプリ開発を快適にするための設定(http://sakito.jp/emacs/emacsobjectivec.html ) で flymake の部分を修正した。

|