福島市のインプラント歯科医院(論文作成も手伝っています)

(あるいはVz者による meadow 導入奮闘記......なぜ Meadow なのか?)
いろんなサイトの情報により、だんだんと Meadow が使えるように なってきました。
特に、meadow メーリングリスト (http://triaez.kaisei.org/meadow/FAQ-Meadow-ja.html)
の方々には感謝いたします。

なぜか、WinXPのIMEを使うと、スクロールが非常に遅くなります。
WinXP+ATOK の組み合わせで使ったら、以前のスクロール速度に
戻りました。

パッケージ等がそろっているし、フォントの設定が
前バージョンと違うので、これから使う人はMeadow2/Meadow3 がいいと思います。


Meadow3 にバージョンアップしてからの情報
Meadow2 にバージョンアップしてからの情報

1.ダウンロードする
http://kawacho.don.am/win/meadow/install.html#download をもとに
Meadow-1.14-i386-base.tar.gz
Meadow-1.14-i386-els.tar.gz
をダウンロード/インストール
tar zxvf C:\download\Meadow-1.14-i386-base.tar.gz
tar zxvf C:\download\Meadow-1.14-i386-els.tar.gz
(現在 http://www.netlaputa.ne.jp/~kose/Emacs/Meadow/#Meadow-1.15 を使っています) 2.Emacs マニュアル http://infoshako.sk.tsukuba.ac.jp/InfoRes/jdoc/Editors/NEmacs/EmacsGuideInJ_html/ 3.参考 http://www.sfc.keio.ac.jp/mchtml/cns-guide/2001/7/3/6.html http://www.sr3.t.u-tokyo.ac.jp/~takekawa/gnujdoc/emacs-20.6/emacs-ja_46.html http://www.takilab.k.dendai.ac.jp/~arai/computer/mule.txt http://www.geocities.co.jp/SiliconValley-PaloAlto/5236/mule/tips.html http://www.asahi-net.or.jp/~ez3k-msym/comp/meadow.htm http://www.boreas.dti.ne.jp/~miyoshi/Meadow/faq.html http://meadow-faq.sourceforge.net/meadow-faq-ja.html 4.拡張 (1)日本語インクリメンタルサーチの方法  .emacs に(define-key isearch-mode-map "\C-k" 'isearch-edit-string)  を追加。  C-s や C-r の後で C-k を入力する事により、IME を使って非 ASCII 文字  を入力できるようになった。 (2)shell の入力に ^M がついてしまう  .emacs に(add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m nil t)を追加  Meadow で shell mode を使うと、行の最後に ^Mがつかないようになった。  と思ったら、cygwin の bash で、^M がついてしまう。なぜ?? (3)文字コードを自動認識できないことがあったので、  ファイルオープン時は、C-x RET c "CODING-SYSTEM" RET C-x C-f で解決。  (japanease-shift-jis-dos) (4)文字コードを自動認識できない場合の処理  ●以下の行を先頭(1行目)に入れる(他の文字が入っても良い)  -*- coding: japanese-shift-jis-dos -*-  -*- coding: euc-japan -*-  ●または、以下の行を末尾(最後の行)に入れる。  Local Variables:  coding: japanese-shift-jis-dos  End:  ●ファイル名により、判定させる方法  (modify-coding-system-alist 'file REGEXP 'japanese-shift-jis)  ●全てのファイルを japanese-shift-jis-dos にしてしまう。  (setq coding-system-for-read 'japanese-shift-jis-dos) (5)Meadow 終了時の状態を保存し、次の起動のときに前回終了時のそのままの  状態に復元したい。  Meadowに付属しているDesktop Libraryというものを使えばできました。  infoの「Saving Emacs Sessions」節の説明を見てください。  最初はうまく動作しなかったのですが、いつの間にかちゃんと動作するよう  になりました。  M-x desktop-save (enter) を一度行うこと  追記:拡張子 .log のファイルは、デスクトップとして保存されません。 (6)バイナリエディターにしてみる  M-x hexl-mode Enter とすると、バイナリエディターmodeになる。  デフォルトで 16bit 幅で表示されるが、8bit 幅で表示するように  するには、どうしたらいいか? (7)windows のキーを emacs 互換にできる。  http://mayu.sourceforge.net/ja/index.html  これをインストールして色々いじっているところです。  ついでに、英語版 Happy Hacking Keyboard を買ってきて使ってます。  ここのメーリングリストにもお世話になっています。 (8)英語版 Happy Hacking Keyboard を使ってみて  今まで、左右に Ctrl キーがあるキーボードを使っていたのですが、  このキーボードにしたら左手が疲れるようになりました。  昔、PC9801 を使ってた時には何ともなかったんだけど....  おかしいなぁ~ (9)罫線を書きたい  http://www.lares.dti.ne.jp/~anazawa/keisen-mule  から、罫線ツールを取ってきて lisp ディレクトリにコピーした。  .emacs には、以下の文を追加した。  ;;------------------  ;; **** keisen-mule.el ****  (if (or (boundp 'MULE)  (featurep 'meadow))  (if window-system  (autoload 'keisen-mode "keisen-mouse" "MULE版罫線モード:マウス" t))  (autoload 'keisen-mode "keisen-mule" "MULE版罫線モード" t))  M-x keisen-mode で罫線モードになり、C-c C-c でモードを抜けます。  M-f、M-b、M-p、M-nで罫線を引きます。 罫線が重なるところでは、  自動的に ┼ や ├ が入ります。  C-c f や C-c b や C-p や C-n を使うと、罫線にぶつかるまで罫線を  引きます。  リージョンを指定して M-r を押すと、四角形を描いてくれます。  M-w で、線の太さを変えられます(―と━)。 (10)Nifty Serve のログを編集するためにキーバインド  Nifty Serve では、半角カナ、全角ANK 等が頻繁に出てくるので、  それを簡単に変換するキーバインドを追加した。  ;;; C-z でキーバインドを拡張する  (global-unset-key "\C-z")  (global-set-key "\C-zl" 'japanese-hankaku-region)  (global-set-key "\C-zu" 'japanese-zenkaku-region)  本当は、カーソル上の文字の属性によって、自動的に変換する  マクロを組みたいんですが(^^;) (11)画面上のポイントの位置が変わらないスクロール C-, C-.  (defun scroll-up-one-line ()  (interactive)  (scroll-up 1)  (next-line 1 ) )  (defun scroll-down-one-line ()  (interactive)  (scroll-down 1)  (previous-line 1 ))  (global-set-key [?\C-,] 'scroll-up-one-line)  (global-set-key [?\C-.] 'scroll-down-one-line)  初めて書いたマクロらしきもの(^^;)とはいっても、  どこかのホームページにあったものを2行だけ追加 (12)serch-ring の内容をポイントに挿入する  (defun yank-serch-word-to-curpnt()  (interactive)  (insert (car (or search-ring-yank-pointer search-ring))))  (global-set-key [f4] 'yank-serch-word-to-curpnt) (13)yank が便利になる browse-yank.el  (autoload 'browse-yank "browse-yank" nil t)  (global-set-key "\C-x\C-y" 'browse-yank) (14) region(リージョンをハイライト表示)  (transient-mark-mode 1) (15)拡張子 .s は、アセンブラモードのようである。  M-x asm-mode  M-x text-mode (16) cygwin の bash で、^M がついてしまう。なぜ??  以下のようにしたら大丈夫になった  (setq my-comint-process-coding-system '(undecided-dos sjis-unix))  (defun my-shell-mode-hook ()  (setq comint-input-sender (function my-comint-simple-send)))  (defun my-comint-simple-send (proc string)  (run-hooks 'my-comint-send-hook)  (comint-send-string proc string)  (comint-send-string proc "\n"))  (defun my-comint-send-hook ()  (apply 'set-buffer-process-coding-system my-comint-process-coding-system))  (eval-after-load "shell"  '(progn  (add-hook 'shell-mode-hook 'my-shell-mode-hook)  (add-hook 'my-comint-send-hook 'my-comint-send-hook))) (17)フォントを小さくしてみる  フォントの設定は、Meadow2とは異なります。これから使うなら Meadow2  にしましょう。  http://openlab.ring.gr.jp/efont/dist/shinonome/shinonome-0.9.5.tar.bz2  から12/14dot の BDF フォントを取ってきて、  cygwin 上で、tar jxf shinonome-0.9.5.tar.bz2 として展開する。 フォントの設定は、Meadow2とは異なります。これから使うなら Meadow2
にしましょう。


.emacs には、以下の記述を追加した。

(w32-auto-regist-bdf-font
"shinonome14-ascii"
"c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14a.bdf" 0)
(w32-change-font-logfont
"shinonome14-ascii" 1 ; bold
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14ab.bdf"))
(w32-change-font-logfont
"shinonome14-ascii" 2 ; italic
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14ai.bdf"))
(w32-change-font-logfont
"shinonome14-ascii" 3 ; bold-italic
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14abi.bdf"))

(w32-auto-regist-bdf-font
"shinonome14-latin-iso8859-1"
"c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14a.bdf" 1)
(w32-change-font-logfont
"shinonome14-latin-iso8859-1" 1
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14ab.bdf"))
(w32-change-font-logfont
"shinonome14-latin-iso8859-1" 2
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14ai.bdf"))
(w32-change-font-logfont
"shinonome14-latin-iso8859-1" 3
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14abi.bdf"))

(w32-auto-regist-bdf-font
"shinonome14-latin-jisx0201"
"c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14r.bdf" 0)
(w32-change-font-logfont
"shinonome14-latin-jisx0201" 1
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14rb.bdf"))
(w32-change-font-logfont
"shinonome14-latin-jisx0201" 2
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14ri.bdf"))
(w32-change-font-logfont
"shinonome14-latin-jisx0201" 3
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14rbi.bdf"))

(w32-auto-regist-bdf-font
"shinonome14-katakana-jisx0201"
"c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14r.bdf" 1)
(w32-change-font-logfont
"shinonome14-katakana-jisx0201" 1
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14rb.bdf"))
(w32-change-font-logfont
"shinonome14-katakana-jisx0201" 2
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14ri.bdf"))
(w32-change-font-logfont
"shinonome14-katakana-jisx0201" 3
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnm7x14rbi.bdf"))

(w32-auto-regist-bdf-font
"shinonome14-japanese-jisx0208"
"c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnmk14.bdf" 0)
(w32-change-font-logfont
"shinonome14-japanese-jisx0208" 1
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnmk14b.bdf"))
(w32-change-font-logfont
"shinonome14-japanese-jisx0208" 2
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnmk14i.bdf"))
(w32-change-font-logfont
"shinonome14-japanese-jisx0208" 3
'(bdf-font "c:/Meadow/1.14/fonts/shinonome-0.9.5/bdf/shnmk14bi.bdf"))

(new-fontset "shinonome14-fontset"
'((ascii . "shinonome14-ascii")
(latin-iso8859-1 . "shinonome14-latin-iso8859-1")
(latin-jisx0201 . "shinonome14-latin-jisx0201")
(katakana-jisx0201 . "shinonome14-katakana-jisx0201")
(japanese-jisx0208 . "shinonome14-japanese-jisx0208")))

(setq default-frame-alist
(append (list '(foreground-color . "black")
'(background-color . "LemonChiffon")
'(background-color . "gray")
'(border-color . "black")
'(mouse-color . "white")
'(cursor-color . "black")
'(font . "shinonome14-fontset")

'(width . 80)
'(height . 52)
'(top . -10)
'(left . 100))
default-frame-alist))

(18)dabbrev を覚えた。
単語(漢字でも良い)の頭のほうを入力 M-/
すごい機能だなぁと感心する
(19)ポイントの半角カナを全角カナに一括変換する技を教えてもらった
(defun zenkaku-katakana-region (min max)
(interactive "r")
(save-excursion
(goto-char min)
(while (re-search-forward "\\ck+" max t)
(japanese-zenkaku-region (match-beginning 0) (match-end 0)))))

(defun zenkaku-katakana-buffer ()
(interactive)
(zenkaku-katakana-region (point-min) (point-max)))

(defun zenkaku-katakana-at-point (&optional point)
(interactive)
(setq point (or point (point)))
(when (looking-at "\\ck+")
(forward-char 1)
(backward-word 1)
(re-search-forward "\\ck+")
(zenkaku-katakana-region (match-beginning 0) (match-end 0))))
(global-set-key [?\C-;] 'zenkaku-katakana-at-point)

(20)フォントを編集する。
bdf2bmp.exe/bmp2bdf.exe を使うことで、bdf fontを編集し、.,:;の違いが分かりやすいようにした。
(21)標準で、C-/ に undo が割りつけられている
(22)「GNU Emacs 拡張ガイド」という本を購入
(23)「やさしい Emacs-Lisp講座」という本を購入
(23)Enter の替わりに、C-j を使うこと
(24)cc-mode を使うことにした。これで、いつものコーディングスタイルになった。
参考(http://www.geocities.co.jp/SiliconValley-PaloAlto/5236/mule/cc-mode.html)
で、やっぱりタブサイズは、4にして、常にインデントは ^I にしよう。
M-x indent-region で、リージョンのインデントしなおし。
(setq load-path (cons (expand-file-name "c:/meadow/1.14/lisp/cc-mode-4.379")load-path))
;;; cc-mode.el の使用
;;;
(fmakunbound 'c-mode)
(makunbound 'c-mode-map)
(fmakunbound 'c++-mode)
(makunbound 'c++-mode-map)
(makunbound 'c-style-alist)
(autoload 'c-mode "cc-mode" "C Editing Mode" t)
(autoload 'c++-mode "cc-mode" "C++ Editing Mode" t)
(autoload 'objc-mode "cc-mode" "Objective-C Editing Mode" t)
(autoload 'java-mode "cc-mode" "Java Editing Mode" t)
(setq auto-mode-alist
(append
'(
("\\.c$" . c-mode)
("\\.h$" . c-mode)
("\\.java$" . java-mode)
("\\.m$" . objc-mode)
("\\.c\\+\\+$" . c++-mode)
("\\.cpp$" . c++-mode)
("\\.cc$" . c++-mode)
("\\.hh$" . c++-mode)
)
auto-mode-alist))


(defconst my-style
'(
;; インデント幅を空白4コ分にする
(c-basic-offset . 4)
;; コメントだけの行のインデント幅
;(c-comment-only-line-offset . 4)
;; インデント量の設定
(c-offsets-alist . (
(comment-intro . 0)
(case-label . 0) ; or 2
(statement-case-intro . 4) ; or 2
;(access-label . 0)
))
;; '{' や '}' での改行の制御
;(c-hanging-braces-alist . (
; ;; デフォルトは以下の4つ
; (brace-list-open)
; (substatement-open after)
; (block-close . c-snug-do-while)
; (extern-lang-open after)
; ;; 以下を追加
; (brace-list-close)
; ;(class-open after)
; (class-close before)
; (inline-open after)
; (arglist-cont-noempty after)
; (statement-cont after)
; ))
;; '}' で改行したのをもどす
;(c-cleanup-list . (
; ;brace-else-brace
; empty-defun-braces
; ;defun-close-semi
; list-close-comma
; scope-operator
; ))
)
"My Style")

;;;
;;; cc-mode共通の設定
;;;
(add-hook 'c-mode-common-hook
'(lambda ()
;; 自分用のスタイルを使う
(c-add-style "my-style" my-style t)
(c-set-style "my-style")

;; いつでも TAB でインデント
(setq c-tab-always-indent t)

(setq default-tab-width '4)
(setq tab-width '4)

;; hungry-state にしない
(c-toggle-hungry-state -1)

;;
;; 新規作成時だけ auto-indent にする
(if (not (file-exists-p buffer-file-name))
(c-toggle-auto-state 1))

;; C-c C-c でコンパイル, C-c c でコメントアウト
(define-key c-mode-map "\C-c\C-c" 'compile)
(define-key c-mode-map "\C-cc" 'comment-region)

;; コンパイルウインドウの大きさを制限する
(setq compilation-window-height 8)

)) ;; end c-mode-common-hook

(25)cc-mode を、5.28 にバージョンアップした。
(http://cc-mode.sourceforge.net/release.php)
これで、//コメントに対応するようになった。
(26)バイトコンパイル
M-x byte-compile-file
ファイル入力
一括コンパイル c:/meadow/2.10/bin/meadow -batch -f batch-byte-compile *.el
.emacs の load-library 関数のファイルの拡張子を取り除いた。
(27)ufm というファイラーを入れてみる。
http://www.d4.dion.ne.jp/~usuda/emacs/ にある、
filmtn 互換のファイラーである。すごいなぁ~
(28)cygwin の telnet.exe/etags.exe と meadow のそれがかち合うので、cygwin の方を外す。
setq exec-path... を何度も書いているが、サーチの順番は?
(29)M-qコマンドを実行すると、カーソルの入っている行が、あらか
じめ指定された文字数で改行されて、各行が同じ文字数にそろう
(30)バックトレース signaling の解除は、C-] である。

(31)対応する括弧のハイライト表示
(show-paren-mode t)
(32)ポイント直後の word を kill-ring に取り込む
(defun get-1word-to-kill-ring()
(interactive)
(save-excursion
(kill-new (buffer-substring (point) (progn (forward-word 1) (point))))))
(33)shell から、GUI を伴ったアプリケーションを実行する場合
start アプリケーション としなければならないようだ。

(34)IME の入力が何かの拍子におかしくなることがある。
M-x set-keyboard-coding-system japanese-shift-jis-dos
で解決する。Meadow2 にしてからは、この現象が発生していません。

(35)Linux の emacs で修正すべきファイル
.emacs ではなくて、.emacs.el
~/.Xdefaults に、Emacs.geometry: の表記があれば、
コメントアウトしないと、.emacs.el のフレーム設定が
無視されてしまう。

(36) emacs-20 で日本語の man を見る
(if (and (= emacs-major-version 20)
(not (string-match "xemacs" emacs-version)))
(add-hook 'Man-cooked-hook
(lambda ()
(goto-char (point-min))
(while (search-forward-regexp "\222.-" nil t)
(delete-backward-char 1)
(insert "\255"))
(goto-char (point-min))
(while (re-search-forward "\\(.\\)\\(\b\b\\1\\)+" nil t)
(replace-match "\\1")
(if Man-fontify-manpage-flag
(put-text-property (match-beginning 0) (point)
'face Man-overstrike-face)))
)))
(37) nifty とか、mix などの shift-jis の telnet サーバーに telnet
するときの設定。
(modify-coding-system-alist 'process "telnet"
'(japanese-shift-jis-dos . japanese-shift-jis-dos))


(38)japanese-zenkaku-region で、- が ー になってくれない
バージョン1.15 (http://www.netlaputa.ne.jp/~kose/Emacs/Meadow/#Meadow-1.15) でこの不具合は無くなっています。

(39)emacs 起動時 ウィンドウの大きさ
修正すべきファイルは、.emacs.el である
Vine 2.1.5
私の場合は ~/.Xdefaults に
Emacs.geometry: 80x33
と設定されていたために .emacs 上のheightが無視されてました。
この行をコメントアウトしたら .emacs上のheightが
効くようになりました。

Vine 2.6 !!!!!!!!!!Xdefaults を使わないことに注意!!!!!!!!!!!!!
(http://x68000.startshop.co.jp/~68user/unix/pickup?xrdb)
~/.Xresources を使用する。書式は、.Xdefaults と同じようだが、
xrdb で Xのリソースを登録する必要がある。
~/.Xresources にリソース設定を書いている場合、Xの起動時に xrdb を
使って設定を反映させなければならない。具体的には ~/.xsession や
~/.xinitrc に
xrdb -merge $HOME/.Xresources
と書けばよい。また、~/.Xresources を書き換えた場合も、
% xrdb -remove
で設定をクリアした後、
% xrdb -merge ~/.Xresources
で現在の設定を反映させる必要がある。

(40)対応する括弧への移動
C-M-n
C-M-p
C-M-d
C-M-u
C-M-a
C-M-e

(41)ディレクトリエディタ モード/dired mode -->>(C-x d)
* コマンド m mark ポイントのファイルをマークする *
* f オープン ファイルをオープンする,もしくはディレクトリの変更
* v ビュー ファイルを閲覧モードでオープン
* + mkdir ディレクトリを作る
* d デリート ファイルと空のディレクトリを削除します
* D マークデリート マークしたファイルを削除します
* M モード マークしたファイルのモードを変更する
* R リ1ネーム/ムブ ファイルの変更/削除を行なう
* C コピー
* S ソート
* X 実行
* Z ファイルを展開,圧縮
* g ファイルのグループを変える
* o ファイルのオーナーを変える
* C-x d MB -->入力 ~/
(42)以下のモジュールを入れた。
  モジュールに関しても Meadow2 の方がいいです。
下記のモジュールは必要にせまられて入れたのですが、
Meadow2 のパッケージには最初から入っているようです。
evi.el lookup-utils.el evi-mule.el 参照:http://www.mit.edu/afs/athena/contrib/xemacs/lib/xemacs/mule-packages/lisp/lookup/ (43)行の最初の文字へ移動する M-m (44) M-` で、メニューを出すことができる。
5.問題点
cygwin で使おうとすると、Windowsの環境変数名が、全て大文字になってしまう。
これは、cygwin1.dll の仕業であると教えていただいた。
cygwin/winsup/cygwin/environ.cc
: /* Turn environment variable part of a=b string into uppercase. */
: static __inline__ void
: ucenv (char *p, char *eq)
: {
:   /* Amazingly, NT has a case sensitive environment name list,
:      but only sometimes.
:      It's normal to have NT set your "Path" to something.
:      Later, you set "PATH" to something else.  This alters "Path".
:      But if you try and do a naive getenv on "PATH" you'll get nothing.
:
:      So we upper case the labels here to prevent confusion later but
:      we only do it for the first process in a session group. */
:   for (; p < eq; p++)
:     if (islower (*p))
:       *p = cyg_toupper (*p);
: }


6.メモ     diary.txt


ホーム