トップページ⇒tech
1001コメント352KB

Emacs Lisp 2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
Emacs Lisp の専用スレ。
少数派による互助を中心に、初心者の相談も気が向けば受け付けます。
単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。

前スレ
Emacs Lisp
http://pc2.2ch.net/test/read.cgi/tech/1004551074/

関連スレ
Emacs part10
http://pc.2ch.net/test/read.cgi/unix/1066719492/
LISP Scheme Part8
http://pc2.2ch.net/test/read.cgi/tech/1058263391/
0002デフォルトの名無しさんNGNG
2
0003デフォルトの名無しさんNGNG
(・∀・)ニヤニヤ 3-get-p?
0004前スレ988NGNG
こういうのでいけるかと思ったけど...

(fset 'original-defun (symbol-function 'defun))

(defun map-tree (f tree)
(if (consp tree) (mapcar #'(lambda (item) (map-tree f item)) tree)
(funcall f tree)))

(defmacro defun (name argument-list &rest body-forms)
(let ((new-name (intern (concat "cl-" (symbol-name name)))))
`(original-defun ,new-name ,argument-list
,@(map-tree #'(lambda (item)
(if (eq name item) new-name item))
body-forms))))

(defun fact (n)
(if (<= n 1) 1
(* n (fact (1- n)))))

(symbol-function 'cl-fact)
=> (lambda (n) (if (<= n 1) 1 (* n (cl-fact (1- n)))))

;;; *** これを忘れずにしよう ***
(fset 'defun (symbol-function 'original-defun))
0005前スレ988NGNG
こういうのが駄目だと気づいた。

(defun even-p (n)
(if (zerop n) t
(odd-p (1- n))))

(defun odd-p (n)
(if (zerop n) nil
(even-p (1- n))))

(symbol-function 'cl-even-p)
=> (lambda (n) (if (zerop n) t (odd-p (1- n))))

(symbol-function 'cl-odd-p)
=> (lambda (n) (if (zerop n) nil (even-p (1- n))))
0006前スレ988NGNG
結局こんな感じにするしかないのか?誰かいいアイデアない?

(defvar cl-symbol-list '(fact even-p odd-p)) ; cl の symbol すべてを列挙する

(defmacro defun (name argument-list &rest body-forms)
(let ((new-name (intern (concat "cl-" (symbol-name name)))))
`(original-defun ,new-name ,argument-list
,@(map-tree #'(lambda (item)
(if (memq item cl-symbol-list)
(intern (concat "cl-"
(symbol-name item)))
item))
body-forms))))
0007デフォルトの名無しさんNGNG
> ; cl の symbol すべてを列挙する
これは多分必要だろうね。
ついでに subrで定義されてるけど clで再定義されちゃう関数対策も。
0008デフォルトの名無しさんNGNG
つーかもういいよ。嫌いな人も cl はレスごと Navi2ch であぼーんでもすりゃいい
でしょう。漏れもさりげなくロードされてたみいだしもういいや。2ch で必死にl を
排除しても使ってるパッケージがロードしてちゃぁねぇ。ぶっちゃけランタイムにロー
ドされてても実害ないんだろ?
0009デフォルトの名無しさんNGNG
cl 好きなのはかまわんが、警告無しで非互換な変更されることがあるぞ。
例えば、emacs20 で mapc は cl 関数として
(mapc CL-FUNC CL-SEQ &rest CL-REST)
と定義されていた。emacs21 になって built-in になったんだけど、
(mapc FUNCTION SEQUENCE)
と、一つしかシーケンスを受けとらなくなった。NEWS には新規にmapc が実装
されたとは書いてあるけど、cl ユーザーへの notice は何も無し。ランタイ
ムで cl を要求するコードは推奨してないのだから、そういったコードへの配
慮は必要無いってことみたい。
00108NGNG
別に cl 好きではない。むしろ emacs スレではアンチ cl だった。でも、
知らない間にロードされてんの。アンロードとかできないんでしょ?
使ってる elisp を全部チェックして cl 使ってるやつを排除するのマンドクサ。
激しく致命的な問題があるなら考えるけどさぁ…。
0011デフォルトの名無しさんNGNG
全部チェックしなくても
(require 'loadhist)
(file-dependents (feature-file 'cl))
これでわかるよ。
0012not 8NGNG
>>11
おーこれ知らんかったー、サンクス。やってみたら犯人は completer だった。
こいつはしゃーないなぁ…
0013デフォルトの名無しさんNGNG
一つ外すとまた別のが表示させるから、これがなくなるまでやっていけって?
color-theme を外して…げっ!eieio とか外しちゃ話になんねぇ…。つーか…これって、
コンパイル時に使ってるだけの奴もひっかかってない??やっぱ手動チェックかなぁ…。
0014デフォルトの名無しさんNGNG
犯人ってひどい言い様だな。もう、いい。漏れは eieio は捨てられん。
cl ロードしていいよ。もう cl 使うな原理主義者の文句は甘受する。
つーか、(require 'cl) するだけじゃねーか?俺関数が乱立するよか
よっぽどマシだろ。
0015デフォルトの名無しさんNGNG
cl をロードしてるっぽいパッケージ一覧。(require 'cl)で grep。
tuareg, eieio, ecb, haskell-mode, ilisp, python-mode
speedbar とかかな。sml-mode や navi2ch や Mule-UCS の一部にも
eval-when に囲まれてない (require 'cl) があるな。でもコンパイル
して使う分には問題ないの?つーか、そこまでして cl は避けなきゃいけないの?
0016デフォルトの名無しさんNGNG
そもそも、なんで cl は自分で定義する関数、マクロ等々を cl-... とプレフィックスを付けなかたったの?
そもそも、なんで elisp にはパッケージ管理等の名前空間管理システムがないの?
そもそも、なんで elisp は dynamic bind なの?
0017デフォルトの名無しさんNGNG
全部 rms のせい。
言動を見てると、Emacs Lisp はあくまでもエディタ拡張用言語であり、
本格的なプログラミングには別の言語を使って欲しいような感じ。
0018mamiNGNG
>>15
> eval-when に囲まれてない (require 'cl) があるな。
navi2ch で bcomp.el 以外にあります?
0019デフォルトの名無しさんNGNG
>>16 dynamic bind 云々は Lisp の歴史を考えれば仕方ないだろう。てゆう
か、cl なんかロードしちまってもいいんじゃねーの?と flim とかで苦しんだ漏れは思うわけだが。
ま、病的に cl を恐れてるんじゃなければ、かまわんだろ。そんなことより
もっと elisp 話しようよ。
0020デフォルトの名無しさんNGNG
> もっと elisp 話しようよ。
そだね。じゃあ、どうでもいいネタをひとつ。こういうマクロ作ってみた。
make-symbol の使い方はこんなんでいいの?

(defmacro alist-bind (var-list alist &rest body)
;; (declare (indent 2) (debug t))
(let ((tmp-alist (make-symbol "tmp-alist")))
`(let ((,tmp-alist alist))
(let ,(mapcar #'(lambda (var) `(,var (cdr (assq ',var ,tmp-alist))))
var-list)
,@body))))

(setq alist '((a . 1) (b . 2)))

(alist-bind (a b) alist
(list a b))
=> (1 2)
0021デフォルトの名無しさんNGNG
別に cl依存したパッケージ作成されようが俺的には全然構わんが、
# たとえ eval-when-compileとかしてなくっても、だ。
clな関数な話題は、なるべく lispスレを利用していただきたい。
0022デフォルトの名無しさんNGNG
>>20
make-symbol はそれでいいけど、
< `(let ((,tmp-alist alist))
> `(let ((,tmp-alist ,alist))
0023デフォルトの名無しさんNGNG
>>21
> clな関数な話題は、
今の話題は cl な関数自身ではなく、cl がもたらす弊害について。
つまり、このスレ以上に適切なスレはない。
おまいが舞う構わないは全く関係無い。
0024デフォルトの名無しさんNGNG
ちゅーか、なんで cl な関数な話題は lisp スレで、なの?
cl って elisp で書かれた elisp 用のライブラリだよね?
0025デフォルトの名無しさんNGNG
>>23
cl の弊害って今まででた奴は A. 標準関数を拡張しちゃう、B. 俺関数とあたる、
C. 将来の非互換の可能性、くらいか? B. C. はあらゆるライブラリに共通だと
思うが、A. はいかんともしがたいな。我慢できねー香具師は我慢ならんだろう。

mapc なんかも Common Lisp というリファレンスがあるだけわりと互換性の
ある変更で済んでマシな部類だっと思うけどねぇ。
0026デフォルトの名無しさんNGNG
A は cl 的には bug じゃないの?
info ではバッティングは避けるようなこと書いてあったけど。
0027デフォルトの名無しさんNGNG
というかさ、name space が一つしかないんだから、
emacs がこの先どれくらい進化するのか知らんけど、
こういうどろくさい部分は残り続けるな。
つーかすでに妥協のかたまりみたいなもんで、
本当にクリーンなもの使いたいなら hemlock とか使うしか。
0028デフォルトの名無しさんNGNG
>>22
うおっと、たまたま変数名が同じで動いてただけか。
しかし、なかなか話題が変らんな... 2ch であーだこーだ言っても仕方無かろうに。
0029デフォルトの名無しさんNGNG
他に話題もないようだし、いいんじゃねーの?
0030デフォルトの名無しさんNGNG
(defun hoge (x y)
(mapcar (lambda (z) (cons x z)) y))
こんな関数どっかにある?
0031デフォルトの名無しさんNGNG
>>30
あるとしたら、どんな名前になると思う?
0032デフォルトの名無しさんNGNG
map-cons
00338NGNG
>>18 それだけです。bcomp.el ってバイトコンパイル用の lisp ですか。
   ちょっと見ればわかるのに、よく読まずに名前を挙げてしまって申し訳ないです。
0034デフォルトの名無しさんNGNG
>>30
わざわざ別関数にするほど汎用性があるとは到底思えないのだが
0035デフォルトの名無しさんNGNG
別関数にした理由は2回でてきたのと
lambdaの中で使ってたのでlambdaを減らして見やすくしようかと。
0036デフォルトの名無しさんNGNG
前スレ後半に出ていた loop を使って、
(loop for z in y collect (cons x z))
と書けば?と思ったが、
(mapcar (lambda (x z) (cons x z)) y)
こっちとタイプ数が変わらない事に気づいた。だめじゃん loop …
ま、こんなの適当に名前つけとけばいいんじゃないの?
0037デフォルトの名無しさんNGNG
また話を蒸し返す……。
0038デフォルトの名無しさんNGNG
漏れは cl 良いと思うけどね。気にせず語れや。loop だって while に
展開されるんだから elisp 的にグッドじゃないか。漏れ的には
無いと死ぬ: case, ecase, reduce, ignore-errors, count-if
あれば便利: find, loop, destructuring-bind, every, some
return, return-from, flet, labels, rotatef
union, merge とか
嫌い: do (読みにくくない?漏れだけ?)
てな感じなわけだ。つーか、初心者に cl 使うなって教えるのか?
あれば便利なんだし、注意点を教えるだけでいいんじゃないかなぁ。
…でも do だけは勘弁な。
0039デフォルトの名無しさんNGNG
(ふりだしに戻る)
0040デフォルトの名無しさんNGNG
Emacs Lisp の専用スレ。
少数派による互助を中心に、初心者の相談も気が向けば受け付けます。
単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。

前スレ
Emacs Lisp
http://pc2.2ch.net/test/read.cgi/tech/1004551074/

関連スレ
Emacs part10
http://pc.2ch.net/test/read.cgi/unix/1066719492/
LISP Scheme Part8
http://pc2.2ch.net/test/read.cgi/tech/1058263391/
0041デフォルトの名無しさんNGNG
elispと関係なく cl利用なコード披露したがる奴が
時々現れるから変な事になるんだろ?
ま、elispと関係なく scheme的なコード披露したがる奴も
たいていセットなんだけど。
なんで自分達の巣におさまってないのかねぇ。
0042デフォルトの名無しさんNGNG
scheme的なコードも嫌われるの? 何故?
0043デフォルトの名無しさんNGNG
末尾再帰で書くから
0044デフォルトの名無しさんNGNG
eval-and-compileって、これで括らない場合とどう違うのか、
ドキュメント読んでも分かりません。
具体的に、どういう時に有効なのでしょうか?
0045デフォルトの名無しさんNGNG
コンパイルされることを前提にいくつもの環境を念頭においた*.elや.emacsを書いていてload-pathやrequireが絡むときとか。

てゆーか人に聞く前にgrepくらいしろぃ。
標準添付のelispでも結構使われてるじゃねーか。
0046デフォルトの名無しさんNGNG
>>41 Scheme 的なコードって再帰つかうやつことの話?
41 の思う elisp なスタイルってどんなのよ?
0047デフォルトの名無しさんNGNG
cl 禁止ってこたぁ ignore-errors も使っちゃだめなの?エラー処理とかどうすんだよ… >>41
(codition-case 'hoge
(progn (エラーを無視したいコード))
(error nil))
とか書かなきゃならないの?マンドクサ…。
0048デフォルトの名無しさんNGNG
>>45
grepぐらいしてるよ〜。あちこちで見かけるけどサパーリ分からなくて
悲しい思いしてるのに、無下に切り捨てないでくれよ。
0049デフォルトの名無しさんNGNG
>>47
同じような意見は何度も出てるんだけど、わざとループさせようとしてるの?
0050デフォルトの名無しさんNGNG
ループって今迄に ignore-errors の話が出てたのか…?いや、使うなって意見が
激しくしつこいから、無しでやっていってるのかな〜とおもって。(condition-case ...)
で長くなったらダルくない? 漏れは ignore-errors とかは使うほうが良いと思うし、
どーせ cl 使うなら便利な機能の話は有難い。しかし、本当に使ってはいけないなら
使うのを止めてもいい(別に愛着があるわけじゃないし)。 ロードしたくない人むけに
eval-when-compile でコンパイル時に使うようにすりゃいいだけの話ではないの?
0051デフォルトの名無しさんNGNG
>>48 どーゆう時に役に立つかって?
1 - cl をランタイムにロードするのが我慢ならない人が居ます。
2 - 普通に (require 'cl) と書くと,そのプログラムをロードしたときに cl がロードされてしまいます。
3 - したがって cl を使うときは (eval-when-compile ...) で囲んでコンパイル時に評価しておきます。
すると,そのプログラムをロードしても cl はランタイムにはロードされません。cl を使うときは
eval-when-compile で囲むのが御行儀が良いとされています。eval-when-compile はこーゆう時に有効なのです。

え、コンパイルしないでロードしたら? その場合は普通に require されてしまうの
で、elisp コードをむやみに評価しないように気をつかいましょう。下手をすると
cl がロードされてしまいます。

# 気にしない人は全然気にしないからこの手の話は荒れるんだよな…。
0052デフォルトの名無しさんNGNG
ignore-errors は普通に elispなコード書いてても便利だよね。
(require 'cl)して利用してるパッケージも多いし、
俺もここで書かれるまで clのとは知らなかった。
このスレで clウザがられてるのは、
elisp(emacs上で動かしたい)コードの一部として
loop なり mapcon なりが出てるのでなく、
それを使う事自体が目的に見えるというか、全面に出てきすぎてて
拒否反応起こす人がいるとか?
あと各種パッケージでも利用頻度低い clの関数は
馴染みがないわけだし。
# incfあたり、そろそろ解禁日も近い感じがするが。
0053デフォルトの名無しさんNGNG
>>51
× eval-when-compile
○ eval-and-compile

;; eval-when-compile は自明っしょ。
0054デフォルトの名無しさんNGNG
バイトコンパイル時には、トップレベルのフォームのうち、限られた物しか
評価されない。あるフォームをバイトコンパイル時にも確実に評価したい場合、
eval-and-compile で囲む。
foo.el:
(eval-and-compile
(message "hoge")
(sit-for 1))
bar.el:
(message "hoge")
(sit-for 1)
をバイトコンパイルしてみると違いがわかる。
0055デフォルトの名無しさんNGNG
自分で書いたわけでなくて申し訳ないが、例えば↓とか読みやすくない?
(defun url-encode-string (str &optional coding)
(apply #'concat
(loop for c across (encode-coding-string (or str "") (or coding 'iso-2022-jp))
collect
(cond ((= c ?\n) "%0D%0A")
((string-match "[-a-zA-Z0-9_:/.]" (char-to-string c))
(char-to-string c))
((= c ?\x20) "+")
(t (format "%%%02x" c))))))
0056デフォルトの名無しさんNGNG
>>50
未出の各マクロについてこれは便利だから…てやってったらループじゃん。
これまでに cl マクロ自体の有用性を否定してる人はほとんどいないから、
個別のマクロ挙げていっても意味ないわけ。
>>52 が書いてるように、cl で書くこと自体が目的のようなレスが目立ったり、
cl から発展して Common Lisp 自体の議論 (loop マクロの是非等) を延々と
続けられたりしたので、cl マクロを使ったコードを *このスレに書く* のが
嫌われてる。
0057デフォルトの名無しさんNGNG
… cl のコードを LISP スレに貼ってどうなると言うのだ?
つーか、emacs 用コードを lisp スレに貼られてもなぁ…。
elisp の話は elisp スレのが相応しいような…。
0058デフォルトの名無しさんNGNG
>>57
前スレ後半あたりとか、別にemacs用コードじゃない clなコードが
ちょっと多めだったよ。あのあたりからじゃん、clネタのループって。
0059デフォルトの名無しさんNGNG
よっしゃ。そんじゃ、とりあえず 55 のコードを理想的な elisp スタイルに
書き直して loop に引導を渡してやれ!俺は while に展開されるなら、まぁ、
いいかなぁという気がしている。elisp らしいスタイルとやらをビシっと見せてくれ。
0060デフォルトの名無しさんNGNG
元コードって w3m-url-encode-string じゃないの?
0061デフォルトの名無しさんNGNG
ああ!もう! elisp は末尾再帰が最適化されないんだから話題の tail call はやめてよ!!
0062デフォルトの名無しさんNGNG
>>59
(defun my-url-encode-string (str &optional coding)
(apply #'concat
(mapcar (lambda (c)
(cond ((= c ?\n) "%0D%0A")
((string-match "[-a-zA-Z0-9_:/.]" (char-to-string c))
(char-to-string c))
((= c ?\x20) "+")
(t (format "%%%02x" c))))
(encode-coding-string (or str "") (or coding 'iso-2022-jp)))))
0063デフォルトの名無しさんNGNG
あ、(apply #'concat (mapcar (lambda ... は (mapconcat (lambda ...
の方がいいか。
0064デフォルトの名無しさんNGNG
elisp キターー。elisp 入門者の漏れは初めて mapconcat 使いどころがわかりますた。アタマイイ!
さすがに loop よりビルトインの mapcar や mapconcat のが速いですね。いや〜勉強になります。
elisp だと効率が大事なところは組み込みの map 系を使うのが最速ですかね?
ところでこーゆうときは mapconcat のセパレータは "" と nil のどっちがいいんでしょう?
0065デフォルトの名無しさんNGNG
elisp 上の性能なら ビルトイン > while = loop > 再帰 だろう。elisp レベルの
反復より C レベルの反復のが速いのは当然。再帰は…Scheme 化を待て。
0066デフォルトの名無しさんNGNG
同じシンボルで関数セル、変数セル、属性セルの
三つとも利用してるコードって結構沢山あると思うんだけど、
もしもし scheme化されたら、そーいうのってどうするの?
0067デフォルトの名無しさんNGNG
置換の関数使ってもいいんじゃない?
0068デフォルトの名無しさんNGNG
結構メジャーなパッケージでも、
複数に分けた方がいいような一つの関数が
必然性もなく長々続くことがあるので、
なんでこんな書き方するんだろうなーと思ってたが、
多数の人間で長い間開発してると、他の人への配慮もあって、
なかなか無闇に関数を整理できなくなってくるからかもと
思い始めた。
0069デフォルトの名無しさんNGNG
>>66
http://www.gnu.org/software/guile/docs/guile-ref/Symbol-Props.html
elisp からの変換用に、シンボルには関数スロットやプロパティスロットも
用意されてるよ。後はトランスレータの仕事。
0070デフォルトの名無しさんNGNG
変数、関数はともかく、property は関係無いでそ
0071デフォルトの名無しさんNGNG
guile-emacsって進んでるの?
がんがったけど、あきらめたのかと思ってたんだけど。
emacs21互換のguile-emacsは無いよね。
0072デフォルトの名無しさんNGNG
一応やってんのかな。
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile/guile-core/lang/elisp/ChangeLog?rev=1.11&content-type=text/vnd.viewcvs-markup
guile-emacs 0.1 で動くことはわかったので、Emacs 側への統合開始の条件である
Emacs Lisp との 100% 互換を目指してるはずだけど…
このペースだと使い物になるのは10年後くらいか。
0073デフォルトの名無しさんNGNG
guile-emacs といえば、lookup の作者はどうした
0074デフォルトの名無しさんNGNG
>>73
おごちゃんに弟子入りしてバリバリのコボラになってしまった。;_;
なんでリスパがコボルに。
0075デフォルトの名無しさんNGNG
>>74
lookupの開発は誰か引きついでるの?
0076デフォルトの名無しさんNGNG
>>74
相当の変人だと思っていたが、そこまで変人とは
0077デフォルトの名無しさんNGNG
どんなところが変人なの? >>76
0078デフォルトの名無しさんNGNG
>>75 Lookup が放棄されて有志が引き継いだのは有名な話。
0079デフォルトの名無しさんNGNG
>>76 匿名だからってそんなこと書いちゃいくないね。
0080デフォルトの名無しさんNGNG
>>78
のこのこ戻ってきて、また放り出したのも有名
0081デフォルトの名無しさんNGNG
lookup の現状がよくわからない
0082デフォルトの名無しさんNGNG
あんまり脱線すると「○○話は××スレで」とスレ奉行様のお怒りを買うぞ。
0083デフォルトの名無しさんNGNG
スレ奉行の話はスレ奉行スレで
0084デフォルトの名無しさんNGNG
うーん、はまった。
(defun foo (function)
(funcall function))
(defun bar (function)
(foo (lambda () (funcall function))))
(bar (lambda () (print "hoge")))
→(error "Lisp nesting exceeds max-lisp-eval-depth")
ここまで短くすればすぐわかるけど、実際はもっとゴチャゴチャなので、
なぜ動かないのかしばらくわからなかった。
せめて仮引数くらいは lexical scope キボン。
0085デフォルトの名無しさんNGNG
(defun bar (function)
(foo `(lambda () (,function))))
0086デフォルトの名無しさんNGNG
(defun bar (function)
(foo function))
0087デフォルトの名無しさんNGNG
>>85
それだと function じゃなくて cons を渡してることになる。
動作は同じだけどバイトコンパイルされない。

>>86
84 は単純化してる。実際はもっと複雑な処理をする高階関数からもっと複雑
な処理をする高階関数を読んでるので、その指摘は的外れ。
0088デフォルトの名無しさんNGNG
(defun bar (function)
(foo (byte-compile `(lambda () (,function)))))
0089デフォルトの名無しさんNGNG
>>88
byte-compile がコンパイルする引数は lambda。car が 'lambda のリストではない。
実際にそれで動くということと、そう書いていいかということは違う。
0090デフォルトの名無しさんNGNG
>byte-compile がコンパイルする引数は lambda。
lambdaってのはどういう意味なの?
0091デフォルトの名無しさんNGNG
ラムダ(λ)
lambda
<サイエンス‐単位・計測>
微小な体積を表すのに用いてきた単位で、一マイクロリットル、すなわち一〇億分の一立方メートルに
当たる。

0092デフォルトの名無しさんNGNG
10年くらい前、ワールドミュージック(死語?)の流れで瞬間的に流行ったダンス音楽。
0093デフォルトの名無しさんNGNG
>>84
仮引数の名前にプレフィックスをつけとく。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/index.html#cl-elisp-memo-lambda
前スレでも同じ話題がでてた。
0094デフォルトの名無しさんNGNG
84は実は今回嵌ったわけでもないが、話題作りのために
嵌ったふりをしているに一票。
# いや、参考になったけど。
0095デフォルトの名無しさんNGNG
elisp パッケージの発表場所で、有名どころは日本にある?
ドキュメントが英語なら gnu.emacs.sources でいいだろうけど。
0096デフォルトの名無しさんNGNG
XEmacs 専用パッケージは gnu.emacs.sources にはポストしにくいでしょう?
0097デフォルトの名無しさんNGNG
http://www.emacswiki.org/cgi-bin/emacs-jp.pl
とりあえずこのあたりはどうか。日本とは言えないかもしれないけど
0098デフォルトの名無しさんNGNG
>>97
> * 日本人制作 Elisp の公開場所の提供、
ここは良さそうだね。

http://www.emacswiki.org/elisp/index.html
elispパッケージの一覧もあるし。

各パッケージの先頭一行目に書かれている説明が日本語に翻訳されていると、
英語が苦手な人が選ぶときにいいとおもう。
;;; a-menu.el --- create a menu from a specified directory
これを
;;; a-menu.el --- 指定したディレクトリからメニューを生成する。
として一覧になっているといいなと。
あっ、俺がやればいいのか。
0099デフォルトの名無しさんNGNG
Nemacsも対象なのか。メモ用に併用してる俺のために、
M-x とか M-:でヒストリ使えるようにする elispとか誰か作ってくれないかな。
多分どこかのアーカイブに埋もれてそうな気もするが。
0100デフォルトの名無しさんNGNG
100ゲトズザ。
Nemacs Lisp と GNU Emacs Lisp の違いを一行で述べよ。
俺の超能力によると、Nemacs lisp = GNU Emacs19 Lisp + 日本語処理関連。
0101デフォルトの名無しさんNGNG
そうですか、誰にも相手をしてもらえませんか。
googleでちょろっと調べた感じでは、
Nemacs lisp = GNU Emacs18 Lisp + 日本語処理関連
みたいですね。
私はelispパッケージを開発するときは最低限度として、GNU Emacsの最新版と
XEmacsの最新版で動くように気をつかっているけど、さすがにNemacsまでは
手がまわらないという気持ちです。
■ このスレッドは過去ログ倉庫に格納されています