[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:02780] gene.el



すぐに流すつもりだったけど、ちょっと遅くなりました。

 >僕が作ったemacs lispなんですが、あれはとんでもなく
 >いいかげんに作ったものなんで、使わないでください。
 >かわりに、あれからちょこっとemacs lispを勉強してから
 >作ったものをあげます。50行ぐらいなんで、ここに
 >流してもいいですよね?
 >

lookで引けるようにした英和辞典をmuleで利用できる
ようにするemacs lispです。
----ここから------------------------------------------------

(defvar english-word-history '()
  "gene-word用のminibufferのhistory")

(defun gene-word (string)
  "引数stringの日本語での意味を表示します"
  (interactive (list (read-english-word "English word: "
				  (get-init-english-word))))
  (if (< (length string) 3)
      (if (y-or-n-p "String is too short! Many words may be displayed. OK?")
	  (call-look string))
    (call-look string)))

(defun call-look (string)
  "lookプロセスを呼ぶ"
  (save-excursion
    (set-buffer (get-buffer-create " *Gene*"))
    (erase-buffer)
    (call-process "look" nil t nil string "/usr/dict/gene.dic")
    (display-buffer " *Gene*")))

(defun read-english-word (prompt init)
  "minibufferから英単語を読み取る"
  (read-from-minibuffer prompt init nil nil 'english-word-history))

(defun get-init-english-word ()
  "pointの周りの英単語を初期英単語をして得る"
  (save-excursion
    (if (not (looking-at "\\<"))
	(forward-word -1))
    (downcase (buffer-substring
	       (point) (progn
			 (forward-word 1)
			 (point))))))

----ここまで-----------------------------------------------

これをファイル名gene.elとしてloadpath上のディレクトリに
保存して、.emacsに

;;; GENE
(autoload 'gene-word "gene" "英単語の日本語における意味を調べる" t nil)
(global-set-key "\C-xw" 'gene-word)

と追加すれば、たぶん使えます。

emacs lispをまだよく理解していないので、
関数などの使い方を間違っているかもしれないです。
--
========Tagami-K=========
d958094@xxxxxxxxxxxxxxxxx