1 名前:デフォルトの名無しさん [2007/10/09(火) 05:39:53 ] Emacs Lisp の専用スレ。 少数派による互助を中心に、初心者の相談も気が向けば受け付けます。 単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。 過去スレ Emacs Lisp pc2.2ch.net/test/read.cgi/tech/1004551074/ Emacs Lisp 2 pc11.2ch.net/test/read.cgi/tech/1068467385/ 関連スレ Emacs part 22 pc11.2ch.net/test/read.cgi/unix/1180828013/ 【叩かれて】Emacs Lisp道場【強くなれ】 pc11.2ch.net/test/read.cgi/unix/1063880951/ Lisp Scheme Part18 pc11.2ch.net/test/read.cgi/tech/1186922295/
281 名前:269 mailto:sage [2009/09/26(土) 04:27:21 ] >>272-276 回答頂きありがとうございます. まだ未熟でコードの善し悪しの判別は付きませんが,提示頂いた lexical-let を使って書くことにしました. ちなみに quote 内で評価する場合は(回答頂いた中では) >>270 でしか展開さ れないみたいですね. (lexical-let ((s "test")) (quote s)) => s (let ((s "test")) `(quote ,s)) => "test" 非常に勉強になりました!!
282 名前:Zeno ◆5nZQbNmQPs mailto:sage [2009/09/26(土) 04:41:58 ] >>281 > ちなみに quote 内で評価する場合は(回答頂いた中では) >>270 でしか展開さ > れないみたいですね. 当たり前だ。 quote は数ある special form の一つで、 その引数は評価されないまま内部に渡される。 根本的に理解できていないようだから、まずは common lisp から 学んでみることを勧める。 わかったらさっさと本屋に直行しろ。
283 名前:Zeno ◆5nZQbNmQPs [2009/09/26(土) 04:47:51 ] 私は emacs スレを長らく留守にしていたのだが、 フンバリャーウンコ・ヨーデルは現れなかったかね? フンバリャーウンコ・ヨーデルはいるかね? 見ているなら返事をしたまえ。
284 名前:269 ◆PC9p7J5igw mailto:sage [2009/09/26(土) 05:59:41 ] >>282 quote については理解しているつもりですが, 今回は引数を渡す前に例外的に評価されるようにしたかったのです. quote でも渡される前に評価されると思ったのは, lambda が function で内 包して返すマクロだからです. (macroexpand (lambda () "test")) => (function (lambda nil "test")) しかし,function でも渡される前に評価されるわけではないんですね (lexical-let ((s "test")) (function s)) => s そもそも help に書いてありました... >lambdas inside BODY will create lexical closures lisp を理解できていないのは自覚しているのでアドバイス通り common lisp から勉強したいと思います.
285 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 08:39:51 ] 復刊なった「はじめての人のためのLisp」が発売されたら、 少しは、「少しは本を読め」な質問減るかなぁ。
286 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 09:37:27 ] CommonLispを勉強したら EmacsLispが嫌になっちゃったりして。
287 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 11:05:12 ] そしたらようこそwin&xyzzy Macで使えたらなぁ…
288 名前:デフォルトの名無しさん [2009/09/26(土) 11:12:08 ] ソース公開されてるよ。C++で書かれていたので面倒くさくて読んでないけど。
289 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 18:52:57 ] Common Lisp と Emacs Lisp の関数の対照表みたいなのってある?
290 名前:Zeno ◆5nZQbNmQPs [2009/09/26(土) 20:56:17 ] >>289 ああ、在る。
291 名前:Zeno ◆5nZQbNmQPs [2009/10/02(金) 16:10:23 ] >>284 頑張れよ ttp://www.gnu.org/software/emacs/manual/html_mono/elisp.html
292 名前:デフォルトの名無しさん [2009/10/05(月) 22:29:10 ] Emacs LispとCommon Lispの違いは何でしょうか? 私はUbuntuにclispをインストールし、端末上でClispを起動した後,(format t "Hello World")と打ち込んでEnterを押しました。 実行結果として、端末にHello Worldと表示されました。 しかし、Emacs上で上記を打ち込んでCtrl + jを押しますと、エラーらしき文章が・・・ Emacs Lisp と Common Lispというのは方言の違いを表しているのでしょうか、 実際に、出来ることと出来ないことの差というものもあるのでしょうか?
293 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 22:37:44 ] そりゃ別のものだからね。差もあるだろう。
294 名前:デフォルトの名無しさん [2009/10/05(月) 22:43:04 ] >>293 Emacs lispの使われる用途 Common lispの使われる主な用途 を教えてください。 また、上記両方のlispに関して参考サイトとしての大御所・・・と言えるような海外サイトがあれば教えて頂きたい
295 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 22:50:08 ] Emacs Lisp はそりゃ Emacs を拡張したり開発したりするのに使う。 Common Lisp はもっと計算速度が欲しいとか大規模なものを作る人々が使う。 大御所ねぇ。権威が欲しいならHaskellとかScalaとかピカピカのやつやったほうがいいと思うよ。
296 名前:デフォルトの名無しさん [2009/10/05(月) 22:53:29 ] 成る程・・・ わかりました。最初はCommon Lispから始めようと思います。それでは
297 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 22:54:26 ] オイオイ… Emacs Lisp は Emacs の名を冠するだけあって Emacs の拡張・カスタマイズ用に決まっておろうが。 Emacs は本当に基本的なコアを除いて Emacs Lisp で書かれてるんだぜ。 Common Lisp の主な用途って言っても汎用言語の主な用途なんて言ってもしょうがないと思う。 とりあえず Common Lisp スレがあるからそっち行け。
298 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 23:10:48 ] っttp://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/comparison.html
299 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 09:26:11 ] lispは方言が多い言語としても有名なんだったよね。
300 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 23:01:43 ] ruby
301 名前:デフォルトの名無しさん [2009/10/07(水) 00:35:00 ] JavaScript も Lisp in C's Clothing だ
302 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 00:39:37 ] 標準ライブラリみたいなもんって lisp だと何?
303 名前:デフォルトの名無しさん [2009/10/07(水) 00:42:55 ] CL なら CLtL2 Scheme なら SRFI
304 名前:デフォルトの名無しさん [2009/10/07(水) 17:19:58 ] Emacs Lisp でウェブアプリって書けないかな? ウェブできればグラマーの幅が広がって共有ノウハウも増えるはずなんだけど。
305 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:11:57 ] グラマー?
306 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:40:55 ] トランジスタ?
307 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:13:58 ] >>304 そりゃ書けると思うけどグラマーの幅が広がるって意味がわからん。 ウェブアプリってのもクライアントなのかサーバアプリなのかわからん。 前者なら普通に存在してるよ。 あと昔Emacsで動くhttpdなんてのも作られてたよ。 こんなん。 ttp://sachachua.com/notebook/emacs/httpd.el ttp://elserv.sourceforge.net/
308 名前:デフォルトの名無しさん [2009/10/07(水) 22:58:12 ] >>304 ウェブのソフトウェアなんてシェルスクリプトでも書けるんだぜ。 Emacs のノウハウを心配するより、君自身のノウハウを増やした方が良いと思うぞ。
309 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 12:57:59 ] GNU Emacs 23.1.1 (i386-mingw-nt5.1.2600) of 2009-07-30 on SOFT-MJASON で EmacsWiki から持ってきた anything, anything-config を使っています。 anything-sources に anything-c-source-* 一つずつ足していって試してみているのですが anything-c-source-info-elisp を足したところで progn: Symbol's function definition is void: Info-find-node とエラーを吐いて止ってしまいます。 Enter Debugger on Error を使ってみたところ、*Backtrace*に次のようなメッセージ(次レスに貼ります)が出ました。 どうやら Info-find-node が定義されていないとのことですが どう対処してよいかわかりません。 何かアドバイスをいただけませんでしょうか?
310 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 12:59:28 ] Debugger entered--Lisp error: (void-function Info-find-node) (Info-find-node "elisp" "Index") (progn (Info-find-node "elisp" "Index") (setq anything-c-info-elisp (split-string ... "\n")) (Info-exit)) (unwind-protect (progn (Info-find-node "elisp" "Index") (setq anything-c-info-elisp ...) (Info-exit)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...))) (with-current-buffer temp-buffer (unwind-protect (progn ... ... ...) (and ... ...))) (let ((temp-buffer ...)) (with-current-buffer temp-buffer (unwind-protect ... ...))) (with-temp-buffer (Info-find-node "elisp" "Index") (setq anything-c-info-elisp (split-string ... "\n")) (Info-exit)) (if anything-c-info-elisp nil (with-temp-buffer (Info-find-node "elisp" "Index") (setq anything-c-info-elisp ...) (Info-exit))) (unless anything-c-info-elisp (with-temp-buffer (Info-find-node "elisp" "Index") (setq anything-c-info-elisp ...) (Info-exit))) (save-window-excursion (unless anything-c-info-elisp (with-temp-buffer ... ... ...))) (lambda nil (save-window-excursion (unless anything-c-info-elisp ...)))() apply((lambda nil (save-window-excursion (unless anything-c-info-elisp ...))) nil) (let ((anything-source-name ...)) (apply func args)) anything-funcall-with-source(((name . "Info Elisp") (init lambda nil (save-window-excursion ...)) (candidates lambda nil (loop for i in anything-c-info-elisp if ... collect ...)) (ここで改行を挿入) (action lambda (candidate) (Info-find-node "elisp" "Index") (Info-index ...)) (volatile) (requires-pattern . 2)) (lambda nil (save-window-excursion (unless anything-c-info-elisp ...))))
311 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 12:59:35 ] (while --cl-dolist-temp-- (setq func (car --cl-dolist-temp--)) (anything-funcall-with-source source func) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--))) (let ((--cl-dolist-temp-- ...) func) (while --cl-dolist-temp-- (setq func ...) (anything-funcall-with-source source func) (setq --cl-dolist-temp-- ...)) nil) (catch (quote --cl-block-nil--) (let (... func) (while --cl-dolist-temp-- ... ... ...) nil)) (cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil))) (block nil (let (... func) (while --cl-dolist-temp-- ... ... ...) nil)) (dolist (func (if ... ... it)) (anything-funcall-with-source source func)) (if it (dolist (func ...) (anything-funcall-with-source source func))) (let ((it ...)) (if it (dolist ... ...))) (anything-aif (assoc-default sym source) (dolist (func ...) (anything-funcall-with-source source func))) (while --cl-dolist-temp-- (setq source (car --cl-dolist-temp--)) (when (symbolp source) (setq source ...)) (anything-aif (assoc-default sym source) (dolist ... ...)) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--))) (let ((--cl-dolist-temp-- ...) source) (while --cl-dolist-temp-- (setq source ...) (when ... ...) (anything-aif ... ...) (setq --cl-dolist-temp-- ...)) nil) (catch (quote --cl-block-nil--) (let (... source) (while --cl-dolist-temp-- ... ... ... ...) nil)) (cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil))) (block nil (let (... source) (while --cl-dolist-temp-- ... ... ... ...) nil)) (dolist (source (anything-get-sources)) (when (symbolp source) (setq source ...)) (anything-aif (assoc-default sym source) (dolist ... ...))) anything-funcall-foreach(init) ad-Orig-anything-initialize() (setq ad-return-value (ad-Orig-anything-initialize)) (let (ad-return-value) (setq anything-c-adaptive-done nil) (setq ad-return-value (ad-Orig-anything-initialize)) ad-return-value) anything-initialize
312 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:30:54 ] info.el ロードされてないんだな。anything より前に (require 'info) とでも書いたらどうかな。
313 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:53:14 ] >>312 ありがとうございました。できました。
314 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 00:32:01 ] Emacs怖い。数十年後もEmacs使ってそう。
315 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:12:34 ] 選択した語をサーチエンジンで検索してw3mで表示するelispってあります?
316 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 22:31:51 ] どっかで拾った google.el ってのがそんな挙動だな。 内容は region が活性だったら google 用の検索 URL 作って browse-url で デフォルトのブラウザ呼び出すだけのシンプルなのだったけど。
317 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 22:54:01 ] EmacsWikiのdim-google.elっていうのが求めるものでした 探せばすぐに見つかるものでしたね お手数をかけました
318 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:37:36 ] 孫にEmacsの手ほどきをするのが老後の夢
319 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:55:47 ] emacsをp2pで繋ぐのが夢だ
320 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 16:27:56 ] Emacsがmacびいきな名前だからEwinsにするのが俺の夢だ。
321 名前:Zeno ◆5nZQbNmQPs [2009/10/15(木) 16:41:39 ] >>320 自分でソースを引っ張ってきて、ソース内、そしてファイル名に含まれる [Ee]macs を [Ee]wins に変換すれば良いだろうが。
322 名前:Zeno ◆5nZQbNmQPs [2009/10/15(木) 16:45:56 ] >>320 それと一応教えておくが、MacよりもEmacsの方が先だ。 もしそういうことにしたいのであれば「Emacsがmacびいきな名前」ではなく、 「MacがEmacsびいきな名前」と解釈するのが正しい。
323 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 17:14:51 ] いまどきEmacsなんか使ってたら厨か老人扱いだろ。 なんでそうなったかっていうと、圧倒的大多数を占めるWindowsに インターフェースを合わせなかったからだろうな。 標準をWindowsに合わせて、オプションで旧Emacsを選べるのが 本来の正しい姿。
324 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 17:17:24 ] >>323 君面白いねw というかWindowsがEmacsにあわせるべき。 Macはもう合わせてる。
325 名前:Zeno ◆5nZQbNmQPs [2009/10/15(木) 17:31:04 ] 中身が理解できていない為、デフォルトの見た目について あれこれ文句を言うことしかできない真性の阿呆は放っておけ
326 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 17:35:42 ] xkeymacsでええやん
327 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 19:00:12 ] 「窓使いの憂鬱」も忘れないで!
328 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 20:07:39 ] ありゃキーロガーだから死すべきもの
329 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 21:24:17 ] >>320 ttp://www.ueda.info.waseda.ac.jp/~ichibe/pub/members.tripod.co.jp/zzyyb/mit/doc-ja/user_8.html Emacs ライクな Scheme ベースのエディタ Edwin ただし日本語は通らないらしいが
330 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 22:15:20 ] なんでEmacsはwindowsで使えないの? windowsアンチなの?
331 名前:デフォルトの名無しさん [2009/10/15(木) 22:28:12 ] なんでwindowsではEmacs使えないの? Emacsアンチなの?
332 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 22:41:05 ] なんでwindowsでEmacs使えないと思ってるのかが謎だ
333 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 23:12:35 ] meadowもemacsだろ
334 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 00:20:17 ] emacsでパソコンとお友達になれますか?
335 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 00:29:15 ] オフィシャルに Windows のバイナリもあるというに。
336 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 00:42:28 ] いまどきMeadowはないだろ。。。
337 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 00:46:58 ] meadowはemacsenだけどNTEmacsはEmacsだよな
338 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 16:43:29 ] xyzzy も忘れずに
339 名前:デフォルトの名無しさん [2009/10/16(金) 19:42:53 ] Windows マシンを持ってないんだけど、xyzzy って Emacs ユーザから見て実際どうなの? ・これだったら Emacs で十分だぜ ・これなら十分 Emacs の代替になるな ・こ、これは Emacs より断然スゲー!
340 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 19:52:42 ] mgみたいなもの
341 名前:デフォルトの名無しさん [2009/10/16(金) 20:10:49 ] それは elisp が使えなければ Emacs に非ずって事かな?
342 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 20:18:49 ] Emacs 的に見るとまがいもんだけど、 エディタ全般的に見ると xyzzy には xyzzy の良さがある。 着想の元が Emacs だとしても今では別物。 比較するようなもんじゃない。
343 名前:デフォルトの名無しさん [2009/10/16(金) 20:26:26 ] なるほど、別物なのか… ありがと。
344 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 22:59:31 ] Emacsとして見ようとすると違和感があるけど、 Windowsアプリとして見るとEmacsより違和感が無いって感じ(´・ω・`)
345 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 23:00:56 ] メモ帳感覚で使えて、かなりemacsぽくもつかえる
346 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 23:08:32 ] 正直、Windowsつこうてる時は、Emacsよりもxyzzy使うことのほうが多い僕は異端児。
347 名前:デフォルトの名無しさん mailto:sage [2009/10/17(土) 08:41:20 ] ただ細かい部分でEmacsと違うから Emacs好き好きすぎるとかえってストレスたまるかもしれんね。
348 名前:デフォルトの名無しさん mailto:sage [2009/10/17(土) 09:17:51 ] Emacs好き好きだったら当然Window上でも本物Emacs入れてるでしょ。 今のWindows用EmacsはUSBに入れて持って歩けるしね。
349 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 18:44:32 ] emacsそのものより利用者が作ったライブラリとか付属のelispを使う為ってのが大きい
350 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 20:49:56 ] >>349 大昔にマイコンさわったときの最初のエディタがmince(micro emacs)だったと言うだけでemacs以外さわれない体になった俺みたいなのもいる(普通はwordmasterだった頃) RPN電卓さわってしまった工学系学生とおなじようなもんだけど
351 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 20:56:13 ] よく「最初にXXXXをさわったからXXXXしか使えなくなった」って言う人がいるけど 単に適応能力が普通の人に比べて足りてない能無しってだけだよね。 価値のある体験談でもないし勿論自慢にはならない。
352 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:09:32 ] さわれないっていうよりさわりたくない、ぐらいだろね 必要にせまられればどんなエディタでも結構なんとかなったりする
353 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:26:45 ] >>351 もちろん君はQwerty配列でもDvorak配列でも全く同等に使えるんだよね?
354 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:41:26 ] >>351 emacsとvi好きに喧嘩売るとはなんという宗教戦争マニア!
355 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:47:06 ] >>351 エディタとか割とよく使うもの(鉛筆とノートのように)だと最初の原体験で得た物と次にさわった物の間で入力速度に差があると二度と他に移りたくなくなる物だよ 今の時代のようにしょっちゅう入れ替えができたり物が選べる時代じゃないならなおのことだ(当時はストレージがFDドライブ二個が上限だったしエディタ買うのだってものすごく高価だった) 今でも各種IDEのキーバインドにエディタ名を冠した設定がある事がそれを物語ってるよ
356 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:38:28 ] 仕事だとそんなふぬけたこと言ってらんないんだけどね。
357 名前:デフォルトの名無しさん [2009/10/25(日) 01:51:57 ] >>353 それ、良い喩えだね。面白い。
358 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 02:00:11 ] >>353 どっちも十分に経験していれば、当然どっちも十分に使えるだろうね。 普通の人は。 脳に欠陥のある人は、二つ目の経験が一つ目を吹き飛ばしてしまうかも。
359 名前:デフォルトの名無しさん [2009/10/25(日) 02:16:32 ] 一時期 RPN 電卓を覚えようとした事があったけど、常にパソコンを 携帯していたので電卓の出番が無くて結局覚えられなかったなあ。 bc って打つ代わりに dc って打てば良いだけだったんだけど、そこは やっぱり人の性、要らん物は覚えないね。
360 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 03:16:49 ] 「一事なれば万事成る」っていうじゃないか。 まず一つの事を深く知ることが大事だろ。
361 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 03:48:27 ] >>358 >どっちも十分に経験していれば、当然どっちも十分に使えるだろうね。 ただし、 日本ではQwertyを強制される機会は多くてもDvorakを強制される機会はほとんどないため 普通の人はQwertyしか使えない。 自分で乗りかえようと思い立った人か幸運にも最初がDvorakだった人のみが Dvorakを使えるというのが現状。 だからどっちも十分に経験していれば、という前提が非常にレアケース。 普通の大部分の人は 「最初にQwertyをさわったからQwertyしか使えない。」
362 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 05:14:32 ] >>361 もっともらしく文章書いてるが結論でいきなり論理が飛躍している上に間違っている。阿呆。 最初にQwertyをさわったからQwertyしか使えない。 ではなく QwertyしかないからQwertyしか使わない。 程度の事しかおまえさんの文章では結論できない。
363 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 05:21:04 ] >>362 >QwertyしかないからQwertyしか使わない。 そこらじゅうにDvorakに触れる機会はあるよ。 ただみんなそれを選んでないしそうする必要もないだけ。 だから普通は選ばない。 理由は慣れてないから。 なぜ慣れていないかと言うと普通は最初にDvorakを触っていないから。覚えるコストも大きい。 どこか違うの?
364 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:32:36 ] そんなことよりいい加減スレ違いなのに気付こうぜ。 最初に触れたのが Common Lisp だから Emacs Lisp が気持ち悪いって話題ならともかく・・・
365 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:51:46 ] >>353 もれはASCII配列のQWERTYしか使えない
366 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 10:53:59 ] ANSI配列って言いたいんだろうな
367 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 10:55:25 ] Emacsユーザの場合、「使えない」には3つのパターンがある。 a)操作性が同じじゃないので使えない。 b)XXXというEmacsLispと同等のものを、他のエディタ上で用意できない。 c)作り貯めたマクロを移行するのが大変すぎる。 aは極論すれば慣れればなんとかなるわけだが、Emacs歴20年です、 という人なんかはb, cが大変だと思われ。
368 名前:367 mailto:sage [2009/10/25(日) 11:00:48 ] で、個人的にはもう一つ、 d)クラスプラットフォームでGUIでもターミナルエミュレータでも使えるエディタが極めて限られる。 てのがあって、Emacsを捨てたくてたまらないのに(今のところ)移行先が見当らないという……。
369 名前:デフォルトの名無しさん [2009/10/25(日) 11:26:48 ] 自分が使うエディタは好きな物を選べるから、実質上困った事無いなあ。 困ってない事を解決するのは余程の暇人じゃないと難しい。
370 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 12:12:36 ] 人によって環境違うしな。 UNIX上での仕事メインならEmacs使うのになんの支障もないだろし 他のOSでもエディタの指定がゆるいならバリアントを入れればいいし 仕事じゃなくて趣味ならおさっしだし。 navi2chしか使ってないくせにEmacsしかもう使えない!なんていってるやつは 死ねばいい
371 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 12:23:04 ] >navi2chしか使ってないくせにEmacsしかもう使えない!なんていってるやつは >死ねばいい 流石にネタだと思いたい
372 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 14:31:24 ] あーいそうだそういうのw UbuntuインストールしただけでLinuxマスター(笑)になっちゃって わけしり顔でWindows批判はじめだすような人種だな
373 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 15:36:31 ] 仮想敵かよ
374 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 17:56:56 ] ♪見えない敵にマシンガンを〜
375 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 18:58:43 ] 見えない敵ではなく、見える雑魚だろう。
376 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 19:25:34 ] deffaceはどうやらdefvarと同じく上書きがされないみたいなんだけど このdeffaceの引数と同じ書式で上書き可能な関数ってあります? (set-face-* ...)もあるけど、できればまとめて定義したいので
377 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:28:54 ] >>376 set-face-attribute とか?
378 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 21:23:30 ] >>377 それだと引数がリストじゃないんですよね。。 とりあえず自分でdeffaceを弄ったものが期待どおりに動いたのでよしとします paste.lisp.org/display/90293
379 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:03:37 ] こんなのってない? 【プログラミング万歩計】 ファイルの拡張子ごと、日付ごとに自分が何回タイプしたか統計を取る。 健康増進的なノリでプログラミング力を鍛える励みにする。
380 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:20:13 ] >>379 outputz.el みたいなの?
381 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:26:16 ] みたいなのっていうかそのものっぽいな。 拡張子毎ってあたりは適当に細工しなきゃいけないだろうけど。
382 名前:379 mailto:sage [2009/12/01(火) 22:05:16 ] >>380 ,381 どうもです。 調べてみます。
383 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 00:41:20 ] elispでチャット作ったけど使ってくれる人がいない
384 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 06:15:34 ] 全emacsenが泣いた
385 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 14:20:13 ] emacs 上で現在動いている timer の一覧を得る、なんてことはできませんか?
386 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 20:44:03 ] 10年くらい前に書いた関数だけど、まだ動きそう。 (defun describe-timer () (interactive) (let ((tl timer-list) timer) (pop-to-buffer (get-buffer-create "*timer*")) (erase-buffer) (insert "TIME FUNCTION\n" "-------------- --------------------------\n") (while tl (setq timer (car tl)) (insert (concat (format-time-string "%m/%d %T" (list (aref timer 1)(aref timer 2)(aref timer 3))) " " (symbol-name (aref timer 5)) "\n")) (setq tl (cdr tl)))))
387 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 01:38:29 ] timer-list に保管されてるのか。 すばらしい。ありがとう!!
388 名前:デフォルトの名無しさん [2009/12/09(水) 04:58:04 ] スレ違いですが、教えてください。 さっきMeadowを使っている人は少なくて本家のgnu emacs winバイナリを使っている人が主流みたいに書いてあったのですが、みなさん日本語入力はどうしてます?
389 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 08:35:32 ] skk
390 名前:デフォルトの名無しさん [2009/12/09(水) 08:43:22 ] なるほどSKKですか、MS-IMEやATOKを使っている方はいらっしゃらないでしょうか。 そもそも使う方法はないのでしょうか。
391 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 16:37:41 ] >>388 なぜ、このスレで質問してるのか、よくわからないが、MS-IMEでMeadowに入力できたと思うけどなあ。 で、Meadowで何をしたいんだ? emacsを使いたいなら、マウスを持たずにCUIで作業するのが理想だと思うなあ。
392 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 16:48:44 ] >>391 いきなりマウスの話題が出てきた理由って何なの?
393 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 17:32:46 ] >>391 ん? Meadow じゃなく gnu emacs win バイナリで日本語入力はどうしてるの? って質問じゃないかと。
394 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 18:31:32 ] っntemacsjp.sourceforge.jp/
395 名前:デフォルトの名無しさん [2009/12/09(水) 20:05:24 ] >>391 elispスレなので、本家のgnu emacsを好む方が多いかなと思って質問させていただきました。 >>394 23baseがあれば嬉しいですが、すみません、わがまま言いすぎですよね。
396 名前:デフォルトの名無しさん [2009/12/09(水) 20:10:24 ] >>394 すみません。リンク先をよく見ていませんでした! emacs23のIMEパッチをしてくださったんですね。早とちりしてNTemacsのことだと思っていました。すみません。 さっそく試してみます。ありがとうございました!
397 名前:デフォルトの名無しさん mailto:sage [2009/12/10(木) 00:13:25 ] y-or-n-p関数についてなんですが * 端末から利用するとQuit(\C-g)が効く * Xから利用するとQuitが効かない てのは、正しい動作なんでしょうか?
398 名前:デフォルトの名無しさん mailto:sage [2009/12/10(木) 01:44:25 ] 今、X上のemacsで (y-or-n-p "hoge") とやってみたけど C-g でquitできたよ。
399 名前:デフォルトの名無しさん mailto:sage [2009/12/10(木) 23:00:27 ] >>398 てことは、ウチの環境だけみたいですかね。。 正しくはXじゃなくてGTK@Ubuntuなんですけど
400 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 05:31:59 ] sql-mode をつかってるんだけど、"REM" をコメント風に認識させられない? remark 文の中の '09/12/20 みたいな ' 文字がでる度に string だと認識されて困る
401 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:25:39 ] 来年は elisp がネイティブコンパイルできる様になります様に ナムナム
402 名前:デフォルトの名無しさん [2010/01/18(月) 17:31:37 ] message 関数の様に使えてC言語の fprintf のようにファイル(バッファでもいいけど)に 出力する関数ってありますか?
403 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 17:53:44 ] >>400 よくわからんが mmm-mode とか使えないの?
404 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 18:11:53 ] >>402 format
405 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 19:04:47 ] format って sprintf ですよね。string とか変数作って いちいち concat して set-buffer して insert しないといけないんでしょうか。 質問ばかりですみません。
406 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 19:21:32 ] (defun insert-to-buffer (buf fmt &rest args) (with-current-buffer buf (insert (apply #'format fmt args)))) みたいな関数を自分で作っちゃえばいいんじゃない? 標準にありそうな匂いがプンプンするけど
407 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 19:43:12 ] >>406 とりあえずありがとう。やりたい事がやっとできました。
408 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 20:10:59 ] >>402 sprintfのようにフォーマットの指定まではできないが 文字列の出力先を指定する関数はいくつかある。print/prin1/princなんかがそう (princ (format "Hello %s.\n" "Emacs") (find-buffer "*scratch*")) (info "(elisp) Output Streams") も参照 emacsの場合はファイルよりもバッファをやりくりするのが基本かな。
409 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 21:12:16 ] リージョン内の数字にカンマを打とうと思って、 (defun ins-comma (start end) "insert comma to digits in region." (interactive "r") (let ((res t)) (while res (save-excursion (goto-char start) (if (setq res (re-search-forward "\\([0-9]+\\)\\([0-9]\\{3\\}\\)" end t)) (replace-match "\\1,\\2" nil nil)))))) とすると、リージョンの尻にある数字にマッチしません。 どこが間違ってるでしょうか。 re-search-forwardの第二引数をnilにすればマッチするんですが。
410 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 19:22:28 ] ・endがマーカーじゃない ・replace-matchにより該当部分の長さが変わる ・前から順に書き換えている から。
411 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 19:25:32 ] わかりました。ありがとうございます。
412 名前:デフォルトの名無しさん mailto:<sage> [2010/01/22(金) 08:51:54 ] 先生、質問があります。以下のように defvar で定義されたリストを関数の一 部として使っているような場合に、edebug してトレースしたいときは、どう すれば良いのでしょうか? (以下の場合では、anything-c-source-recentf の 中をトレースしたい。 ) (defvar anything-c-source-recentf '((name . "Recentf") (candidates . recentf-list) (match . (anything-c-match-on-file-name anything-c-match-on-directory-name)) (type . file)) "See (info \"(emacs)File Conveniences\").") (anything 'anything-c-source-recentf)
413 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 17:09:30 ] 質問の前提が間違ってます。
414 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 03:29:24 ] >>413 前提というのは、「defvar で定義されたリストを関数の一部」かなと思うから anything コードを見てみたら、必要に応じてリストから部分的に取り出して 使ってるように見えるから前提があってない。 そういうこと? だから edebug でトレースは無理ということで終了?
415 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 14:47:01 ] そう。edebugするなら対象はanythingの中の > anything コードを見てみたら、必要に応じてリストから部分的に取り出して > 使ってる この部分になるでしょう。
416 名前:デフォルトの名無しさん [2010/01/27(水) 03:38:30 ] >>414 レスありがとう。やってみます!!
417 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 08:49:08 ] テスト
418 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 16:01:36 ] こんにちは。hash について質問させてください。 (defun case-fold-string= (a b) (compare-strings a nil nil b nil nil t)) (defun case-fold-string-hash (a) (sxhash (upcase a))) (define-hash-table-test 'case-fold 'case-fold-string= 'case-fold-string-hash) (setq lang-hash (make-hash-table :test 'case-fold)) elisp info にあるように上記のようにして、ハッシュを作成してみましたが、 キーによっては、以下のようにハッシュ値が同じになってしまい、うまくいき ません。こういう場合は、どうするんでしょうか? (case-fold-string-hash "RU")1397 (case-fold-string-hash "SE")1397
419 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 16:30:25 ] >>418 ハッシュ値は関係ないと思う 完全ハッシュ関数を作らないかぎり、ハッシュ値はふつう重複する Wikipedia のハッシュテーブルとかハッシュ関数の頁を参照 で、問題は compare-strings は文字列が一致しないときに数値を返すこと (defun case-fold-string= (a b) (string-equal (upcase x) (upcase y))) ならうまく動いた
420 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 09:52:56 ] >>419 ありがとうございます。同じハッシュ値をもつキーでもバリュー値を上書きす るわけじゃないんですね。
421 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 14:13:42 ] Emacs Lisp で書かれたものってソフトウェア?
422 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 14:52:36 ] そう。
423 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 14:58:35 ] すくなくともハードウェアでないことは確か。
424 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 15:20:20 ] OK
425 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 02:41:54 ] java-mode でインデントを2にしたいのですが、 下のlispを.emacsに書いても反映されません。 C-x C-e でも同様でした。 .emacsに書いてる他の部分は反映されています。 (add-hook 'java-mode-hook '(lambda () (setq default-tab-width 2) (setq tab-width 2))) 何がおかしいのか調べるにはどうすべきでしょうか? Emacsの単なる使用にあたるのか、 Lispになるのかわからなかったのでこちらに書き込ませて頂きました。
426 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 02:55:15 ] (setq c-basic-offset 2)
427 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 04:42:31 ] >>426 できました! ありがとうございます。
428 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 09:45:25 ] >>425 フック書かなくてもできる。 (c-add-style "java2" '("java" (c-basic-offset . 2))) (setq c-default-style '((java-mode . "java2") (other ."k&r")))
429 名前:デフォルトの名無しさん [2010/03/11(木) 00:38:15 ] >>400 syntaxテーブルにREM追加すりゃよいかも。 -- で検索すれば雰囲気つかめるんじゃない。
430 名前:デフォルトの名無しさん [2010/03/11(木) 00:41:58 ] (defun a (arg) (+ 1 arg)) をさ、 + 1 じゃなくて、 + 2にしたいときってどうすればlispっぽくかけます?
431 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 03:03:52 ] (defun a (arg n) (if (< n 2) (+ 1 arg) (a (arg (+1 n)))) (a num 0)
432 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 03:05:10 ] (defun a (arg n) (if (< n 2) (+ 1 arg) (a arg (+1 n))) (a 12 0)
433 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 03:43:32 ] >>430 質問の意味がまるでわからないけど (defun a (arg &optional n) (+ arg (or n 1))) ということ? >>432 n >= 2 のとき停止しないような あと、 Emacs Lisp は末尾再帰の最適化が効かないから 適当にループを使った方がいい
434 名前:430 [2010/03/11(木) 23:25:22 ] あぁぁごめんなさい、すでに a って定義されてるけど、 + 1 じゃなくて + 2 にしたいなー っていう時です。 複雑で便利な関数がすでに定義されてあるけど、 なんでこの部分だけこうなんだ!コピペするのはなんだかなぁ・・・ ってときに、リストってのを利用して良い方法はないものかと。
435 名前:430 mailto:sage [2010/03/11(木) 23:27:04 ] 連投さーせん。 さらに、a はすでに定義されてていろんなパッケージで使われてるから、 aの使い方は崩したくない。 そして、aにパッチも送りたくないから、aの定義があるソースコードは 変更しない。って感じ。
436 名前:430 mailto:sage [2010/03/11(木) 23:31:32 ] 自分のイメージをかいとくと、 処理が(別な言語で表現すると array( +, 1, arg ) ってあるんだから、 newfunc = [ array[0], 2, array[2] ] みたいなノリで、新しい関数作れないのかな?ってのを 試行錯誤してる感じです。
437 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:38:22 ] 諦めろ
438 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 00:05:57 ] >>436 それってclosureやCLOSの抽象関数などに向かう話だと思われ。 つまりCommon Lisp方面。
439 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 00:33:52 ] >>435 defadvice が使えることがある。例えば >>430 の例なら (defadvice + (after foo) (setq ad-return-value (- ad-return-value -1))) ってするとか。 ただし、 + みたいな基本関数にこんな advice をつけて大丈夫かは知らない。 たぶん大丈夫じゃない。 ある程度用途が限定されている関数なら defadvice で少し動作を変えるというのはたまにやる。
440 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 01:55:32 ] >>436 evalで出来なくはないだろうけど、手間が掛かるだけで全然便利じゃない。 あとは、ダイナミックスコープを利用した+の再定義とかもできるだろうけど、 これもバグの元でオススメできない。>>439 の言うdefadviceもあるけど、 あれも限定的にしか使えない。 Lispでのそういう場合のセオリーは、関数を渡せるようにしておいて、 行いたい処理はその中で実行して、適宜切り替えられるようにするんだけど、 そういう風に設計されてなきゃそれまでだしなー。 その関数を書いたやつを内心で罵りながら書き直すに一票。
441 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 09:48:16 ] 動的スコープを利用するとこんな感じかな。 (defvar plus (symbol-function '+)) (defun a (n) (+ n 1)) (flet ((+ (&rest args) (apply plus 1 args))) (a 2)) ただし、この方法ももとの関数の実体をうまく退避しないと 簡単に無限再帰になってスタックオーバーフローするのでまったくオススメしない。 ;; これを書いてるときも何度かスタックオーバーフローさせた Common Lisp だったら function-lambda-expression をごにょごにょして eval もできるかもしれないけど、 Emacs Lisp じゃできないし、何よりも不毛。 もとの関数をちょっと書き換えていいなら、変数の動的束縛をはさんで (defvar *b* 1) (defun a (n) (+ a *b*)) (let ((*b* 2)) (a 2)) ; => 4 とかも。 defadvice でどうにかできないか検討して、それで無理だったら諦めるのが無難かなあ。
442 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 14:36:38 ] そこはコールバックにしとけよ、みたいなの結構あるよね。 url.el とかそんなんばっかり。
443 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:26:16 ] このあたりって各lispの方言に悩むよね といってもemacs lisp,CL,schemeの3種くらいか、今悩むのは
444 名前:430 mailto:sage [2010/03/13(土) 00:10:38 ] 皆さんどうもありがとうございます! アドバイスは知っていましたが、引数に気をつけないと後遺症が怖いんですよね。 もーちょい皆さんの意見参考にしつつ、粘ります。 >>442 > そこはコールバックにしとけよ、みたいなの結構あるよね。 ありますよねー。でも作った人には利用の仕方が無数に思いつくから、 面倒なんだと思います。 すべてがリスト、っていうプログラムの表現の仕方にあこがれてるので、がんばります、 みなさんありがとー
445 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 18:54:20 ] emacs HEADにコミットしたいのですが、コミット権限は誰にどうすれば貰えるのでしょうか?
446 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 01:39:49 ] 大卒の新卒が大量に入ったけど、elispに興味持ってる人ほとんどいないね…時代の流れかな iphoneアプリの人気がすごかった。
447 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 01:50:38 ] 昔は elisp に興味がある新卒が沢山居たの? こういうのは研究室で身に付けてくるか、入社してから師匠に叩き込まれる物かと思ってた。
448 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 08:22:50 ] 研究室で身に付ける人が少なくなったってことだろ
449 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 13:35:21 ] elisp 書く時間あったら javascript 書くだろうなぁ。
450 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 13:54:08 ] 俺も最近elispよりchrome拡張をJavascriptで書く方が多い。 mewじゃなくてgmailだし。
451 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 16:02:15 ] 今ある elisp でわりと事足りてるってのもあるな。 あとなんでもかんでも emacs 中でやろうと思うのは結構時間の無駄なんじゃ?って思うようになった。 一つの端末をずっと使い続けられない職場だからなのかもしれないけど。
452 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 18:07:23 ] テキスト編集はこれからもEmacs。 Elispアプリでは、mewは使わなくなったけど、 navi2chやlookupは使ってる。 HTML/CSSの世界ではFirefox + Javascriptを、 Emacs + elispのように使うようになるのかと想像していたが、 そんなことは全くなかった。 HTML/CSS界のEmacsが現れて欲しい。 XMLで七面倒くさいXULは使わなかったが、 chrome拡張ならなんとかなるかもなあ。 Lispならいいのになあ。
453 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 22:16:13 ] 別に lisp である必要性は全然無いと思う。 javascript がベストな言語だとは思えないけどねえ。 つか「HTML/CSS界のEmacs」()笑っていったいどんなの想像してんのよwww
454 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 22:22:49 ] >>453 >()笑 って書く人初めて見たwww
455 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 22:38:32 ] 最近はnavi2chぐらいかなぁ。 仕事だとJavaのコードばっかり書いてるからeclipseメインだわ。
456 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 06:48:38 ] >>()笑 >って書く人初めて見たwww 漏れも時々そうなる ()を先に入力してから カーソルを()の中に入れて笑を書くと 一部のIMEでいつのまにか()の外に笑が移動するんだよ 気付いたら治すけど
457 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 06:50:49 ] ついでにもうちょっと補足しておくと >()を先に入力してから の理由は()が全角になるのを嫌って半角にするんだが 半角( 笑 半角) の順で入力すると切替が面倒なので 先に()を書いてしまう習慣がある 単語登録しろとかいう突っ込みは野暮というもの
458 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 08:04:51 ] つ boiled-egg
459 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 12:09:35 ] (笑)自体入力することなくなったなぁ 草生やしちゃわない?
460 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 13:18:52 ] 「スイーツ(笑)」とかのお陰で語尾以外では再興してきた気もするけどな。
461 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 20:51:24 ] "()笑"が面白いと思うのはlisp使いだからじゃね? Tシャツとnilシャツ ウエイトレス:食後は珈琲でよろしいですか? 客:T とか言うのと同じ楽屋落ちネタつーか
462 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 20:58:33 ] 質問文の最後に p 付けるとかな。
463 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 22:01:15 ] Schme使いはどうしたら?
464 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 22:29:05 ] h の後に e 付けるとかかな。
465 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 23:14:11 ] h の後は賢者だろ
466 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 03:35:58 ] 「()笑」でC-tだろ常考
467 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 14:40:33 ] minibuffer 用に Abbrev Table をセットするにはどうすればよいですか? local-abbrev-table をセットしても使えませんでした。
468 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 14:46:37 ] (global-set-key "\C-z" 'foo) により \C-z がマップする関数が定義してあると仮定して、その場合、 「\C-z がマップする関数に \C-x もマップする」 という意味の関数を書きたいのですが、どうすれば良いですか? イメージとしては (map-same-keyfunc "\C-x" "\C-z") により、'foo が \C-x がマップされるといったものです。
469 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:09:30 ] ここいら辺の関数を使えば出きるんじゃん? * (elisp) Active Keymaps (key-binding "\C-x\C-f") => find-file とか * (elisp) Functions for Key Lookup (lookup-key (current-global-map) "\C-x\C-f") => find-file
470 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 22:42:35 ] >>468 > C-z がマップする関数に C-x もマップする とはちょっと異なりますが、C-z に C-x をマップするってのが global-set-key じゃなくて define-key を使えばできます。(キーボードマクロの登録) これでどうでしょうか。具体的には以下の通りです。 (define-key global-map "\C-x" "\C-z")
471 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 03:30:56 ] >>467 ミニバッファーで展開されるのはfundamental-mode-abbrev-tableと global-abbrev-tableみたい。
472 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 21:18:58 ] >>397 y-or-n-p関数の挙動について少し分かったので自己カキコ Gnome側で「CapsLockをCtrlとして扱う」に設定した擬似Ctrl-gだと Emacs側ではC-S-gとして扱われるみたい C-g (translated from C-S-g) runs the command keyboard-quit # もちろん通常のCtrlキー使用なら変換なしにC-gになる y-or-n-pのソース(fns.c)を見てみると、生のC-g以外は入力やり直しに なるのでEmacsの動作としては問題なし。 …と、ここまで書いたはいいが結局解決策は見つかりませんでした。。
473 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 22:35:42 ] >>472 > Gnome側で「CapsLockをCtrlとして扱う」に設定した擬似Ctrl-gだと Gnomeのコントロールパネルで変えると、 keysym自体が置き換わるんじゃない? 問題はadd Control = Caps_Lockした時なんじゃないのかな? これはどの規定だったか忘れたけど、違反する使い方。 昔のXEmacsはこの状態見つけるとログ吐いていたと思う。
474 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 20:03:41 ] >>473 反応が遅くてスマン nocapsとswapcapsではkeysym?の挙動が違うみたい。 自分が使ってるのはnocapsの方。 swapcapsだと単純にCapsLockがControlに置き換わるけど nocapsだと"translated from C-S-g"となるらしい X11のキーコードの話は今までよく分かってなかったので 現在ググって調べ中…そろそろスレ違いになってきたぞ
475 名前:デフォルトの名無しさん [2010/05/05(水) 22:56:01 ] かつて無いほどに過疎ってるな… 流石にもうelispの時代は終わってしまったのかのう
476 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 23:07:02 ] う、うん……(´・ω・`)
477 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 23:52:37 ] Lispって言うほど魅力ないなあ、って勉強しててオモタ。 言語を作れるっていう宣伝が巷に溢れているが、 マクロのことであって、特に一般的に想像するような言語を作れるってのとは違う、 どちらかというとXMLで言う言語を作ってという感じに近い、 プログラミング言語の出来方でいえば、ある構造を別の原始的構造に翻訳する、というものだ。 あと抽象的とは言うが、オブジェクト指向的な意味での抽象性がない。 たとえば、リストがIterableだからリストじゃないものもIterableに振舞えば リストのように扱えるというか、そういうものが無いように見える。 まあそれはともかくとして、Elispは秀丸マクロよりマシだと思うよ。
478 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 01:03:44 ] scalaにハマった友人がLispを研究する意味が無くなったと言ってた
479 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 01:47:07 ] エディタのマクロの中じゃ一番細かい事から大物まで書ける部類だと思うぞ 他のエディタで此処までかけるのってVisualStudioのVBマクロだろうけど、あれは細かいことするのがちょっと大変過ぎるし Briefも割と良くできてたけど大物書くのはイヤになるっていう感じだし Eclipseのプラグインがもっと柔軟になる以外elisp環境に対抗できるのってSmalltalk位じゃないの?
480 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 07:24:14 ] マクロで簡単なレポートを作ったりもできて楽しいけどなあ
481 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 10:51:22 ] >>477 > 言語を作れるっていう宣伝が巷に溢れているが、 Paul Graham 氏がそれを流行らせたのではなかろうか。 >>480 elispは楽しいよ。ただ、pythonとかに比べるとコーディングが かなり遅くなっちゃう。名前空間がないから、同じ 関数を再コーディングするハメになったり、lispがlispである故、 「綺麗に書かなきゃな」ってのがあって、綺麗に書くこと自体が 割と面倒だったりする。
482 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 11:44:07 ] 関数呼び出しと、スペシャルフォーム・マクロのインデントのルールみなさん守ってますか? defunとかは勝手にインデントされるけど、 defmacroしたのはdefunとかと同じようなインデントルールにしてますか? 正直インデントは構文にかかわらないわりに面倒。 まあ、視覚的に関数の構造を見られるのはいいけれども。
483 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 14:32:20 ] 君がlisp-indent-functionを知らんだけでは?
484 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 15:32:37 ] 自分でdefmacroしたやつもスペース2つのインデントにできる?
485 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:54:52 ] >>477 入門本とかだと、表面的なことしかやってないから、全然面白くないよね。 Lispでの抽象っていうのは、OOP的な手法じゃなくって、 関数的な手法を使ってることが多い。つまり、クロージャを渡して、 それを内部で呼び出すことで、柔軟性を確保するとかそういうの。 OOPでもMOPとかどぎついのがあるけど。 On Lisp辺りは、邦訳がネットで無料で公開されてるから、読んでみたら良いよ。 言語を作るというのがどういうことなのか、関数的な抽象化とは何なのか、 具体的な例が乗ってるから。他の言語でも参考になる考え方だと思う。
486 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:01:05 ] >>477 忘れてた。 > たとえば、リストがIterableだからリストじゃないものもIterableに振舞えば > リストのように扱えるというか、そういうものが無いように見える。 これは流石に誤解。CLならGray Stream、Schemeならポートがまさにそれだし、 動的型付けを利用した手法は、日常的にみんな使ってる。Emacs Lispでも。
487 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:24:49 ] 関数型言語面白そうだし Lisp でもやってみるかねとか言ってた層は Scala あたりに移っちゃったのかな
488 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:31:10 ] Haskellじゃないかなー。 関数型スキーはHaskell、S式スキーはCommon LispやScheme、 Java資産を活かしたい実用派がScalaやClojure、 並列処理スキーがErlangみたいな気がする。
489 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 06:08:11 ] Scheme使ってる人ですら最初はHaskellとか勧めるぐらいだしな 関数型を学ぶなら今はHaskellがいいんだろうな多分 個人的にはCoqのGallinaもいいんだけど、依存型はまだ難しすぎるから…
490 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 10:01:52 ] Lispはあっちこっち手続きだし。
491 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 10:23:52 ] でもなんつーか、Haskellはやってもしょうがないとは思うよ。 Lispだって、社会人になってからは、ハードコアなEmacs使いが いじり倒したいから趣味で学ぶぐらいでしょ。 そうやって関数型には適度に慣れておくぐらいで十分。 Haskell学んだからって使える場所がないし後にも残らん。 どうせならElispに近いCommon Lisp学んで、CLのコードをポートしたりするのが良い。
492 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 12:25:15 ] elisp やってたら Common Lisp も馴染みやすいかと思い始めたら、 format の辺りなど色々な部分が elisp と違っていて微妙だった。 elisp は C 言語系列をやってきた人に取っ付きやすいよう作られてるなと感じた.
493 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 12:25:30 ] たしかに Haskell を実務で・・・なんて普通のやつらの上を行くぐらいの人じゃないと無理だろな そういう意味じゃ Scala はまだ現実的な線だし elisp も emacs 使い続けるなら悪くないよね。
494 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 13:06:23 ] >>493 > たしかに Haskell を実務で・・・なんて普通のやつらの上を行くぐらいの人じゃないと無理だろな 言っている意味がわからない。 「普通のやつらの上を行くぐらいの人」だと Haskell を実務で使わせてもらえると言っているの? >>492 > format の辺りなど色々な部分が elisp と違っていて微妙だった。 底が浅いなー。 format なんてほとんど表面上のみの違いでしょ。 そんな関数1つより、もっと言語の中を突つかなきゃ。
495 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 13:14:50 ] 底が浅いというのは自分でも重々承知している所だが、表面も結構重要だと感じる。 例えば C を書く時と elisp を書く時では自分の中で切り替えが上手く出来るが、 elisp と Common Lisp ではどうしても似た気分で書いてしまう。 それゆえに細かなところが違っていると、ストレスになる。 まあ、書いていて思ったがこれは自分の問題だな。
496 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 14:05:27 ] >>494 Paul Graham の「普通のやつらの上を行け」で Lisp を業務に使った話になぞらえたんだけど・・・
497 名前:Zeno ◆5nZQbNmQPs [2010/05/09(日) 14:22:14 ] まあ Haskell はプロジェクトには使わせてもらえんだろうな。 VCS で管理もされない個人用のツール程度だったら自由に Haskell を使っても問題はない。 というより、その用途であれば何の言語を使っても良い。
498 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 14:59:12 ] 単純に技術者の数の問題じゃない? あと自社製品とかWebサービスみたいなのだったらHaskell使ったって良いとは思うけど。 請負いで納品するようなのだと運用・保守がかわいそうだなぁ。
499 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:58:28 ] EIEIOが標準入りすることでCL packageのdefstructがobsolateになるとかありますか?
500 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 17:08:09 ] 最近誰かも書いてたが「俺のチームならよそでできないその仕事をやれます。」って 状況じゃないと雇われの身としては主流以外の言語使えないよな。
501 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 17:19:30 ] lisp(とかHaskellとか)だと他の言語とくらべて開発効率/保守性/性能がこれだけ良いんですってのを 客観的に説明出来るなら良いんだけど、実際業務アプリ作るとかの場合 C#とかJavaあたりで書いた方が楽なんだよねえ。
502 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 01:13:14 ] 業務系だとやるべきことのパターンがかなり決まってるってのはあると思う。 フレームワークに従った方がうまくいく領域なら自由すぎる Lisp 系言語はかえってつらいってのはわかる。 Lisp が DSL 構築できるったって、わざわざ構築せずに済む言語環境があるならそっち使った方がそりゃ楽だ。 それはそれでいいんじゃないの。 ものごとはトレードオフだ。 Lisp がある条件で活躍するためには切り捨てざるを得なかったものだってあるだろうさ。
503 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 06:50:40 ] 今のところ、関数型言語が業務向けで役に立つであろうシチュエーションって 並列化しやすいからスケールアウト時のコストが低いですよ!ぐらいなのかなぁ。
504 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 07:28:42 ] 当たり前だけどクライアントのリクエスト単位では、 すでに並列化されてるんだよね。 リクエストごとにスレッド割り当ててるから。 リクエスト内部の処理を別スレッドにぶった切ったからといって そこまで早くなるとは考えづらい気がする。
505 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 23:27:25 ] どっちにしろ普通のアプリで恩恵こうむるのは難しそう・・・
506 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 02:05:04 ] macOSXのターミナルからEmacsでC#のプログラムを行おうとしている初心者です 見やすさのためにEmacsにcsharp-modeというのを取り入れようとしていますがうまくいきません 取りあえずsite_lispに拾いもののcsharp-mode.elを入れホームディレクトリで.emacsの設定を軽く追加しました Emacsを--debug-initから.csファイルを開くと以下のように出ます。 Debugger entered--Lisp error: (file-error "Cannot open load file" "csharp-mode") require(csharp-mode) eval-buffer(#<buffer *load*> nil "/Users/host名/.emacs" nil t) ; Reading at buffer position 13 load-with-code-conversion("/Users/host名/.emacs" t t) load("-/.emacs" t t) #[nil "・・・・$ command-line() normal-top-level() .csファイルを新規に作成してもcsharp-modeに認識されずに通常のmodeで開いてしまいます 解決法などご教授頂けたら幸いです
507 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 06:30:05 ] >>506 そのエラーメッセージが全てだと思うんだけど。 Cannot open load fileって書いてあるじゃない。 ちゃんとsite-lispにファイルはあるの? あと、こういう場合に一番大事な、 * どう「入れ」たのか * どのような「設定を軽く追加」したのか といったことを全略されると、まともな回答貰いづらいよ。 ついでに言えば、多分スレ違い。
508 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 17:52:11 ] 全てのシンボルのリストを返す関数ってなんだっけ?
509 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 15:35:50 ] そんな関数はない! (lexical-let (x) (mapatoms (lambda (y) (push y x))) x)
510 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 16:26:24 ] obarray 見ればいいんじゃない (append obarray nil)
511 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 16:56:24 ] >>510 そう、それどぁ。 elisp manual読んでぃて便利だと思ってとぉあ。 アリャガトネ
512 名前:デフォルトの名無しさん [2010/06/24(木) 21:31:27 ] auto-completeで日本語入力をしようと無謀なことやってる者です 内容がemacs自体とは関係なくなってきたような気がしたのでここで質問します。 2バイト文字のあとに1バイト文字が来たらそこを単語の区切りにしたいのですが、 どうしたらいいのでしょうか? 何をword-separating-categoriesに入れていいものかわかりません。 category-tableを使えばいいのはわかったのですが、 2バイト文字すべてを要素に持つようなcategory-tableの作り方がわかりません どうにかヒントだけでも教えていただければと思います。
513 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 21:50:42 ] M-x describe-categories (re-search-forward "\\cj")
514 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 22:26:08 ] あ、 (add-to-list 'word-separating-categories (cons ?j ?a)) でよかったのか。 ありがとうございます。 が、駄目orz auto-completeはsyntaxがwordの文字が並んでるとすべてcompletionの餌にするのかー、、、 どこでその処理やってるのかわかんない… 全角のあとに半角が着たら半角だけ餌にしたいんだけどなー もうちょっとがんばってみます。 >>513 なんというか申し訳なかったです ありがとうございました
515 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:16:10 ] LISPの仏様こと竹内育男が参加するイベント。 -- 国産LISPマシンELISの設計者である、JAIST副学長日比野先生が、この夏、ELISの復活祭を企画されています。 復活祭には、竹内先生をはじめ、TAO/ELISに関わった方々に多数ご講演いただきます。 会場が石川県とちょっと遠いですが、小旅行気分で、ぜひぜひ多くのLISPファンのみなさまにご参加いただきたいと思います。(yshigeru) 日時:8/7(土)〜8/9(月) 場所:JAIST(石川県美濃市) 詳細と参加申し込みは、ELIS復活祭ページをご参照下さい www.jaist.ac.jp/elis-revival/home.html
516 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:59:54 ] >>514 skkじゃだめ?誤入力を考えるとskkちょー便利だと思うけど。
517 名前:デフォルトの名無しさん [2010/07/06(火) 19:01:35 ] EmacsLispプログラミング入門の12・3の関数forward-sentenceで 引数を1以上にして M-x で動作させるとエラーになってしまいます。 デバッガー?を使ってもいかんせんよくわかりません sentence-endを評価した値が nil なのが原因? Debugger entered--Lisp error: (wrong-type-argument stringp nil) re-search-forward(nil 592 t) (if (re-search-forward sentence-end par-end t) (skip-chars-backward " \n") (goto-char par-end)) (let ((par-end ...)) (if (re-search-forward sentence-end par-end t) (skip-chars-backward " \n") (goto-char par-end))) (while (> arg 0) (let (...) (if ... ... ...)) (setq arg (1- arg))) forward-sentence1(1) call-interactively(forward-sentence1 t nil) execute-extended-command(1) call-interactively(execute-extended-command nil nil) 追記:M-eはきちんと動作しています
518 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:53:09 ] >>516 skkも考えたんですが、そもそもこれ作ろうと思った発端は、 入力方式の切換えが面倒だった事なのですよ。 須く日本語入力ソフトは切換えが必要なので、 どうにか良い方法はないかと思って辿り着いたのがauto-completeなんです。 自動的に候補が出る形です。 取り敢えず一応完成させました。 入力方式の切換えが必要無いのは便利ですね。 日本語と英語の入り乱れたリストとか テンプレートがあってそれを編集するような場合は使える気がします。 あと、skk だと日本語と英語で配列が違う場合設定が面倒だっていうのもあります。 今打っているのもそれなのですが、これなら配列が違う方が良いというか、むしろ同じだと駄目というか。
519 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:08:38 ] >>517 re-search-forwardの第一引数にnilが渡ってるのが原因だと思う。 想像の通り、sentence-endがnilだから。本来、正規表現を文字列で渡す所。 (wrong-type-argument stringp nil) (間違った型の引数 文字列かどうかを判別する関数 nil) って意味。その下にずらずら出てるのは、バックトレース。 どこから呼ばれたコードがエラーになったのか、それで判断できる。 下に行くほど上位の関数。forward-sentence1とかも出てるでしょ?
520 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:39:47 ] Emacs Lisp プログラミング入門のその部分が変化に追いついてないみたい。 sentence-end を参照している部分は (sentence-end) に変えてください。 sentence-end はnilでデフォルト値を使うことを意味するようになったので、 正規表現そのものが欲しい場合は関数sentence-endを使うようになりました。 C-h v sentence-end とすれば説明の中に次の記述があります。 > The value nil means to use the default value defined by the > function `sentence-end'. You should always use this function > to obtain the value of this variable.
521 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:48:24 ] Emacsのソースコードのtarballの中に入ってるemacs-lisp-introでは ちゃんと反映されているようなので↓は取り消します。 > Emacs Lisp プログラミング入門のその部分が変化に追いついてないみたい。 なんかおかしいなと思ったらお使いのEmacsのバージョンにあったものを 参照してくださいってことで。
522 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 20:31:34 ] skk のオンデマンドで再帰的な辞書登録をなんで他のIMEでも採用しないのか不思議でならん。 特に Google IME・・・
523 名前:517 mailto:sage [2010/07/07(水) 20:58:59 ] (sentence-end)に変更したところ無事動かすことが出来ました。 ちゃんとヘルプ読んでるつもりだったんですが全然できてなかったみたいで・・・ 今後はちゃんと読みまくるよう頑張って先に進んでいきます。 レスくださった方々ありがとうございました
524 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 02:17:01 ] www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs21&node=Killing kill-read-only-ok がnilの場合はキルできないと書いてあるはずなんだが 変数がどうあれC-kで行コピーができるような気がするんだが… 俺の解釈が間違ってるのか?
525 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 04:38:33 ] エラーが出るかどうか
526 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:05:07 ] >>525 つまりコピーできるのは間違ってないのね…
527 名前:デフォルトの名無しさん mailto:sage [2010/09/13(月) 23:29:26 ] Emacs Lisp覚えたいんだけど、参考にするには何がいい?
528 名前:デフォルトの名無しさん mailto:sage [2010/09/14(火) 07:19:59 ] 他人の.emacs
529 名前:デフォルトの名無しさん mailto:sage [2010/09/14(火) 08:57:42 ] >>527 SuoerASCIIの連載 ttp://www.asahi-net.or.jp/~dp8t-asm/elisp/ ttp://e-arrows.sakura.ne.jp/2010/02/vim-to-emacs.html ttp://www.google.co.jp/search?hl=ja&q=lisp+emacs
530 名前:527 mailto:sage [2010/09/15(水) 04:43:42 ] >528 >529 ありがと。
531 名前:デフォルトの名無しさん [2010/09/25(土) 23:48:03 ] ntemacs 23.2 に menu-tree.el 0.96 を導入すると、一部(「オプション」→「行の折り返し」等)文字化けします。 どうすれば、文字化けしないように出来ますか?
532 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 06:16:18 ] max-specpdl-sizeとmax-lisp-eval-depthが数値が足りないと時々文句を言われるんだが 数値を増やす以外で上手い解決策ってないのかね。
533 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 14:59:13 ] 文句がでるところをループに書き換える
534 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:44:25 ] >>533 文句を言われるのはdefadviceなんでそれを使うなってことになるのか。。
535 名前:Zeno ◆5nZQbNmQPs [2010/10/16(土) 17:02:04 ] >>534 やり方はいろいろあるが、 (setq debug-on-quit t) にして、問題のsexpを実行しろ。 途中で \C-g を押せば問題箇所までのトレースができる。 それでわからなければdefadvice中で使用されるであろう自分で関数を調べろ。 debug-on-error で関数本体をデバッグすることも可能だ。
536 名前:デフォルトの名無しさん mailto:sage [2010/10/21(木) 09:33:40 ] \C-x dの代替に開いてるdired探すの書いてます。 見つからなかったとき普通のdiredコマンド開きたいけど(dired nil)だとミニバッファで止まらない。 インタラクティブなコマンドはどう呼べばいいのでしょう?
537 名前:デフォルトの名無しさん mailto:sage [2010/10/21(木) 10:05:30 ] >>536 あ、自分で書いた日本語が答えになってたw インタラクティブに呼ぶつう関数みつけた。落ち着け、おれwww
538 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 12:10:30 ] 自然数をリスト化する関数はありますか? 例えば (foo 12345) => '(1 2 3 4 5) みたいな。
539 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 18:24:58 ] 知らないけど、 12345を1234と5に分ける、 1234を123と4に分ける、 ……ってやれば作れるよ。 っていうのでは意味がないんでしょうか。 (defun nat-to-list (n &optional lst) (cond ((< n 1) lst) (t (nat-to-list (/ n 10) (cons (mod n 10) lst))))) (require 'cl) (defun nat-to-list-2 (n0) (do ((n n0 (/ n 10)) (lst nil (cons (mod n 10) lst))) ((< n 1) lst))) ふだんLispを使わないので変なところあったら教えてほしかったりする。
540 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 18:39:26 ] 負数は考えなくていいなら ELISP> (mapcar (lambda (c) (- c 48)) (string-to-list (format "%d" 12345))) (1 2 3 4 5)
541 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 18:45:12 ] 回りくどいけど (mapcar #'(lambda (c) (string-to-number (char-to-string c))) (append (format "%d" 12345) nil)) ;=> (1 2 3 4 5)
542 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 18:52:01 ] スピードで見ると >>539 <= >>540 < >>541 ← 速い 遅い → でした。ありがとうございました。
543 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 19:16:40 ] mapcarは直接stringをとれるよ。 (mapcar (lambda (c) (- c ?0)) (number-to-string 12345)) => (1 2 3 4 5)
544 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 19:33:18 ] なるほどw (mapcar #'identity "hello") => (104 101 108 108 111)
545 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 20:26:53 ] >>539 の弱点発見。0 → nil。バナナは自然数に……。
546 名前:デフォルトの名無しさん mailto:sage [2010/11/16(火) 00:00:50 ] >mapcarは直接stringをとれるよ。 スレチ気味だがCommon Lispではmapcar関数はリストのみ扱えるはず 文字列を引数に与えるのはおススメできない(互換性的な意味で)
547 名前:デフォルトの名無しさん mailto:sage [2010/11/16(火) 10:08:39 ] じゃあ互換性的な意味でCommon Lispでもlexical scopeを前提としたプログラムは書くのはおススメできないね。 ...馬鹿馬鹿しい。
548 名前:デフォルトの名無しさん mailto:sage [2010/11/16(火) 14:58:23 ] 型のきびしい処理系にもってけばはじかれるだけだから、 注意はした方がいいけど、使わない方がいいとまでは言えないかな。 Emacs Lispとかじゃなくてもっと新しい言語なら「将来使えなくなるかも」みたいな 見方もあるかもしれないけどw
549 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 20:30:59 ]
550 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 07:19:49 ] (let ((element (list 1 2))) (add-to-list 'element 3)) ;;=> (3 . 3)w ◇ ミ ◇ ◇◇ / ̄| ◇◇ ◇◇ \ |__| ◇◇ 彡 O(,,゚Д゚) / ( P `O /彡#_|ミ\ </」_|凵_ゝ 【ラッキーAA】 このAAを見た人はコピペでもいいので 10分以内に3つのスレへ貼り付けてください そうすれば14日後好きな人から告白されるわ宝くじは当たるわ 出世しまくるわ体の悪い所全部治るわでえらい事です
551 名前:デフォルトの名無しさん mailto:sage [2010/12/17(金) 23:45:59 ] >>550 これ、解決策が思いつかないw 仮引数に使われる記号が隠されちゃうっていう
552 名前:デフォルトの名無しさん mailto:sage [2010/12/18(土) 02:06:05 ] 環境そのものを引き渡せない限りきちんとした解決は無理でしょう。 本来マクロで書くべきものだと思う。
553 名前:デフォルトの名無しさん mailto:sage [2010/12/19(日) 03:27:54 ] マクロでもできなくない? 引数を一度しか評価しないという点を守ると……
554 名前:デフォルトの名無しさん mailto:sage [2010/12/19(日) 03:38:44 ] Cのプリプロセッサじゃあるまいし
555 名前:デフォルトの名無しさん mailto:sage [2010/12/19(日) 11:41:18 ] そうか、defmacroとmake-symbolで解決できるのか……
556 名前:デフォルトの名無しさん [2010/12/20(月) 12:35:06 ] emacs初心者でpythonを勉強しようと思っているのですが、windowsのemacs上でipythonを実行する方法はないでしょうか?
557 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 12:57:00 ] あります。
558 名前:デフォルトの名無しさん [2010/12/20(月) 13:41:38 ] ご教授お願いします
559 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 13:45:46 ] ipython.scipy.org/dist/ipython.el
560 名前:デフォルトの名無しさん [2010/12/20(月) 14:08:21 ] C:\Python26\Scriptsにipythonがあるのですが (setq ipython-command "/some-path/ipython") (require 'ipython) のsome-pathはどのように指定すればいいのでしょうか?
561 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 14:37:14 ] ipython が有るパス
562 名前:デフォルトの名無しさん [2010/12/20(月) 15:10:10 ] (require 'python-mode) (setq ipython-command "C:/Python26/Scripts/ipython") (require 'ipython) と.emacsに書いてemacs起動してM-x py-shellと打ってみたら Process Python exited abnormally with code 1 と出てうまくいきません...
563 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 15:26:22 ] "C:/Python26/python.exe C:/Python26/Scripts/ipython"
564 名前:デフォルトの名無しさん [2010/12/20(月) 15:32:29 ] >>563 (setq ipython-command "C:/Python26/python.exe C:/Python26/Scripts/ipython") これでやってみたんですが、普通のpythonシェルが起動しました...
565 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 15:53:33 ] そうか。
566 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 16:35:11 ] おめでとぉ
567 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 19:08:54 ] 全てのchildrenに
568 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 21:07:23 ] >>567 死を # kill -9 1
569 名前:デフォルトの名無しさん [2011/01/07(金) 10:37:11 ] Emacs Lisp本に向けてアンケートに御協力お願いします! d.hatena.ne.jp/rubikitch/20110106/elispenq だってサ
570 名前:デフォルトの名無しさん mailto:sage [2011/01/13(木) 01:25:32 ] Emacsの歴史について知りたい この年にこういうことがあったとか
571 名前:デフォルトの名無しさん mailto:sage [2011/01/13(木) 02:13:24 ] 20年くらい何も起きてないような気がする
572 名前:デフォルトの名無しさん mailto:sage [2011/01/13(木) 09:08:15 ] 2年に1度はメジャーバージョンアップしてるだろ
573 名前:デフォルトの名無しさん mailto:sage [2011/01/13(木) 11:25:21 ] >>570 一番の思い出は uucp 経由で fj.sources に、Emacs 日本語化パッチα版が流れたときだったな。 まだまだHDDは高価で、テープもぽつぽつ残っていた。 その次が Emacs 20.2 から 20.3 のバージョンアップ。 (length "漢") が、3から1になった。あれで劇的にプログラムが作り易くなった。 あのとき議論(flame)の中心だった Erik Naggum 氏もとっくに鬼籍に入られて...
574 名前:デフォルトの名無しさん mailto:sage [2011/01/13(木) 12:43:31 ] Mule の統合とかは
575 名前:デフォルトの名無しさん mailto:sage [2011/01/13(木) 15:52:26 ] >>573 テープ回覧させてもらった覚えがある
576 名前:デフォルトの名無しさん mailto:sage [2011/01/13(木) 18:40:25 ] NEmacsからMuleに
577 名前:デフォルトの名無しさん mailto:sage [2011/01/14(金) 03:16:02 ] MuleからEmacsに
578 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 02:54:04 ] >>573 uucpすらできない貧乏機関は FSF に頼めばEmacsのソースコードを実費で 磁気テープに入れて送ってもらえた。 そういう時代だった。
579 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 21:10:29 ] まあuuxですけどね。
580 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 22:05:29 ] >>578 あんたら、じじいの集団かよ とか、いいながらfjの回覧テープのコピーが会社の倉庫に残ってるような記憶が…
581 名前:デフォルトの名無しさん [2011/01/15(土) 23:36:56 ] 資材管理室^H^H^H^H^Hリストラ待機室で 代々「大切に保管汁」と申し送りされてるのな
582 名前:デフォルトの名無しさん mailto:sage [2011/01/16(日) 13:40:35 ] フロッピーで回覧してたなあ
583 名前:デフォルトの名無しさん mailto:sage [2011/01/16(日) 14:23:54 ] >>582 FD何枚になるった? <fj回覧テープ
584 名前:デフォルトの名無しさん mailto:sage [2011/01/17(月) 03:20:01 ] 50枚くらい
585 名前:デフォルトの名無しさん mailto:sage [2011/02/01(火) 05:38:56 ] マウススクロールでの移動幅を変える設定ってありますか? ぐぐったら上の方に出てくるのはあるんだけどなんか高々移動幅変えるのに あんな大層な設定がいるのか疑問に思い質問しました。もし他に 簡潔な設定がありましたら教えていただきたいです。
586 名前:デフォルトの名無しさん mailto:sage [2011/02/02(水) 01:02:03 ] >>585 私は 3 にしてる。 (define-key global-map (kbd "<mouse-4>") (lambda () (interactive) (scroll-down 3))) (define-key global-map (kbd "<mouse-5>") (lambda () (interactive) (scroll-up 3)))
587 名前:デフォルトの名無しさん mailto:sage [2011/02/14(月) 12:23:35 ] こんにちは。ここでよいか分かりませんが、質問させてください。 lookupで、4GBを超えるHONMONファイルを扱うことは可能でしょうか? 今、lookup 1.99.95を使用しているのですが、Wikipediaデータをダンプして 作成したHONMONファイル(9GB強)が認識されません。 アドバイスいただけると嬉しいです。
588 名前:587 mailto:sage [2011/02/14(月) 13:10:47 ] すみません、自己解決しました。 eblookをver 1.4から1.6.1にアップデートしたところ、問題なく検索できました。 ご迷惑おかけいたしました。
589 名前:デフォルトの名無しさん mailto:sage [2011/02/24(木) 04:16:35.85 ] elisp って emacs だけかと思ったら guile にも実装されてるのね guile をインスコするより emacs をインスコする方が簡単なのがアレだけど・・・
590 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 00:42:13.95 ] elisp の勉強に↓これを読んでみたけど面白かった。 dantorop.info/project/emacs-animation/ elisp で文字ベースの簡単なアニメーションを実装するという内容で、 初心者レベルの人に良いかも。
591 名前:デフォルトの名無しさん [2011/04/21(木) 11:29:01.15 ] concurrent.elリリース - 技術日記@kiwanami d.hatena.ne.jp/kiwanami/20110420/1303319508 新機軸だな。どんどん盛り上げるんだ。
592 名前:デフォルトの名無しさん mailto:<sage> [2011/04/30(土) 09:08:17.96 ] 質問です。文字列の中に特定の文字が何個あるかを数える関数ありますか? 例 (foo "abaca" "a") => 3 みたいな。m/(_ _)\m
593 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 09:39:12.00 ] バッファ(リージョン)中の文字の数を数えるにはhow-manyがあるけど、 ソースを見ると簡単に数える関数は無いみたいだね。
594 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 09:43:18.59 ] (require 'cl) して count じゃダメ?
595 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 12:39:36.14 ] >>592 これは? (defun how-many-regexp-in-str (str regexp) (with-temp-buffer (insert str) (goto-char (point-min)) (how-many regexp))) (how-many-regexp-in-str "abaca" "a") 3
596 名前:デフォルトの名無しさん mailto:sage [2011/05/04(水) 00:20:16.20 ] ふむ
597 名前:デフォルトの名無しさん mailto:<sage> [2011/05/04(水) 08:07:25.26 ] みなさん、あざっす。count で完璧です。 (count ?a "abaca") => 3
598 名前:デフォルトの名無しさん mailto:sage [2011/05/05(木) 13:48:55.61 ] ∩___∩ ∩___∩ ♪ | ノ ⌒ ⌒ヽハッ __ _,, -ー ,, ハッ / ⌒ ⌒ 丶| / (●) (●) ハッ (/ "つ`..,: ハッ (●) (●) 丶 | ( _●_) ミ :/ :::::i:. ミ (_●_ ) | ___ 彡 |∪| ミ :i ─::!,, ミ、 |∪| 、彡____ ヽ___ ヽノ、`\ ヽ.....::::::::: ::::ij(_::● / ヽノ ___/ / /ヽ < r " .r ミノ~. 〉 /\ 丶 / /  ̄ :|::| ::::| :::i ゚。  ̄♪ \ 丶 / / ♪ :|::| ::::| :::|: \ 丶 (_ ⌒丶... :` | ::::| :::|_: /⌒_) | /ヽ }. :.,' ::( :::} } ヘ / し )). ::i `.-‐" J´(( ソ トントン ソ トントン
599 名前:デフォルトの名無しさん mailto:sage [2011/06/07(火) 22:36:45.00 ] ほしゅ
600 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 01:26:54.90 ] git の update 来てターーーー!! これで bzr の遅さに悩まされずに済む https://github.com/emacsmirror/emacs
601 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 09:28:23.62 ] リージョンの末尾判定はどう書けばよいですか? リージョンの各行を引数としたコマンドを実行するプログラムを書いたんですが 動的に行数がかわるためeolpで判定してみたものの 空行があるとそこでとまってしまいます (defun mapr (b e f) (save-excursion (save-restriction (narrow-to-region b e) (goto-char (point-min)) (while (not (eolp)) (let* ((end (progn (end-of-line) (point))) (start (progn (beginning-of-line) (point))) ) (if (not (= start end)) (funcall f start end)) (forward-line 1)))))) (defun mapl (b e str) "" (interactive "r\nsInputShellCommand:") (mapr b e `(lambda (b e) (narrow-to-region b e) (let* ((text (buffer-string)) (command (concat str " " text)) ) (call-process-region b e "/bin/bash" t t t "-c" command))))) 利用例:範囲選択して、M-x maplしてlsと打つ /home /usr
602 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 09:48:23.44 ] 自己レス、変なやり方かもしれない (= (point) (progn (forward-char) (point)))
603 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 10:16:31.90 ] >>601 eolp の代わりに、eobp を使ったらどう?
604 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 11:22:54.98 ] せっかく narrow-to-region してるんだしねえ
605 名前:デフォルトの名無しさん mailto:sage [2011/06/18(土) 02:36:28.49 ] >>603 ありがとう、後で試してみます ところで、全然関係ないけど、Ctrl+hをBSに割り当ててたせいで C-h a/C-h v/C-h f等便利なキーが使えなかったことに最近気づきました Webによく落ちてる色んな.emacsに長らく騙されてきた気がする
606 名前:デフォルトの名無しさん mailto:sage [2011/06/18(土) 03:47:54.53 ] <f1> a / <f1> v / <f1> f
607 名前:603 mailto:sage [2011/06/18(土) 05:25:24.46 ] >>605 (tty-run-terminal-initialization (selected-frame) "bobcat") (define-key mode-specific-map (kbd "h") 'help-command) (define-key help-map (kbd "<DEL>") 'help-for-help) 自分はこれで、C-c h に help を設定してる。
608 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 01:34:27.81 ] >>605 DeleteとC-hを交換したら、元々C-hと打ちたい時にはDeleteを打てばいい。
609 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 13:03:07.10 ] >>607 eobpで動きました、ありがとう 設定参考になります。 皆それぞれのやり方ですね
610 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 22:58:16.08 ] keyboard-translateだと一発で全交換になる。
611 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 23:16:56.09 ] >>605 ネットはそこまで闇じゃなくて、目を開けば色々あると思うけどw、 初期段階でうっかり「本来の情報の流れ」からはぐれるっていうのはありがちだと思う。 ttp://kamuy.c.u-tokyo.ac.jp/~tnakae/c/emacs.html > この時ヘルプが使えなくなるので、C-x h でヘルプを開くように変更するとかしておく。
612 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 01:43:46.71 ] >>605 伝統的に多くの人がやってる割り当てなのは事実。 Windows だと f1 が C-h のかわりに使えるけど、 これって他の環境では違ったりすんの?
613 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 02:04:26.93 ] Mac OS X でも f1 は C-h と一緒だった 初めて知った...
614 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 02:53:15.09 ] >>612 古いマニュアルを漁ってみた。19.28から19.30の間に説明が加わっていた。 ttp://www.ps.uni-saarland.de/courses/info-i/emacs/emacs_11.html > To cancel, type C-g. ttp://www.math.utah.edu/docs/info/emacs_11.html > To cancel, type C-g. The function key F1 is equivalent to C-h.
615 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 03:08:22.06 ] 情報が中途半端だった……。19.30からの標準設定、でいいみたい。 Emacs 19.28 and 19.29 Antinews ttp://www.chemie.fu-berlin.de/chemnet/use/info/emacs/emacs_37.html > # F1 is no longer an alias for the Help key; you must actually type C-h if you want help.
616 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 10:55:19.13 ] bobcatは相当前からあるし、 同様の設定FAQはずっと前からある。
617 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 20:25:22.91 ] etc/ONEWSには19.29での変更点として載ってるな 文書化の微妙な食い違い
618 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 11:32:12.03 ] 19.28と19.29のAntinewsだから、 19.28→19.30の変更が(逆向きの表現で)書かれてるんでしょ。 だから食い違いはない。Antinewsの方が大雑把なだけ。
619 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 20:24:05.49 ] 19.28と19.29の区別が不十分なのが微妙ってこと。 アウトかと言えばアウトかと。
620 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 20:27:50.42 ] 食い違いじゃないね
621 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 21:44:45.65 ] Ctrl+;を自作関数起動用の2ストロークキーに割り当てようとしたらば 単に;が入力されるだけだったでござる
622 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 22:16:05.35 ] >>621 ターミナルでC-,やC-.に割り当てたい - (ひ)メモ ttp://d.hatena.ne.jp/hirose31/20040219/1160403206
623 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 14:31:58.68 ] Emacs 19.28 から 19.29 は メジャーバージョンアップなみに変更あったはず 19.29 から 19.30 はそれほどではないはず なので 19.28->19.29 の差分だろうという感じはする
624 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 23:57:28.33 ] これカッチョええ! https://github.com/nicferrier/elnode emacswiki.org/wiki/Elnode
625 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 17:57:17.39 ] 質問です。 1. 現在リージョンの選択中であるか否かの判別はどのようにすればよいのでしょうか? 2. Shift-クリックでカーソル位置からクリック位置までの選択を行いたいのですが、どのようにすればよいのでしょうか? よろしくお願い致します。
626 名前:625 mailto:sage [2011/08/11(木) 22:46:27.24 ] すみません、1. は (region-active-p) で自己解決しました。
627 名前:625 mailto:sage [2011/08/12(金) 03:38:36.76 ] down-mouse-1 で mouse-appearance-menu が出てこないようにしたらいけました。 ありがとうございました。
628 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 03:21:35.56 ] labelsと (require 'cl)について教えてください。 1. Emacs Lispにはlabels相当の命令はありますか? 2. (require 'cl)をちょっとぐぐったところ Emacs 付属lispには使うな的な事が書いてあって賛否両論で云々〜 とあったのですが、これはなんででしょう? 以上よろしくです。
629 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 04:12:40.77 ] >>628 1. あります。 2. ググった先で喧々諤々やってたでしょうに。 簡単に説明すると、Emacs LispはCのように、名前空間がひとつしかないのです。 そのため、ライブラリの関数などには接頭辞を付けるのがマナーになっています。 (fooというライブラリなら、foo-funcみたいな名前を付けます) ですが、clライブラリではCommon Lispの関数やマクロと名前を合わせるため、 その接頭辞を付けていません。そのため、(require 'cl)でライブラリを読み込むと、 一般的な名前のマクロや関数が大量に定義され、それらの名前が使われることで、 プログラマが好きに付けられる名前が減ってしまいます。これを許せない人と、 許容して便利さを採る人がいて、議論の争点になります。 こういう構図です。理解できなかったら勉強するとじきに分かるようになると思います。 自分で書いたプログラムを配布するのでもなければ、気にすることはありません。
630 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 04:18:01.74 ] 補足。正確に言うと、labelsは標準の機能としては提供されていませんが、 Emacsに付属のclライブラリで提供されています。
631 名前:628 mailto:sage [2011/08/15(月) 05:50:20.73 ] >>629 > 簡単に説明すると、Emacs LispはCのように、名前空間がひとつしかないのです。 > そのため、ライブラリの関数などには接頭辞を付けるのがマナーになっています。 > (fooというライブラリなら、foo-funcみたいな名前を付けます) > > ですが、clライブラリではCommon Lispの関数やマクロと名前を合わせるため、 > その接頭辞を付けていません。そのため、(require 'cl)でライブラリを読み込むと、 > 一般的な名前のマクロや関数が大量に定義され、それらの名前が使われることで、 > プログラマが好きに付けられる名前が減ってしまいます。これを許せない人と、 > 許容して便利さを採る人がいて、議論の争点になります。 めっちゃ的確な解説ありがとう。 グローバルな名前空間汚すな云々ってことだったのですね。 C/C++使ってるので解説はとてもわかりやすかったです。 >補足。正確に言うと、labelsは標準の機能としては提供されていませんが、 >Emacsに付属のclライブラリで提供されています。 はい、こちらは(require 'cl)後にlabelsが使えることは確認してますー。 なのでclを使わない別の方法が標準で提供されてるのかな?とおもってますた。
632 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 09:21:43.98 ] 629じゃないけど横から補足しておくと、clのうちマクロで提供されている部分は バイトコンパイルすると実行時にはclを必要としない(ものが多い)ので、 そういうのは使っても問題ない。labelsもその一つ。 それを前提とした使い方の場合は (eval-when-compile (require 'cl)) とする。こういう使い方はEmacs標準のelispでも多用されている。
633 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 15:08:17.60 ] ポイント位置が最上行か最下行かを判定するのはどうすればいいでしょうか?
634 名前:デフォルトの名無しさん [2011/08/22(月) 06:51:10.47 ] >>633 (= (point-at-bol) (point-min)) ; ポイントがバッファ表示の最初の行にあるか? (= (point-at-eol) (point-max)) ; ポイントがバッファ表示の最後の行にあるか? バッファの可視領域が制限(ナローイング)されている場合、上記はその制 限された「見た目上の」先頭行・最終行を判定します。 ナローイングの有無に関らず「実際の」先頭行・最終行を判定したい場合 は次のようにします: (= (point-at-bol) 1)) ; ポイントが実際のバッファ内容の最初の行にあるか? (= (point-at-eol) (1+ (buffer-size))) ; ポイントが実際のバッファ内容の最後の行にあるか?
635 名前:デフォルトの名無しさん [2011/09/02(金) 02:44:23.27 ] frame-title-formatについて質問です。 buffer-file-nameがnilでなければ"a"を、nil だったら"b"を表示したくて (setq frame-title-format '(if buffer-file-name "a" "b")) のようにしてみたのですが、条件の判別がうまくいかないようです。 どうしたらうまくいきますか? お願いします。
636 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 03:43:53.94 ] '(:eval (if buffer-file-name "a" "b")) なんかこうこんな感じだったはず 確かめてないけど
637 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 13:09:06.78 ] >>636 ありがとうございます。 助かりました。
638 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 01:50:01.80 ] 前に、市の図書館の新刊にこの本あったわ。最近新装版でたのか この本は自腹で買わないと身に入らないだろw
639 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 01:51:01.39 ] いやこの本とか意味不明だなw広瀬本
640 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:17:46.57 ] そういや出てたな。買わなかったけど。
641 名前:デフォルトの名無しさん [2011/09/24(土) 12:19:32.59 ] タブ幅が tab-width の2倍になってしまいます。 (setq tab-width 8) とするとタブ幅が半角16文字分になり、 これを8文字分にするには (setq tab-width 4) としなければなりません。 何故でしょうか? よろしくお願いします。
642 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 03:04:50.10 ] >>641 とりあえず C-h v (describe-variableだっけ?) あたりで、ちゃんと8になってるか見てみれば?
643 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 20:26:08.46 ] >>642 ありがとうございます。 確認してみましたが、設定した通りになっているようです。 しかし実際のタブ幅はその値の2倍になってしまっています。
644 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 23:38:16.25 ] フォントによってそうなるような気が。
645 名前:デフォルトの名無しさん [2011/09/26(月) 01:51:59.22 ] >>641 たぶんこれと同じ現象では。 ■Emacs23のフレーム幅が変、■Emacs23のフレーム幅が直った garakuta.homelinux.org/~nosuke/diary/diary.html?y=2008&m=10&d=15&n=1
646 名前:デフォルトの名無しさん [2011/10/07(金) 15:26:12.43 ] (eq 'abc 'abc)は何故tで、 (eq "abc" "abc")は何故nilなんでしょうか。
647 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/10/07(金) 20:12:16.62 ] eq での比較は同値性ではなく同一性を判定する。 つまり、同じ値であってもそれそのものでなれば nil になる。 シンボルは登場と同時にシンボルテーブルに登録 (intern) されるので字面が同じシンボルは常に同一と判定される。
648 名前:デフォルトの名無しさん mailto:sage [2011/10/07(金) 23:38:19.22 ] >>647 とてもわかりやすい説明ありがとうございます。
649 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/10(月) 09:48:28.47 ] info の記述とは違う気がするけど、こんなものなのか? (let ((s "\241")) (list (string-match "[[:ascii:]]" s) (string-match "[[:nonascii:]]" s) (string-match "[[:unibyte:]]" s) (string-match "[[:multibyte:]]" s) (string-match "[[:print:]]" s) (string-match "[[:punct:]]" s) (string-match "[[:graph:]]" s) (string-match "[[:word:]]" s))) (nil nil nil nil nil nil nil nil)
650 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 05:00:14.95 ] インタプリタはないの?
651 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 11:59:34.58 ] M-x ielm
652 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 12:40:09.17 ] LISP 言語と A.I. の父 John McCarthy 博士死去 2011年10月26日 Stanford Engineering はコンピューターサイエンティストで A.I. 分野の草分け的存在だった John McCarthy 博士が2011年10月24日、同氏のカリフォルニア州スタンフォードの自宅で 亡くなったと伝えた。84歳だった。 McCarthy 博士が世間の注目を集めたのは、1966年にロシア国内のライバルと コンピューターチェスの対戦を主催したときのことだった。4試合同時に行われたこの 対戦は数か 月に及び、結果は McCarthy 博士側の2敗2引き分け。McCarthy 博士は後に 「完敗だった」と語っていた。 McCarthy 博士は、21世紀を迎えた現在やっと現実のものとなりつつある「人工知能 (Artificail Inteligence:A.I.)」という概念を50年以上も前から唱えていた A.I. 界の巨人。 同氏は1956年に英国の Dartmouth 大学で開催された人工知能に関する会議「ダートマス 会議」に提案書を提出し、「A.I.」という言葉をその提案書の中で歴史上初めて使用した。 1958年、McCarthy 博士はコンピューター言語 LISP を開発。これは、FORTRAN に次いで 2番目に古いプログラミング言語で、A.I. プログラムを記述する言語として現在も使用されている。 また、あまり知られていないことだが、「ガーベージコレクション(ゴミ収集)」と呼ばれる 技術を開発したのも McCarthy 博士。これは、プログラムが予約したメモリ領域のうち不要に なった領域を自動解放する技術で、LISP 言語の機能強化の一環として開発された。。 1960年代の初頭には、McCarthy 博士はタイムシェアリングによるコンピューターの効率的な 利用というコンセプトをすでに発表しており、このコンセプトはその後の分散処理やクラウドへと 発展するコンピューティング技術の基礎となった。
653 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 12:40:35.53 ] スタンフォード大学名誉教授で上級科学研究員の Les Earnest 氏は次のように語っている。 「多くの人々が、タイムシェアリングがコンピューターを使う賢い方法だということはわかって いた。だが、どうすれば実現できるかについては、誰もわからなかった。John 以外は誰も」 氏の告別式は、近く執り行われる。 ▽記事引用元 japan.internet.com japan.internet.com/webtech/20111026/2.html ▽画像 John McCarthy 博士(Stanford Engineering) japan.internet.com/img/20111026/1319617220.jpg ▽博士のホームページ www-formal.stanford.edu/jmc/index.html
654 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 12:41:55.61 ] toki.2ch.net/test/read.cgi/scienceplus/1319679294/
655 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 21:19:57.61 ] 書籍案内:Emacs Lispテクニックバイブル|gihyo.jp … 技術評論社 gihyo.jp/book/2011/978-4-7741-4897-7
656 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 01:25:33.82 ] 今さら感があるけど、Emacs Lispで書かれたライブラリとかプログラムのことを 単に「Emacs Lisp」と呼ぶ習慣はそろそろみんなに考え直してもらいたい
657 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 02:05:26.45 ] >>656 なんて言えばいいの?
658 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 07:44:35.83 ] > poj-mode.el is an emacs lisp for POJ 小文字で書けばいいのかと問いたい
659 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 01:25:37.08 ] >>656 「elispアプリ」とか「elispライブラリ」とか言えっての?
660 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 01:43:40.58 ] 公式な呼び名は無いの? 概念的に近いのはブラウザの拡張とかかなぁ。 歴史的経緯を無視するならエクステンションとかプラグインとか呼ぶのが妥当だと思う。 使われている言語が Emacs Lisp なのは、 たまたま Emacs がそういうものだという実装に立ち入る話なので、 ユーザーに見せるべき筋合いのもではない。
661 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 02:28:09.29 ] Emacsスクリプトでよくね?
662 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 03:01:18.58 ] マニュアルを読みなよ
663 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 04:49:59.57 ] >>660 > 使われている言語が Emacs Lisp なのは、 > たまたま Emacs がそういうものだという実装に立ち入る話なので、 > ユーザーに見せるべき筋合いのもではない。 むしろユーザーが容易にみれる、弄れる、スクリプトを組めるという仕様で人をスクリーニング しているのがemacsの良さなんじゃないの。Firefoxのエクステンション的使い方で敷居は低い けど、emacs lispの書き方を覚えたら自分の使いやすいように弄りたいという野心がユーザーの 大多数の中にあるんじゃないかな。 自分はそういう野心を持ってFirefoxを使っていないなあ。
664 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 20:57:58.95 ] ブラウザだとgreasemonkeyが近いな お手軽で重宝してる
665 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 21:19:58.90 ] >>661 一票。
666 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:43:03.03 ] スクリプトには違和感ありまくり elispプログラムかパッケージで
667 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:53:56.79 ] マニュアルでは大体libraryかpackage(かfile)だけど、別に厳密な定義はない 明確な機構で管理されてないこととも多少関係あるかも
668 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:01:29.59 ] xyzzyというEmacs風エディタの界隈で「拡張lisp」という言葉を見て ちょっと混乱した
669 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:17:32.81 ] magit という一個の package があったとして、 その中核となるファイル群の集合を指して library その集合の中の .el ファイルそれぞれが program とかそんな感じでは
670 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 03:07:27.20 ] locate-libraryは一つのファイルをライブラリって表現してるってことだよな
671 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 02:34:06.42 ] APEL の README だと Emacs Library や モジュール や ユーティリティー といった言葉が使われてる。 MULE プログラム や CCL プログラム って言葉も出てくる。
672 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 04:04:27.57 ] マクロでいいじゃん
673 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 15:19:18.49 ] >>672 defmacro以外で書いてある部分はどう呼ぶんだ?
674 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 02:01:47.78 ] それもマクロでいいじゃん
675 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 02:16:46.62 ] よくねえよwww
676 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 19:38:59.29 ] Emacs lispの他にマクロが装備されてるじゃん
677 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 00:02:21.53 ] elispはemacs自体を作るための言語だしなw
678 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 08:26:25.14 ] >>662 正解 EmacsはelispとCで出来てるので、Cの用語と調和できる表現が理想かと。 なのでマクロは…
679 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 08:38:22.22 ] >>672 defmacro で定義するマクロはなんて呼べば良いの?
680 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 11:49:43.28 ] Editor MACroS
681 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:32:52.18 ] >>680 Editing MACroS は TECO のマクロパッケージだ
682 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:02:07.70 ] emacsがたまたまlispで云々とか笑うなw gosmacsとmock lispに切れたlisperのストールマンが 作った最強のlisp環境兼エディタなのにw
683 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:05:57.06 ] >>682 Unipressの売り物になったから切れただけだろ
684 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 17:16:00.68 ] そういやそうだったかも でもMockじゃなくて ちゃんとしたlisp使いたくて 弄ろうとしたんじゃなかたっけ ある意味gosmacsはGNUの生みの親だなw
685 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 10:14:50.83 ] 最初gosmacsベースでGNU Emacs作っていて、 そんときは別に切れてない。 そのあとGoslingがgosmacsの権利売ったから切れた。
686 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 00:00:16.59 ] Emacsのアプリだからeアプリ これでいいよ. iアプリと似てるから世間で流行るかも知れん. e電と同じく廃れるかも知れんけど.
687 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 02:45:01.23 ] だいたいeはすぐ終わるな なぜかiは長生きする
688 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 03:05:15.28 ] アンビバレンツなIE
689 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 08:21:48.92 ] 大衆向けGUI付きのインストールシステムが無いからこれといった名前もないんだろうな そういうシステムの用語としてはパッケージってだいたい言うんじゃね? Emacs NetInstaller Packageということでどうか
690 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 10:39:04.45 ] >>687 つ email
691 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 15:47:27.09 ] 基本的にはlibraryなんだよ。ほぼ関数の塊で、 キーの割り当ては個人設定まかせだったりするでしょ。
692 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 00:25:11.12 ] emacsのevernote-mode.elで質問です。 69行目にdefmacroで enh-command-with-authというマクロを宣言しているのですが 最初のローカル宣言で `(let (error-code (try-func (lambda () ,@body))) 上のようになっています。 letといったら (let ((変数宣言)) 式) と言った形になると思うのですが、このマクロでは、 突然、宣言も何もやっていないerror-codeが出てきています。この部分では何をやっているのか知りたいです。 また、try-funcも上のlisp 後に(funcall try-func)という記述がありますので、普通の関数なのかと思い調べたのですが、見つかりません。try-funcとはなんなのかも分からなくて困っております。 どうか教えていただけますでしょうか、よろしくお願い致します。
693 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 00:55:00.25 ] >>692 > let is a special form in `C source code'. > > (let VARLIST BODY...) > > Bind variables according to VARLIST then eval BODY. > The value of the last form in BODY is returned. > Each element of VARLIST is a symbol (which is bound to nil) > or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM). > All the VALUEFORMs are evalled before any symbols are bound. だからerror-codeにはnilが束縛されて、 try-funcに(lambda () ...)が束縛される。 普通の関数は(funcall try-func)として実行できない。 try-funcが評価されて返ってきた関数を実行する。
694 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 01:16:52.08 ] >>693 お早い回答ありがとうございます!! 探しても載ってないletの取扱い方があるのかと思っていたのですが そのままの文法にしたがって解読すればよかったということですね。 また、funcallの使い方も勘違いしておりました。 try-funcの定義部分を探して読めば問題ないということですね! 大変助かりました。 ありがとうございました!
695 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:48:46.39 ] 探してというかマクロの引数。 command実行をauthでラップしてるんでしょ、どうせ。
696 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 22:57:34.38 ] WEB+DBの最新号、関数型言語入門を山本和彦が書いてるのを立ち読みして来た けど、LISPに関する文章が悲しくて泣けた Mewの開発者があれではなあ
697 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 23:14:04.60 ] >>696 マルチうぜぇ
698 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/03/04(日) 18:32:07.94 ] >>696 「リスト遊び」のときからわかってることを今更マルチで書き込んでやるなよ
699 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 19:15:58.06 ] かずさんはHaskell厨だからな
700 名前:デフォルトの名無しさん [2012/03/09(金) 07:48:01.98 ] Meadowでget-buffer-createしたバッファに while回しながら見つけたファイルの名前と中身を insertしようと (if (file-exists-p filename) (progn (insert filename) (insert-file-contents filename)) ) と書きましたが、書き込みがバッファされているようで、先にファイルの中身が 全部インサートされて後から(insert file)の結果がまとめてインサートされているようです。 (insert filename) (sit-for 0) (insert-file-contents filename)) とかやれば、そこでフラッシュされるかなと思ったのですが、 それもダメでした。何かいい方法はないでしょうか。
701 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:54:52.36 ] >>700 バッファされてるんじゃなくてpointがダメな気がする。 insertとinsert-file-contentsはpointからデータを挿入するけど、 insert-file-contentsの方は挿入した後pointを動かさないから、 (goto-char (point-max))とかしてみたらどうかね。
702 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:25:16.80 ] 強制描画させるのなら、sit-forではなくて redisplay, redraw-frame, redraw-display とかは?
703 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:40:54.66 ] 実践Emacs入門読んだ。 elispを関数型言語って言ってるんだけど 誤記たよね?
704 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:06:39.05 ] 今出てるWEB+DBの記事の定義に従えばそうだね でも、↓ではCLがHaskellと同列に書いてあるし、 en.wikipedia.org/wiki/Functional_programming functional flavor languageで初期LISPも紹介してあるから、そんなに目くじらたてるほどでもないんじゃないの
705 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:15:26.74 ] 単に初期のLispじゃなくて、マッカーシー先生が論文中で示した、 理論的なモデルのことを指してるんじゃないかなそれは。
706 名前:704 mailto:sage [2012/03/09(金) 16:37:17.52 ] そうなんだ
707 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:00:53.80 ] で、実装しちゃったのがスティーブ・ラッセル氏
708 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 05:38:23.01 ] るびきちの「Emacs Lispテクニックバイブル」ってこのスレの人的には 評価どうなん?
709 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 05:50:32.97 ] Emacsテクニックバイブルとは別の本だということを知らなかった
710 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 08:55:56.58 ] >>701 遅くなりましたが、そのとおりでした。ありがとうございます。 >>702 何かのときのために覚えて起きます。
711 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 10:00:02.54 ] るびきちって、るびーきち○いだった人?
712 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:26:39.59 ] > るびきちの「Emacs Lispテクニックバイブル」 内容以前に文章が稚拙すぎると思った。
713 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:44:11.30 ] いいじゃない。頑張って書いてるんだから。何処かの翻訳本とかの何書いてるか分からないよりはまし。 本書いたことがないとどれだけ大変か分からない。 それとも、お前サバンナでも同じ事言えんの?
714 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:54:05.09 ] >>713 サバンナ?わからない。 上の本に関してはどこか作者の心の乱れみたいなのを感じちゃって 正視に耐えなかった。
715 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:08:06.87 ] ,,ト、,, ,,ィ ,ィ _,,-;" '' ゛''" ゛';__ ヽ/""゛゛''`';, ノr´) ,;'゛/__ _ "iヽ;ミ お前ってアレだよな… ,,'"|( d /oノ ド゛ `ミ サバンナじゃ真っ先に死ぬタイプだよな r ";,| ▼ ド゛ `ミ (`ヽ';ヽ_人__ノ / ,,ミ゛、 ヽ、 '';,i⌒⌒ / リ ヽ、 /` ィ'r`''''""´ ,,ミ゛ | / | ゛r、ノ,,トリ'" i | / | | |  ̄ ̄ ̄ ̄ ̄i ノ ̄ ̄ ̄ ̄ ̄ ̄/ ノ ̄ ̄ ̄ ̄ `ー ´ / / ,-ー´ / ((_(_(_ノ
716 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:11:30.45 ] savannah.gnu.org
717 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:27:06.17 ] Emacsはサバンナやったんや
718 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:14:00.00 ] , -――- 、 / ヽ | ノ ー | それっておかしくねぇ? |(・) (・) | だって、ここ2chじゃん | ( | ヽ O 人 >ー-― ´  ̄ ̄\ ⊂ニニ ̄ ̄ ̄ヽ / | くメ) _ノ | | | | | (/ | | / | | | | |/ /| | | | ト / | | | ヽ__/ | | |
719 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:15:13.34 ] 氏の文章は論理的でなく読んでいて苦痛ですらある Emacs Lispテクニックバイブルp. 82から引用してみよう > 2-11-1 Lispファイルの置いているディレクトリを指定する > > ロードする方法を解説する前に、elispの置いてあるディレクトリを > 指定しなければなりません。それを指定することで、ロードするときに > Lispファイルのディレクトリ名を指定する必要がなくなります。 解説するのは誰か、ディレクトリを指定するのは誰か 本当に「しなければならない」のか こういった論理の乱れが作用し読者はいつしか電波を発するようになるのである
720 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:37:12.21 ] 分かりにくいかもね。後半の文は要らんかったかもね。 どんな表現だったら良かったんだろうね 編集さん大変だったろうなあ
721 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:49:21.27 ] その人の本は読んだことは無いがそこをさっと目で流した限り、 一般的に言うところの”パスを通す”と似た様な事をするんだろうなと読め、そんなに引っかかりは感じなかった。 精読や多読していくと違和感を感じるんだろうか。
722 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:57:55.82 ] 俺文書くのうまいぜっていう人ほど客観的になれなくて、 負けず嫌いだったりすると周りの言う事聞かなくなるからなあ。 小説の読み方の教科書とか
723 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 16:03:04.03 ] >>719 お買い上げありがとうございます。
724 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 17:24:23.47 ] >719の文章は、「ロードする方法をさっと解説してからパス通すことを 教えた方が必要性が分かりやすくていいんじゃね」とか突っ込まれたときに 受け入れることも無視することもできなかった結果の産物っぽく感じる だから、単に言うこと聞かずに我が道をゆく方がマシだったんじゃね 従わないけど聞かずにはいられないってタイプがもっとも支離滅裂な結果になる >>721 基本的に著者の書きたいことを分かってる場合は(著者と同じく)おかしさを感じにくいからな そういう脳内変換は2chやネットの文章あさるには必須の技能でもあるし
725 名前:デフォルトの名無しさん [2012/03/10(土) 17:24:55.22 ] elispの置いてあるディレクトリを指定することで、ロードするときにLispファイルの ディレクトリ名を指定する必要がなくなります。 ロードディレクトリの指定は必須ではありませんが、 以降はロードディレクトリを指定した前提でロードする方法を解説します。 どう?
726 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 17:39:27.49 ] >>725 その文章の方がいいことを説明する前に、>>719 の方が圧倒的に面白い。
727 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 18:55:53.69 ] 「るびきちは文章が下手で読むに耐えない」 2ちゃんでは珍しくはっきりした結論がでたな 「理科系の作文技術」でも読んで寝るわ
728 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 19:59:39.57 ] ちょっと前まではこの手の話題になると ねたみ酷いって書き込みが入ったものだが
729 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 21:03:33.05 ] その時もあんな酷い文例貼られてた?
730 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:03:22.91 ] >解説するのは誰か、ディレクトリを指定するのは誰か 解説は本の役目で指定するのは自分、これ以外どう解釈するんだ?
731 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:22:48.16 ] > ロードする方法を私が解説する前に、elispの置いてあるディレクトリを > あなたは指定しなければなりません。それをあなたが指定することで、ロードするときに > Lispファイルのディレクトリ名をあなたが指定する必要がなくなります。 はっきりさせるとむしろおかしくね?w
732 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:24:37.67 ] >>730 本人乙。そう解釈せざるをえないのだが、 | (本が)ロードする方法を解説する前に、(あなたは)elispの置いてある | ディレクトリを指定しなければなりません。 一つの文で主語が切り替わるからイラつく。
733 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:25:21.44 ] >>730 複文かつねじれた文ってやつだよ 大卒ならみんな知ってる
734 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:30:04.29 ] >大卒ならみんな知ってる あほすぎ。なんか Emacs スレみたいな感じになってきたね。 あっちスレの誰かがやってきたのかな?
735 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:43:07.93 ] >>734 まあそうだね。>>733 は引っこめるよ。すまなかった
736 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:51:18.59 ] 大卒じゃなくても…とか大卒でも…とかマジレスしようと思ったけど もしかしてその著者が大卒じゃないとかそういう流れでのレス?
737 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 23:32:52.39 ] るびきちは一応大卒だったと思うが >【著者紹介】 るびきち >早稲田大学大学院理工学研究科修士課程修了。
738 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 23:58:34.13 ] なんか臭い。
739 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:24:24.11 ] じゃあべつにジョークでもなかったか 素直に735の意に従うべきだったな
740 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:51:16.12 ] 何かを作ったことが無い人は「これくらいなら自分でも本気出せば作れる」と思ってる
741 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:54:32.63 ] この程度なら、と思わせる文章の酷さ。
742 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:59:10.07 ] >>740 あるあるすぎて困るけど作品の批評とはまた別の話
743 名前:デフォルトの名無しさん [2012/03/17(土) 14:27:29.00 ] 質問です。2つのOCRした文章に、大きな違いが無いことを確認するために *ediff control panel*で (defun my-ediff-make-fine-diffs-all () (interactive) (let ((i 0)) (while (< i ediff-number-of-differences ) (ediff-make-fine-diffs i) (setq i (1+ i)) ))) として overlay で違いを強調するところまではやったのですが、 overlayのままでは、enriched-mode で保存も出来ないので、 overlay を text-property に変換して enriched-mode で保存できたら いいなと思ってるんですが、どうすればいいでしょうか。 文章が長いのとOCRのノイズが多いので、手ではやりたくありません。 よろしくお願いします。
744 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:48:20.69 ] next-overlay-changeとかでバッファの先頭からループして テキストプロパティに変換して削除して回るだけっぽい
745 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:39:46.40 ] >>744 www.gnu.org/software/emacs/manual/html_node/elisp/Finding-Overlays.html の find-overlays-specifying を見てたんですが、 (overlay-get overlay 'face) とかでどんな overlay かは返ってきますね。 するとこれをスタックに積んで始まりと終わりが分かったら そこを変換しろと言う訳ですね。ちょっとやってみます。 また分からなかったら質問します。ありがとうございます。
746 名前:デフォルトの名無しさん [2012/03/21(水) 23:49:54.13 ] deを含まないabcを探索したいのですが、以下でうまくいきません。 もしかして、emacs lispで「?!」は使えないのでしょうか? (re-search-forward ”abc(?!de)” nil t)
747 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 00:16:43.92 ] Infoぐらい読もう。 (info "(elisp)Syntax of Regexps")
748 名前:746 mailto:sage [2012/03/22(木) 01:07:53.55 ] >>747 special charactersに「!」が含まれていないので、 使えないという理解でいいんですよね? うーん、書くのが面倒くさくなるなあ。
749 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 02:16:32.52 ] >>746 バックスラッシュが括弧に必要
750 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 08:31:18.61 ] >>749 拡張正規表現の話だぞ。
751 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 13:49:33.36 ] >>750 すまん。Emacsに先読みが無いことに今気がついた。 普通は後続の正規表現を指定するか、単語境界いれるからあんまり使わないんだよね
752 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 16:17:30.37 ] elispは拡張正規表現をサポートしていない。 代替するとこんな感じか?わっかりにっきーな (re-search-forward "abc[^d]\\|abcd[^e]\\|abc$\\|abcd$")
753 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 21:46:10.19 ] >>752 「拡張正規表現」の定義によりますよ。
754 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:06:24.54 ] 言いたいことあるなら中身まで言えば良いのに
755 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:12:46.02 ] >>750 emacsの正規表現でグループ化するには(をエスケープして\(としてやらないといけない しかし単に"\("と書いてはいけない。 "\("が文字列として評価され(になり、その(が正規表現に渡されてとして評価される 正規表現に\(を渡したい時は文字列"\\("としないといけない
756 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:15:18.09 ] >>755 エスケープはわかったからさ。>>746 の > deを含まないabcを探索したいのですが これをemacsの正規表現で書いてくれや。
757 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:36:29.29 ] サーセン
758 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 13:24:07.87 ] >>756 >>753
759 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 16:20:20.63 ] ? emacsの正規表現って定義あるよね?
760 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 23:21:27.61 ] Perl/Ruby/Python/TclとかにあるNegative lookahead (?!re)はemacs lispには無いはず。 emacs24とかは知らんが。 abc(?!de)は、"abcxxxx" の最初の "abc" とマッチするんだよね。 >>752 のは "abcx"とマッチすることになるから微妙に違ってくる。 emacs lispでは、ひとつの正規表現だけでは、これと同じことはできないんじゃないの?
761 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:31:35.63 ] vim なら abc\(de\)\@! でできる。 Emacs の正規表現の貧弱さにはいつもイライラする。
762 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 05:17:04.56 ] 鬼車導入と新たな正規表現リテラルの導入かねやっぱり
763 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 10:03:06.08 ] 今更エンジン変更とか新しくPEG導入するよかコストかかりそう
764 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 13:45:33.85 ] 正規表現をPCREに変えろという話が本家で出ては消え、出ては消え・・・ 本気で変えたいんならレキシカルスコープ変数やった人みたいに、 専用ブランチ作ってマージして、互換性の問題などを検証してみんなを納得させないといけない。 PEGはもういくつか実装あるような希ガス
765 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 15:24:09.42 ] ELisp の場合、正規表現を特別扱いするような文法はないから、単に新しい関数群を導入すれば互換性は壊さずに済むよ。 pcre-search-forward や pcre-match-string みたいな。
766 名前:デフォルトの名無しさん [2012/03/24(土) 19:29:57.02 ] 以下の設定で、open -gとしてバックグランドで開きたいのですが、どのように書けば"-g"オプションを渡せますか? (setq browse-url-generic-program "/usr/bin/open")
767 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 19:39:48.53 ] browse-url-generic-args ってそれ指定するための変数じゃねーの?しらんけど
768 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 20:04:29.09 ] >>767 (setq browse-url-generic-args (list "-g"))) でうまく行きました。ありがとうございます。