(現在工事中)
最近、テキスト・エディターというと、 emacs, Vim, Visual Studio Code を使っている。 我ながら節操がない。
このうち Visual Studio Code は、今の所 Python の .ipynb 専用である。 小さな設定ファイルとか、Makefile のようなものは Vim (/usr/bin/vi) を使うことが多いだろうか。 その他、例えば TEX 文書の作成 (入力・編集) は大体 Emacs で処理している。
以前はメールの読み書きも全部 Emacs でやっていたけれど、 それをしなくなったので、相当使用頻度が落ちている。
えーと、Emacs のバージョンは今何を使っているんだっけ…最近、 表示させていないから…
| ~/.emacs.d/init.el をのぞく |
(setq inhibit-startup-message t) |
GNU Emacs 27.1 (build 1, x86_64-apple-darwin19.6.0, NS appkit-1894.60 Version 10.15.6 (Build 19G73)) of 2020-08-11 Copyright (C) 2020 Free Software Foundation, Inc. |
今だとどの Emacs を使うのかな… 少し前だと Yamamoto Mitsuharu 版に人気があったみたい。
https://www.math.s.chiba-u.ac.jp/~matsu/mac/mac01.html(松田茂樹氏のページ) に Yamamoto 版のインストールの仕方が書いてある。これが分かりやすい。
https://bitbucket.org/mituharu/emacs-mac/src/master/(山本 光晴氏のページ) が本山か。 山本氏は引退されたのかな。数学者なので同業者というのかしら。
世の中少し前まで、これを使っている人が多かったけれど、 これからどうしようかな、となっているみたい。
私も以前使っていたのか (「Emacsの新調 (emacs mac port by Mitsuharu Yamamoto)」)。 10年前のことだね。
まあ、これを使ってみよう。
松田氏のページに書いてある手順のバージョンのところを、 入手可能な新しいものに変えた手順でやってみる。 …パッチは千葉大数学・情報数理学科の ftp サーバーにある。 最近のWWWブラウザーは、ftp の機能なくて、 Mac だと Finder を呼んだりするんだ。 Finder は tar.gz 取って来ると展開したりしちゃうんだよね。 うーぬ…curl は ftp もやってくれるんだね。
という訳で以下のようにやることになった。
| 私はこうやりました |
curl -O https://mirror.twds.com.tw/gnu/emacs/emacs-29.1.tar.gz curl -O ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-29.1-mac-10.0.tar.gz curl -O ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-hires-icons-3.0.tar.gz tar xzf emacs-29.1.tar.gz tar xzf emacs-29.1-mac-10.0.tar.gz tar xzf emacs-hires-icons-3.0.tar.gz cd emacs-29.1 patch -p1 < ../emacs-29.1-mac-10.0/patch-mac cp -r ../emacs-29.1-mac-10.0/mac . cp ../emacs-hires-icons-3.0/etc/images/* etc/images cp ../emacs-29.1-mac-10.0/src/* src cp ../emacs-29.1-mac-10.0/lisp/term/mac-win.el lisp/term cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources/Emacs.icns ./configure --enable-mac-app make >& make.log sudo make install |
make >&make.log 82.42s user 7.50s system 93% cpu 1:36.66 total |
configure の終了時に以下のようなメッセージが表示される。メモメモ。
configure: WARNING: This configuration installs a 'movemail' program that does not retrieve POP3 email. By default, Emacs 25 and earlier installed a 'movemail' program that retrieved POP3 email via only insecure channels, a practice that is no longer recommended but that you can continue to support by using './configure --with-pop'. configure: You might want to install GNU Mailutils <https://mailutils.org> and use './configure --with-mailutils'. |
大抵の Mac で普通に make できた (古い Intel Mac で、 macOS が1つ古くて、Xcode だけ新しくて、 configure にトラブったのがあったけれど、Claude Code 君に任せて、make できた)。
> このディレクトリは emacs を make するためのディレクトリィです。途中でエラーになりました。make.log に経緯が残っているかも知れません。make 出来ればそうして下さい。 ●Emacsのビルドエラーを調査します。まずmake.1ogとディレクトリの状態を確認します。 Read 1 file, listed 1 directory, ran 1 shell command ●問題が特定できました。configureがposix_spawn_file_actions_addchdirをコンパイル時に検出しましたが、実行時のmacOsライブラリにこのシンボルが存在せず、tema Cs起動時にクラッシュしています。これはEmacs 29.1のmacOsビルドで知られている不具合です。環境を確認します。 .... ● ビルドが成功しました。要点は以下の通りです。 原因 Xcode 26.3が提供するmacos 26.2. SDKを使ってconfigureしていたため、posix-spawn_file_actions_addchdirという関数(実際はmacOs 26.0以降でしか実装されていない)を「使用可能」と誤検出していました。実行環境はmacOs 15.7.7なので、ビルド後のtemacs起動時に dyld[1724]: Symbol not found: _posix_spawn_file_actions_addchdir でクラッシュし、bootstrap-emacs.pdmp生成(ダンプ処理)で make が失敗していました。 対処 ac_cv_func_posix_spawn_file_actions_addchdir=no と ac_cv_func_posix_spawn_file_actions_addchdir_np=no を指定して再度./configure --enable-mac-app(元と同じオプション)を実行し、この関数を使わないようにビルドし直しました。 結果 $ /Users/mk/emacs-29.1/src/emacs --version GNU Emacs 29.1 makeは exit code 0で完了し、src/emacs が生成・起動確認できました。ログは make2.10gに保存してあります(元の失敗ログmake.10g は残しています)。 なお-enable-mac-appのみで--with-ns は指定されていないため、これは✕11/MacPorts構成のビルドで、Emacs.app バンドルは作られません。make install はまだ実行していません(インストール先を変更する操作のため)。必要であれば指示してください。 |
site-lisp を何とかしないと… とりあえずこれまで使っていたのを使うことにする。
cd /usr/local/share/emacs sudo mv site-lisp site-lisp.org sudo ln -s /Applications/Emacs-takaxp/Emacs.app/Contents/Resources/site-lisp . |
特に何もせず、これまで通り YaTeX が動くので、とりあえずこれで行ってみよう。
ctrl-¥で日本語の On/Off をするのね。なんか懐かしいね。
bitbucket の方を見ると、 emacs-29.4-mac-10.1 というのがあるのか。 それは千葉大の ftp サイトにはないと。 はてさてどうするのか?? 今日はもう寝よう。