ntemacs 導入メモ
長いどー。
ここでの目標
- ntemacs23 の導入
- 日本語入力の設定
- デフォルトのフォントの設定
- auto-save-buffers-enhanced のインストール
- apel のインストール
- session のインストール
- color-moccur, moccur-edit のインストール
- emacs-w3m のインストール
- migemo (cmigemo) のインストール
- yatex のインストール
(※2010/11/09 (Tue) 18:58 追記)
本体のDLとか
- 23.1
http://d.hatena.ne.jp/itouhiro/20091027 を見れば全て完了してしまう充実ぶり。
ありがとうございます。
また,23.1系のDLも itouhiro さんが,アップしてくれています。
http://ai11.net/2009/misc/
23.2だと,日本語入力中のフォントがMSゴシックになってしまう。
23.1だと大丈夫。けど,23.1だと日本語入力中に結構落ちる。
なので,auto-save-buffers-enhanced が必須。これについては後述。
23.2で,日本語入力中のフォントをどうやって変更するかを調べる予定。
でも,ボールドになってもずれないのが,非常に素敵!
予備知識: バイトコンパイルの方法
他にも色々あるだろうけど,とりあえず。
- emacs で dired して,m でマークしてって,B。
複数ファイルを一括でコンパイルできるので,楽。
- コマンドラインから
% /somewhere/emacs-23.1.1/bin/emacs --batch -f batch-byte-compile ./*.el
これでも一括でできるから,楽だね。
最低限の設定とか。
今までの .emacs を .emacs.meadow.el に。ntemacs 用には .emacs.ntemacs.el を
使用することにする。
そして,.emacs には,共通と思われる最低限の設定を書いておく。
以下に,.emacs を一部修正して晒しておきます。
;; -*- coding: utf-8-unix; -*- (setq user-full-name "xxxx") (setq user-mail-address "xxxx") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; load-path (add-to-list 'load-path "~/.emacs.d") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; about backup ;; バージョニングをするかどうか (setq version-control t) ;; バージョニングする数は,3つ (setq kept-new-versions 3) ;; 古いバージョンを自動的に消去する (setq delete-old-versions t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; enabel narrowing (put 'narrow-to-region 'disabled nil) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq-default null-device "/dev/null") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; kill-ring size (setq kill-ring-max 512) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; message buffer size (setq message-log-max 10000) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; set default diff-format to unified (setq diff-switches "-u") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; display row number and column number (setq line-number-mode t) (setq column-number-mode t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Key bindings ;; set C-h to Backspace delete (global-set-key "\C-h" 'backward-delete-char) (global-set-key "\M-h" 'backward-kill-word) ;; enable "\C-h" to do backward-delete-char in isearch-mode (add-hook 'isearch-mode-hook (function (lambda () (define-key isearch-mode-map "\C-h" 'isearch-delete-char)))) ;(global-set-key "\C-m" 'newline) ;; CR ;(global-set-key "\C-j" 'newline) ;; makes LF CR (global-set-key "\M-r" 'query-replace) ;(global-set-key [C-/] 'undo) (global-set-key "\C-xg" 'insert-register) (global-set-key "\C-ca" 'apropos) (global-set-key "\M-?" 'help) (global-set-key "\C-co" 'occur) (global-set-key "\C-cl" 'lgrep) (global-set-key "\C-cr" 'rgrep) ;; repeat-complex-command (global-set-key "\C-c\C-r" 'repeat-complex-command) ;; originally bound to shrink-window-horizontally (global-set-key "\C-x-" 'shrink-window) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; change beep. ;; 'asterisk, 'exclamation, 'hand, 'question, 'ok ;(set-message-beep 'exlamation) (setq visible-bell t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; kill-summary.el ;; M-y で,kill-ring を表示し,選択,yank。使い方は,ソースファイル中にあり。 ;; http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Programs/elisp/kill-summary.el (autoload 'kill-summary "kill-summary" nil t) (global-set-key "\M-y" 'kill-summary) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Maximum length for histroy lists (setq history-length 10000) ;; history から重複を消す ;; ref: http://www.bookshelf.jp/soft/meadow_27.html#SEC348 (defun minibuffer-delete-duplicate () (let (list) (dolist (elt (symbol-value minibuffer-history-variable)) (unless (member elt list) (push elt list))) (set minibuffer-history-variable (nreverse list)))) (add-hook 'minibuffer-setup-hook 'minibuffer-delete-duplicate) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; emacs終了時に確認メッセージを出す。 ;; 誤って終了してしまわないようにするため (setq confirm-kill-emacs 'yes-or-no-p) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; no limit for print-level (setq eval-expression-print-level nil) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; The length of global-mark-ring (setq global-mark-ring-max 128) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; no duplicate in the kill-ring (defadvice kill-new (before my-kill-new-no-duplicates-before-advice) (setq kill-ring (delete (ad-get-arg 0) kill-ring))) (ad-activate 'kill-new) ;;(ad-deactivate 'kill-new) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; M-x occur で,(symbol-at-point) があればそれをデフォルトにする。 ;; regexp-history は汚れないはず。 (defadvice occur-read-primary-args (around my-occur-read-primary-args-around-ad) (let ((w (symbol-at-point))) (when w (setq regexp-history (cons (format "%s" w) regexp-history))) ad-do-it ;; (unless (string= w (car ad-return-value)) ;; ;; w で検索しなかった場合 ;; (setq regexp-history (delete (format "%s" w) regexp-history))) )) (ad-activate 'occur-read-primary-args) ;(ad-deactivate 'occur-read-primary-args) ;(ad-remove-advice 'occur-read-primary-args 'around 'my-occur-read-primary-args-around-ad) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; prerequisite settings done. ;; Now, let's load each specific init file. (cond ((featurep 'meadow) (load "~/.emacs.meadow.el")) ((and (equal system-type 'windows-nt) (= 23 emacs-major-version)) (load "~/.emacs.ntemacs.el")))
それから,ntemacs 用の設定も少し。
;; IME setting (setq default-input-method "W32-IME") (setq w32-ime-mode-line-state-indicator-list '("--" "[あ]" "[--]")) (w32-ime-initialize) ;; フォント設定 (set-default-font "MeiryoKeConConsolas-11") (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0208 '("MeiryoKeConConsolas-11" . "unicode-bmp")) (setq default-frame-alist (append (list '(top . 40) '(left . 80) '(height . 52) '(width . 210) '(cursor-type . box)) default-frame-alist))
各ライブラリの導入
auto-save-buffers
上述の通り,ガシガシ落ちても,今のところ,編集した部分を失うという状況には,
陥ってません。感謝ですね。
http://svn.coderepos.org/share/lang/elisp/ からDLして,
load-path の通ったところに置いてバイトコンパイル。
ワタシの設定は以下。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; http://svn.coderepos.org/share/lang/elisp/ ;; http://0xcc.net/misc/auto-save/ (require 'auto-save-buffers-enhanced) (auto-save-buffers-enhanced t) (setq auto-save-buffers-enhanced-interval 1)
apel
必要になることがあるので,先に入れておく。
http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/APEL/
で書いてあるとおり,CVSリポジトリからチェックアウトしてコンパイル。
例えば,以下。
emacs.exe へのパスは,自信の環境に合わせて下さい。
% EMACS=/cygdrive/e/emacs/emacs-23.1.1/bin/emacs.exe make # ... % EMACS=/cygdrive/e/emacs/emacs-23.1.1/bin/emacs.exe make install
どうやってインストールしたかは忘れた。
たしか上記の様にしたはず。
付属のREADME.jaを参照。
session
これがなきゃ話にならん。
まだ,Meadowたんと同居しているので,.session ディレクトリを作成して,
session ファイルを分けといた。
http://sourceforge.net/projects/emacs-session/files/ からDLして,
伸張して,バイトコンパイルして,site-lisp/session に置いた。
置く場所については,悩み中。
ワタシの設定は以下です。
tags-table-set-list を保存しているのがポイント。
これについては,そのうちまとめる予定。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; session.el ;; http://emacs-session.sourceforge.net/ (when (require 'session nil t) (setq session-save-file-coding-system 'utf-8-unix) ;; 2010/11/10 追記 (setq session-save-file (expand-file-name "~/.session/.session.ntemacs")) (setq session-initialize '(session places)) (setq session-globals-max-size 1024) (setq session-globals-max-string (* 1024 1024)) (setq session-globals-include '((kill-ring 512) (session-file-alist 512) (file-name-history 512) (tags-table-set-list 128))) (add-hook 'after-init-hook 'session-initialize))
elscreen
これもなきゃ話にならん。
ftp://ftp.morishima.net/pub/morishima.net/naoto/ElScreen/
から,ダウンロード。久しぶりにftpコマンド使った。
ワイルドカードで複数ファイルを一括DLするのは,mgetコマンド。
バイトコンパイルして,site-lisp/elscreen 以下へ。
設定は以下。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; elscren ;; ftp://ftp.morishima.net/pub/morishima.net/naoto/ElScreen/ (require 'elscreen)
color-moccur
moccur-edit とか使うためにね。
バイトコンパイルして,site-lisp/color-moccur 以下へ。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; color-moccur ;; http://www.emacswiki.org/emacs/color-moccur.el ;; http://www.emacswiki.org/emacs/moccur-edit.el (require 'color-moccur) (require 'moccur-edit)
w3m
ちょっと手間がかかります。最新版でないと,emacs23に対応していません。
下記をキャッシュを参考にしました。
http://webcache.googleusercontent.com/search?q=cache:sbh4nHg5WPQJ:d.hatena.ne.jp/hiloicoli/20080719/1216477744+emacs23+w3m&cd=3&hl=ja&ct=clnk&gl=jp&lr=lang_en|lang_ja&client=firefox-a
ありがとうございます。
キャッシュになっていて,オリジナルはなくなっているみたいなので,
手を加えて,転載させてもらいます。
% cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot login % cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m % ls emacs-w3m % mkdir emacs-w3m-cvs % tar zxf emacs-w3m-1.4.4.tar.gz % ls emacs-w3m emacs-w3m-1.4.4 emacs-w3m-cvs % cp -r emacs-w3m-1.4.4 emacs-w3m-cvs % cp emacs-w3m/* emacs-w3m-cvs % cd emacs-w3m-cvs % ./configure --with-emacs="/cygdrive/e/emacs/emacs-23.1.1/bin/emacs.exe" \ --with-lispdir="/cygdrive/e/emacs/emacs-23.1.1/site-lisp/w3m" % make % make install
bitmap がなくて怒られましたが,基本リファレンスとかしかみないから,
たぶん問題ないんじゃね? と思って,そのままゴーしました。
設定は以下。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; w3m (require 'w3m-load) (setq w3m-display-inline-images t) (setq w3m-use-symbol nil)
migemo
- cmigemo をビルド
まずは,チェックアウトしましょう。
% svn checkout 'http://cvs.kaoriya.net/svn/CMigemo/trunk' cmigemo
wordbuf.c を編集する。
% svn diff Index: wordbuf.c =================================================================== --- wordbuf.c (revision 176) +++ wordbuf.c (working copy) @@ -8,6 +8,7 @@ #include <stdio.h> #include <stdlib.h> +#include <limits.h> #include <string.h> #include "wordbuf.h"
あとは,doc/README_j.txt に書いてあるとおりにする。
% ./configure % make cyg
configure したかなぁ? おぼえてねーや。
きっとしているはず。
もひとつおまけ。
% cd dict
% make utf-8
で,インストール。
% make cyg-install
- migemo.el をインストール
https://gist.github.com/457761 からDL。
tomoya さん作みたいです。ありがとうございます。
ほいで,設定。load-library は,必要なのかしら?
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; migemo ;; http://www.kaoriya.net/#CMIGEMO ;; http://d.hatena.ne.jp/samurai20000/20100907/1283791433 ;; http://aki.issp.u-tokyo.ac.jp/itoh/PukiWiki/pukiwiki.php?migemo ;; http://d.hatena.ne.jp/jimo1001/20080615/1213511242 ;; migemo.el: https://gist.github.com/457761 (require 'migemo) (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)
yatex
http://www.yatex.org/ からDLして,伸張してバイトコンパイル。
コンパイル方法は,上記を参考にして下さい。
設定は以下。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; settings for yatex-mode ;; http://www.yatex.org/ (require 'yatex) ;; YaTeX-mode (setq auto-mode-alist (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist)) (autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t) (setq dvi2-command "dviout" tex-command "platex -r --kanji=utf8" dviprint-command-format "dvipsk -Ppdf %s" YaTeX-kanji-code 3)