私が通常 window で用いているエディタ Meadow 2 の設定ページです。 だらだら書いても仕方ないので,.emacs を用いて要点だけ述べます。 インストールの方法などは後日作成します。 参考にしたホームページは .emacs にも述べていますし, 最後に .emacs もまとめて載せておきます。 また,meadow のバージョンは 2.00b2 です。 研究室のアーカイブにある meadow は私が使用している環境をすべて含んでいますので, 研究室の人は以下の機能をすべて用いることが簡単にできるはずです。
- このページの設定でできること。
重要で必要となるのは,ボールドフォントで表されている上のほうの「日本語ファイル名の日本語ディレクトリ名の使用」から「occur」までです。 それ以外は,ほとんどの人には関係ないと思います。 以下では個々について lisp を用いて解説します。
- 日本語ファイル名と日本語ディレクトリ名の使用
- ファイル内の日本語検索
- やてふの設定
- 辞書機能
- Ispell と単語の補完
- BDF フォントの設定
- マウスカーソルを消す
- Next Visual line
- 文字のカウント
- 同一ファイルを開いたときにディレクトリも表示
- 文字列検索したときにハイライト
- キルリングの一覧を選択しヤンクできる
- IME の確定前の文字をミニバッファへ
- \C-k(kill-line) で行末の改行も含めて kill する
- ファイルを開く際にファイル名をカラフルにする
- タイトルバーにファイル名とディレクトリ名の表示
- occur について
- mew について
- emacs-w3m について
- プリントアウト
- Time-stamp: による編修ファイル中への保存記録のログ
- match paren
- このページの設定でできること。
- 日本語ファイル名と日本語ディレクトリ名の使用
(set-language-environment "Japanese")
上記の用にすると日本語ファイルとディレクトリ名が使用できます。 ただし,メニューバーでは日本語ファイル名が表示されません。 また,これで platex をかけてきちんと動くかは yatex の設定も絡みますので設定はこれだけで,終わらないと考えてください。
(setq-default buffer-file-coding-system 'japanese-shift-jis-dos)
(cd (decode-coding-string default-directory file-name-coding-system))
- ファイル内の日本語検索
(define-key isearch-mode-map "\C-k" 'isearch-edit-string)
編修ファイル中の日本語検索は IME 2000 との兼ね合いからできていませんでした。 今回の .emacs では二通りの方法で検索できるようにしています。
(require 'ekb-isearch);"lisp/ekb-isearch"をダウンロード今までよりも使用はしやすいです。
- 日本語モードのまま"\C-s"による検索,途中 IME のモードは変更することはできません。
- "\C-s"のあと"\C-k"をおす。
- やてふの設定の更新
(setq load-path
従来よりも非常にややこしい設定となっています。 個々の機構は以下のようになります。
(cons (expand-file-name
(concat nai-exec-directory "/site-lisp/yatex1.71"))
load-path))
(setq auto-mode-alist
(cons (cons "\\(\\.tex$\\|\\.sty$\\)" 'yatex-mode) auto-mode-alist))
(setq YaTeX-help-file (expand-file-name "YATEXHLP.jp" data-directory))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq tex-command "platex")
(setq dvi2-command "dviout"
dviprint-command-format "dvipsk -P dl %f %t %s"
dviprint-from-format "-p %b "
dviprint-to-format "-l %e")
;; yahtmlの設定 (setq auto-mode-alist
(cons (cons "\\.\\(html$\\|htm$\\)" 'yahtml-mode) auto-mode-alist))
(autoload 'yahtml-mode "yahtml" "Yet Another html-mode" t)
(setq yahtml-www-browser "iexplore")
;; ya???? 漢字コード
;sjis 1 or euc 3 or jis 2
(setq YaTeX-kanji-code 2)
(setq yahtml-kanji-code 1
yahtml-fill-column nil ; 自動折り返しを使わない
)
(add-hook 'yatex-mode-load-hook
(function
(lambda ()
(YaTeX-define-key "w" 'sdic-describe-word)
(YaTeX-define-key "\C-w" 'YaTeX-switch-mode-menu))))
(add-hook 'yatex-mode-hook
'(lambda ()
(wrap-function-to-control-ime 'YaTeX-%-menu t nil)
(wrap-function-to-control-ime 'YaTeX-typeset-menu t "P")
(wrap-function-to-control-ime 'YaTeX-switch-mode-menu t "P")
))
を搭載しました。 ここまでの設定 meadow 上から日本語 LaTex ファイルのコンパイルできない人は私と platex のバージョンの問題となると思われます。 各自で対応願います。
- 英語日本語 LaTex, style ファイルの編修とコンパイルと dviout の起動 ポストスクリプトファイルへの出力
- Tex ファイルの漢字コードを jis の漢字コードを標準
- html ファイルの漢字コードを sjis の漢字コードを標準
- "\C-w"を後述する SDIC へのキーバイド
- IME が ON となっていても"\C-c t j"などのキーバイドによるコマンドの実行
- html ファイル編集時 auto-fill 機能を無効化
- 辞書機能(SDIC)
(setq load-path (cons
SDIC機能です。 個人的にはかなりつかえます。 機能としては,単語上で"\C-c w"もしくは"\C-c W"にてそのカーソル上の単語もしくは mini-buffer 領域に調べたい単語を入力すれば単語の意味がでます。 ちなみに英訳だけでなく英日,日英が可能です。
(expand-file-name
(concat nai-exec-directory "/site-lisp/sdic") data-directory) load-path))
(autoload 'sdic-describe-word "sdic" "英単語の意味を調べる" t nil)
(global-set-key "\C-cw" 'sdic-describe-word)
(autoload 'sdic-describe-word-at-point
"sdic" "カーソルの位置の英単語の意味を調べる" t nil)
(global-set-key "\C-cW" 'sdic-describe-word-at-point)
(setq sdic-face-style 'bold)
(setq sdic-face-color "gold")
(setq sdic-waei-dictionary-list
'((sdicf-client "c:/Meadow/site-lisp/sdic/jedict.sdic")))
(setq sdic-eiwa-dictionary-list
'((sdicf-client "c:/Meadow/site-lisp/sdic/gene.sdic")))
- Ispell と 単語の補完
(defun ispell-tex-buffer-p ()
やっとできました,ISPELLです。 今までの ISPELL Ver.4 とは異なり設定が減りました。 また,日本語と英語が混じったファイルもあつかえます。 tex のコマンドなどは ISPELL しないようにもなっています。 ただし,単語の補完機構のための辞書は c:\words として置いておかなくてはなりません。 単語の補完機構を使用しないのであれば,問題ないですけどね。 また flyspell という機能も搭載しています。 英文を打ち込んでいるときにエラーチェックをしてくれます。 ただし,すごく重い。
(memq major-mode '(plain-tex-mode latex-mode
slitex-mode yatex-mode)))
(setq ispell-enable-tex-parser t)
(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checking" t)
(eval-after-load "ispell"
'(setq ispell-skip-region-alist (cons '("[^\000-\377]+")
ispell-skip-region-alist)))
(global-set-key "\M-t" 'ispell-complete-word)
- BDF フォントの設定
これについては,面倒だし,理解していないので略します。
- マウスカーソルを消す
(setq w32-hide-mouse-timeout 1000)
meadow のウィンドウ上にマウスが着次第,1000[ms]たつとマウスカーソルが消えます。
(setq w32-hide-mouse-on-key t)
- Next Visual line
(global-set-key "\C-p" 'previous-window-line)
visual line の機能はかなり重要です。 この機能はこの機能をなくしたときに,意識します。 解説は面倒なのでしません。
(global-set-key "\C-n" 'next-window-line)
(global-set-key [up] 'previous-window-line)
(global-set-key [down] 'next-window-line)
(defun previous-window-line (n)
(interactive "p")
(let ((cur-col (- (current-column)
(save-excursion (vertical-motion 0) (current-column)))))
(vertical-motion (- n))
(move-to-column (+ (current-column) cur-col)))
(run-hooks 'auto-line-hook))
(defun next-window-line (n)
(interactive "p")
(let ((cur-col (- (current-column)
(save-excursion (vertical-motion 0) (current-column)))))
(vertical-motion n)
(move-to-column (+ (current-column) cur-col)))
(run-hooks 'auto-line-hook))
- 文字カウント
(autoload 'word-count-mode "word-count"
文字をカウントします。 英単語が何単語あるのかを数えるのに役立つかと思い入れています。
"Minor mode to count words." t nil)
(global-set-key "\M-+" 'word-count-mode)
- 同一ファイル名を開いたときにディレクトリを表示
(require 'uniquify)
同一ファイル名を開いたときに, そのファイル名の横にディレクトリを表示してくれます。 便利です。
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)
(setq uniquify-min-dir-content 1)
- 文字列検索したときにハイライト
文字列検索をしたときに検索した文字列をハイライト化。 標準で搭載されました.
- キルリングの一覧を表示選択しヤンク
(autoload 'kill-summary "kill-summary" nil t)
キルリングの一覧を表示選択しヤンクする。 ヤンクとは,ペーストのことです。 キルリングとは今までカットしてきた文字の一覧です。
(define-key global-map "\M-y" 'kill-summary)
- IME の確定前の文字をミニバッファへ
(require 'isearch-fep)
日本語を検索すると検索日本語文字がミニバッファには表示されません。 これは,感覚的はすごく,やりにくいです. そこで,検索日本語文字をミニバッファへ表示する設定が上記の一行を .emacs ファイルに追加すればいいです。 追加する場所は, 前述した"ファイル内の日本語検索" "(require 'ekb-isearch);"の行の直後へ挿入してください。
- \C-k(kill-line) で行末の改行も含めて kill する
(setq kill-whole-line t)
そのまんまです。
- ファイルを開く際にファイル名をカラフルにする
(setq dircolors-face-color '(
ちょっと重たいですが,ファイルが見やすくなります。
(dircolors-face-dir "SkyBlue" )
(dircolors-face-doc "MediumTurquoise")
(dircolors-face-html "Plum" )
(dircolors-face-package "IndianRed" )
(dircolors-face-tar "OrangeRed" )
(dircolors-face-dos "LimeGreen" )
(dircolors-face-sound "LightBlue" )
(dircolors-face-img "Salmon" )
(dircolors-face-ps "BlueViolet" )
(dircolors-face-backup "Magenta" )
(dircolors-face-make "Khaki" )
; (dircolors-face-paddb "Orange" )
(dircolors-face-tex "Orange" )
(dircolors-face-lang "Yellow" )
(dircolors-face-emacs "GreenYellow" )
(dircolors-face-lang-interface "Goldenrod" )
(dircolors-face-yacc "Coral" )
(dircolors-face-objet "DimGray" )
(dircolors-face-asm "Tan" )
(dircolors-face-compress "Sienna" )
))
(require 'dircolors)
- タイトルバーにファイル名とディレクトリ名の表示
(setq frame-title-format "%b")
これは便利です。
- occur
;; color-occur
これは解説がむつかしいので解説しません。 occur という非常に便利な機能です。使い方などは ここ を見てみてください。
(load "color-occur")
;; color-moccur
(load "color-moccur")
;; moccur-edit
(load "moccur-edit")
- mew について
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq mew-icon-directory (concat nai-exec-directory "/site-lisp/etc/Mew"))
(if (boundp 'read-mail-command)
(setq read-mail-command 'mew))
(autoload 'mew-user-agent-compose "mew" nil t)
(if (boundp 'mail-user-agent)
(setq mail-user-agent 'mew-user-agent))
(if (fboundp 'define-mail-user-agent)
(define-mail-user-agent
'mew-user-agent
'mew-user-agent-compose
'mew-draft-send-message
'mew-draft-kill
'mew-send-hook))
メーラの mew の設定です。 補助の .mew.el というのがいります。
- emacs-w3m について
(autoload 'w3m "w3m" "Visit the WWW page using w3m" t)
meadow の上で web を見るためのものです。 軽いので楽しいです。 欠点は,暗い。 ま,設定不足なんでしょう! あとは,使いこなさないとね。
(autoload 'w3m-find-file "w3m" "Find a local file using emacs-w3m." t)
(autoload 'w3m-browse-url "w3m" "Ask emacs-w3m to show a URL." t)
(autoload 'w3m-antenna "w3m-antenna" "Report changes of web sites." t)
(autoload 'w3m-bookmark-view "w3m-bookmark" "Show bookmarks." t)
(autoload 'w3m-dtree "w3m-dtree" "Display a directory tree." t)
(autoload 'w3m-namazu "w3m-namazu" "Search files with Namazu." t)
(autoload 'w3m-perldoc "w3m-perldoc" "View Perl documents" t)
(autoload 'w3m-search "w3m-search" "Search words using emacs-w3m." t)
(autoload 'w3m-weather "w3m-weather" "Display a weather report." t)
- Time-stamp: による編修ファイル中への保存記録のログ
(if (not (memq 'time-stamp write-file-hooks))
ファイルの下から数えて20行目までに「Time-stamp " " 」という文字列があるとそのあとにセーブした日付を挿入する機能をもっています。 ホームページでよく用いました。 "time-stamp-line-limit" はファイルの下から数えて20行目までを指定しています。 これを正の数で指定するとファイルの最初から ? 行目という風に指定できます。 ちなみに"time-stamp-line-limit" と "time-stamp-format" については, emacs-lisp には Don't change と 書かれているので, あまりまねしないように.
(setq write-file-hooks
(cons 'time-stamp write-file-hooks)))
(setq time-stamp-line-limit -20)
(setq time-stamp-format "%02y.%02m.%02d")
- match paren
(define-key emacs-lisp-mode-map "%" 'match-paren)
match-paren は emacs-lisp ファイルを編修するときに用います。 "%"キーを押したときに emacs-lisp ないの対応するところにカーソルを移動させます。
(global-set-key "%" 'match-paren)
(defun match-paren (arg)
"Go to the matching parenthesis if on parenthesis otherwise insert %."
(interactive "p")
(cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1))
((looking-at "\\s\)") (forward-char 1) (backward-list 1))
(t (self-insert-command (or arg 1)))))
- 参考にしたページ。大変お世話になりました。 特に最初の3つは非常に細かくのっているので大変参考になります。
- Meadow Official Site Meadow の公式ページです。
- ようこそ KOSE のページへ おそらく,現状の meadow のページを運営している人で最強です。
- Emacs / Meadow の覚え書き 細かい設定がたくさん載っています。
- Meadow memo 細かい設定がたくさん載っています。 最近(2003/07/23)時点でもっともお世話になっています。
- Mule/Meadow Tips SDICとキーバインドの上書きを参考にしました。
- Meadow kill-ringなどのヤンクについてです。
- 問題点もしくはさらなる設定の予定
- ファイルによっては以下のような error がでます。解決策がわからない。
File mode specification error: (args-out-of-range "MS ゴシック-16" 30 34)
最後に私の .emacs と .mew.elを載せておきます。 -> .emacs (03.07.24) .mew.el(03.07.24 研究室内のみ)
ブラウザによっては,注釈の日本語が読めないと思います。ごめんなさい。