Emacs Part 43
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2013/06/09(日) 14:05:32.09GNU Emacs - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/software/emacs/
EmacsWiki: サイトマップ
http://www.emacswiki.org/emacs/
Emacsのトラノマキ | 検索結果: | ありえるえりあ
http://dev.ariel-networks.com/wp/?s=Emacs%E3%81%AE%E3%83%88%E3%83%A9%E3%83%8E%E3%83%9E%E3%82%AD
前スレ
EmacsPart42
http://toro.2ch.net/test/read.cgi/unix/1356319580/
0508名無しさん@お腹いっぱい。
2013/09/27(金) 19:33:07.950509名無しさん@お腹いっぱい。
2013/09/27(金) 19:52:23.40501のエセ薩摩人です。
499氏がコードを貼り付けなかったら
おいどんと付き合ってください。
0510名無しさん@お腹いっぱい。
2013/09/27(金) 23:01:26.08>>505が言っているようにcondを使えばよろし
そういう形で分岐したいならこうかな
(defmacro cond-case (value &rest body)
(lexical-let* ((cand (gensym))
(result (gensym)))
`(loop for (cand result) in (quote ,body)
do (when (and (symbolp cand)
(or (equal (symbol-value cand) ,value)
(equal (symbol-value cand) t)))
(return result)))))
(defun case-test2 (value)
(cond-case value
(debian-x86-64 "1")
(ubuntu-x86-64 "2")
(g++ver "3")
(t "4")))
(message (case-test2 debian-x86-64))
(message (case-test2 (shell-command-to-string "g++ -v")))
(message (case-test2 "sklfj"))
0511名無しさん@お腹いっぱい。
2013/09/28(土) 07:24:23.7147歳男子です。
ありがとうございます。今後ともどうぞよろしくお願い致します。
0512名無しさん@お腹いっぱい。
2013/09/28(土) 11:46:59.29マクロのパワーを見せつけられました。
中2女子の私がこのような達人級のコードを書けるようになるには、何をすればよろしいのでしょうか?
まず服を脱ぐのは無しの方向で、お願いします。
0513名無しさん@お腹いっぱい。
2013/09/28(土) 12:18:52.460514名無しさん@お腹いっぱい。
2013/09/28(土) 12:27:59.850515504
2013/09/28(土) 13:39:46.00emacs lisp勉強します
0516名無しさん@お腹いっぱい。
2013/09/28(土) 15:22:38.81のヘルプのここを見ろというレスは付かないのかな?
0517名無しさん@お腹いっぱい。
2013/09/28(土) 15:38:34.81Emacs というより、まずはこんなのかな。
http://www.aoky.net/articles/paul_graham/int.htm
0518名無しさん@お腹いっぱい。
2013/09/28(土) 16:30:54.44エセ薩摩人です。
>まず服を脱ぐのは無しの方向で、お願いします。
では、お口でお願いし ... (/ω\)イヤン
ところで本題だが EmacsLisp に限ったことではないが
プログラミングの上達のコツは
a.自分が欲しい機能をリファレンスを読みながらでも作成してみる
b.他人が書いたコードを読む(初めは少々短めがお勧め)
あたりかな。
>>516
http://www.emacswiki.org/emacs/EmacsLisp%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9
0519名無しさん@お腹いっぱい。
2013/09/28(土) 19:28:33.770520499
2013/09/29(日) 01:20:21.88(interactive)
(save-excursion
(let ((beg (region-beginning))
(end (region-end)))
(end-of-line)
(insert "\nstatic const char data[] = {\n\t")
(mapc #'(lambda (x) (insert (format "0x%02x, " x)))
(encode-coding-region beg end 'utf-8 t))
(insert "0x00\n};"))))
0521名無しさん@お腹いっぱい。
2013/09/29(日) 03:13:57.14わーいありがとう!
姉も喜んでます
0523名無しさん@お腹いっぱい。
2013/09/29(日) 09:34:03.320524名無しさん@お腹いっぱい。
2013/09/29(日) 09:57:01.09簡潔に書き直せば、こんな感じになりそうだね。
(defun util-encode-region-utf8 (b e)
(interactive "r")
(save-excursion
(let ((s (concat (buffer-substring b e) "\0")))
(end-of-line)
(insert
"\nstatic const char data[] = {\n\t"
(mapconcat #'(lambda (x) (format "0x%02x" x))
(encode-coding-string s 'utf-8)
", ")
"\n};"))))
0526名無しさん@お腹いっぱい。
2013/09/29(日) 10:43:12.76おおきに
0527510
2013/09/29(日) 15:01:35.14>>510はおかしいところがいくつかあったので修正するよ ついでにもうちょっと汎用的にしてみた
(require 'cl)
;; http://www.gigamonkeys.com/book/macros-defining-your-own.html
(defmacro with-gensyms (names &rest body)
`(let ,(loop for n in names collect `(,n (gensym)))
,@body))
(defmacro cond-case (value &rest body)
(with-gensyms (cand result x)
`(loop for (cand result) in (quote ,body)
when (symbolp cand) for x = (symbol-value cand)
else for x = cand
when (member x `(,value t))
return result)))
(defun case-test2 (value)
(cond-case value
(123 "aaa")
("hoge" "bbb")
(debian-x86-64 "1")
(ubuntu-x86-64 "2")
(g++ver "3")
(t "4")))
(message (case-test2 123))
(message (case-test2 "hoge"))
(message (case-test2 debian-x86-64))
(message (case-test2 (shell-command-to-string "g++ -v")))
(message (case-test2 "sklfj"))
>>512 defmacroはon lispが、loopマクロはland of lispがわかりやすいよ emacs lispレファレンスだけだど慣れるまで時間がかかるかも
0528名無しさん@お腹いっぱい。
2013/09/29(日) 18:32:16.020529名無しさん@お腹いっぱい。
2013/09/30(月) 02:22:05.16Boost Spirit も似ている気がする。
言語仕様を上手く使って別言語の世界を作り出している。
Loop言語はマスターするとElispが非常に短くかけるし、
マクロなんでバイトコンパイルすれば速度処理もない。
0530名無しさん@お腹いっぱい。
2013/09/30(月) 07:14:53.590531名無しさん@お腹いっぱい。
2013/09/30(月) 08:05:41.61>Loop言語は
!!!
loop はDSLだと思えばよかったのですね。その発想はなかったです。
0532名無しさん@お腹いっぱい。
2013/09/30(月) 12:48:36.980533名無しさん@お腹いっぱい。
2013/09/30(月) 15:11:53.81クロは使わない方が得策だと思う。
0534名無しさん@お腹いっぱい。
2013/09/30(月) 15:30:40.240535名無しさん@お腹いっぱい。
2013/09/30(月) 16:21:25.84Editor MACroS なめんなよ。
0536名無しさん@お腹いっぱい。
2013/09/30(月) 17:01:41.300537名無しさん@お腹いっぱい。
2013/09/30(月) 17:06:46.61マクロ違い
0538名無しさん@お腹いっぱい。
2013/10/01(火) 08:43:04.22http://haleakala-avenue.style.coocan.jp/lealea/
0539名無しさん@お腹いっぱい。
2013/10/01(火) 08:47:34.26Common lispのloopマクロをelispで動くようにしたものなんだよね
Land of Lisp 10章のLoopマクロ周期表がおすすめ
0540名無しさん@お腹いっぱい。
2013/10/01(火) 09:52:35.10規格でも loop は定義しきれてないってさ
実際 sbcl で動く loop が clisp でコケたりする
0541名無しさん@お腹いっぱい。
2013/10/01(火) 14:32:07.83ここにあるox-texinfoを使って.org->.texiに、
さらにtexi2htmlで.texi->.htmlに変換したら
元の.orgで#+authorで設定していたその設定が失われてしまうようで
This document was generated by *PC-name\user-name* on October 1, 2013 using texi2html 1.82
となってしまいます
.org->.htmlであれば問題なくauthor情報が引き継がれているのですが、どうすれば引き継げるのでしょうか
orgファイルはこう書いています
#+TITLE: Org-mode test
#+AUTHOR: test-name
* hello
- world
0542名無しさん@お腹いっぱい。
2013/10/01(火) 17:04:44.91> This document was generated by *PC-name\user-name* on October 1, 2013 using texi2html 1.82
それで正しいのだと思うが
0543名無しさん@お腹いっぱい。
2013/10/01(火) 17:32:22.04こんなのがあったとは。
RMS信者の私はただいま絶賛感動中です。
0544名無しさん@お腹いっぱい。
2013/10/01(火) 22:48:31.45なんだかすごいことになっているような気もするが
君がやりたいことへの最短距離は cond を使うことだと思うぞ
0545名無しさん@お腹いっぱい。
2013/10/02(水) 00:38:41.210546名無しさん@お腹いっぱい。
2013/10/02(水) 07:08:14.10ttp://wisdom.sakura.ne.jp/programming/lisp/clisp11.html
ここの最後、
「記号を直接指定すると、記号が評価されてしまうということに注意しなけれ
ばなりません。そのため、リストに記号を指定するか、quote や ' によって明
示的に記号型の値そのものを与えなければならないのです。」
って本当ですか?誰か common lisp に詳しい人教えて。
0547名無しさん@お腹いっぱい。
2013/10/02(水) 08:22:39.45tはotherwiseにnilは空リストに解釈されてしまうから、
tやnilと直接比較したい場合には
クォートするかリストにいれる必要があるよって意味じゃないの?
tやnilじゃなければシンボルは評価されないと思うけどね
0548名無しさん@お腹いっぱい。
2013/10/02(水) 09:28:13.09Common Lisp loop でぐぐればいろいろある
0549名無しさん@お腹いっぱい。
2013/10/02(水) 12:47:25.54Emacs18 の頃から待ってるのに。ぷんぷん!
0550名無しさん@お腹いっぱい。
2013/10/02(水) 13:14:23.420551名無しさん@お腹いっぱい。
2013/10/02(水) 13:19:49.61必要なら自分で作るんだ。
Mule拡張もそうだった。
0552名無しさん@お腹いっぱい。
2013/10/02(水) 13:22:44.27テキストデータ自体は他と変わらないみたいな感じがいいのかね
0553名無しさん@お腹いっぱい。
2013/10/02(水) 15:43:25.510554名無しさん@お腹いっぱい。
2013/10/02(水) 21:04:50.16そうですか スレ汚し失礼しました
0555名無しさん@お腹いっぱい。
2013/10/02(水) 21:22:21.87関連するhookを確認するにはどこを見ればよいのでしょう?
0556名無しさん@お腹いっぱい。
2013/10/02(水) 21:30:44.58わからないうちはちょっと冗長だけどつねにcondを使っておけばいい
elispじゃcondがネィティブでcaseはcommon lisp互換マクロだし
0557名無しさん@お腹いっぱい。
2013/10/02(水) 21:43:06.70参考になるかわからんけどこのへんかね?
http://www.gnu.org/software/emacs/manual/html_node/elisp/Saving-Buffers.html
0558名無しさん@お腹いっぱい。
2013/10/02(水) 22:01:11.530559名無しさん@お腹いっぱい。
2013/10/02(水) 23:01:05.520560名無しさん@お腹いっぱい。
2013/10/02(水) 23:23:58.73チューリングマシンの悪口はやめて下さい。
0561名無しさん@お腹いっぱい。
2013/10/03(木) 06:13:05.57ないわ
ないないない
0562名無しさん@お腹いっぱい。
2013/10/03(木) 08:18:31.51と設定しているのですが,lookupの中だけテーマを変えるには
どうしたらよいでしょうか。
外字が黒文字なので見難くなってしまいます
0563名無しさん@お腹いっぱい。
2013/10/03(木) 08:21:08.560564名無しさん@お腹いっぱい。
2013/10/03(木) 09:06:40.73バッファ毎に変更なんてできるのかね?
theme切り替えるんじゃなくて、
lookupの外字のfaceをthemeに合わせてカスタマイズとかじゃダメなん?
0565名無しさん@お腹いっぱい。
2013/10/03(木) 10:05:26.66フレーム単位なら素直にできるけど。
hiwin ってパッケージあるけどあれはオーバーレイ使って無理やり変更してる。
0566名無しさん@お腹いっぱい。
2013/10/03(木) 11:08:31.34しばらく考えてしまったぞ
0567名無しさん@お腹いっぱい。
2013/10/03(木) 14:54:55.50リンクに飛ばないという致命的なバグにも関わらず
検索しても、日本語界隈だと全然ヒットしない
ttp://lists.gnu.org/archive/html/emacs-orgmode/2013-10/msg00105.html
要は、org.el の該当箇所に、「link」つー変数を and の直後に付け加えると直る
0568名無しさん@お腹いっぱい。
2013/10/03(木) 15:06:25.14このさいOmacsとして独立してほしい。
0569名無しさん@お腹いっぱい。
2013/10/03(木) 15:30:50.00それいいかも
俺が emacs 使い始めた動機も org-mode だったわけで
実際今は org 除くと emacs あんまり使ってない
かつてはカスタマイズに凝った時期もあったが
やってるうちに手段と目的が逆転して、気づくととんでもなく
時間が経過してたり、ってのがバカバカしくなった
0570名無しさん@お腹いっぱい。
2013/10/03(木) 18:10:51.81comment-colum を設定しても、コメント位置がずれるンゴ
リポジトリの先端でも直ってないっぽいし。
手前味噌で直したからいいけど。
0571名無しさん@お腹いっぱい。
2013/10/03(木) 18:11:39.65○ comment-column
0572名無しさん@お腹いっぱい。
2013/10/03(木) 18:20:28.78いい方法ないかな
0573名無しさん@お腹いっぱい。
2013/10/03(木) 18:23:20.290574名無しさん@お腹いっぱい。
2013/10/03(木) 18:46:42.96でも普通 M-x compile するとミニバッファに compile-command がでてリターンすると実行という流れなんだけど
(compile compile-command 4)
をキーバインドしてしまうと compile-command を
ミニバッファで編集するチャンスがなく実行されてしまうのでどうかなと思ってるんだけども
0575名無しさん@お腹いっぱい。
2013/10/03(木) 19:32:43.53コメントも参照
0576名無しさん@お腹いっぱい。
2013/10/03(木) 22:33:03.85(defun compile-with-prefix ()
(interactive)
(let ((current-prefix-arg '(4)))
(call-interactively 'compile)))
とりあえずこれをキーバインドすることにしました。
0577名無しさん@お腹いっぱい。
2013/10/03(木) 23:46:07.11(global-set-key (kbd "s-x") '(lambda () (interactive) (execute-extended-command '(4))))
これでもいいかも C-u M-x を汎用的に使えるし
0578名無しさん@お腹いっぱい。
2013/10/04(金) 08:51:53.074重ループで幅優先探索で迷路を解く例。
http://d.hatena.ne.jp/m2ym/20100115/1263550258
Loopなしで同じことをしようとするとどれくらい
面倒なことになるか…
0580名無しさん@お腹いっぱい。
2013/10/04(金) 20:32:38.06これはEmacs Lisp以外を「よくないLisp」と言ってるも同然で失礼。
だから生粋のLisperに嫌われるんだ。
0581名無しさん@お腹いっぱい。
2013/10/04(金) 20:48:30.220582名無しさん@お腹いっぱい。
2013/10/04(金) 20:49:03.84elisp
を「良くないLisp」と読み取れるんだ?
0583名無しさん@お腹いっぱい。
2013/10/04(金) 20:51:03.710584名無しさん@お腹いっぱい。
2013/10/04(金) 20:51:40.19elisp → いーLisp
それ以外の lisp → いーLisp じゃない → よくない Lisp
ってことかと・・・
0585名無しさん@お腹いっぱい。
2013/10/04(金) 21:23:34.940586名無しさん@お腹いっぱい。
2013/10/04(金) 21:35:47.660587名無しさん@お腹いっぱい。
2013/10/04(金) 21:52:21.23なるほど
elispの皆さんって面白くてステキ
0588名無しさん@お腹いっぱい。
2013/10/04(金) 21:53:02.750589名無しさん@お腹いっぱい。
2013/10/04(金) 21:59:04.810590名無しさん@お腹いっぱい。
2013/10/04(金) 22:30:21.79昔、vzにあったsameshotというのがおもしろかったのを思い出した。
0591名無しさん@お腹いっぱい。
2013/10/04(金) 23:42:36.99M-x gomoku
0592名無しさん@お腹いっぱい。
2013/10/05(土) 06:57:30.920593名無しさん@お腹いっぱい。
2013/10/05(土) 10:09:44.56M-x pong
0594名無しさん@お腹いっぱい。
2013/10/05(土) 10:10:24.03M-x tetris
0595名無しさん@お腹いっぱい。
2013/10/05(土) 14:55:30.19M-x hanoi
ってか、さめショット懐かしい
0596名無しさん@お腹いっぱい。
2013/10/05(土) 15:16:18.19どういうゲームなのそれは
0597名無しさん@お腹いっぱい。
2013/10/05(土) 15:25:18.760598名無しさん@お腹いっぱい。
2013/10/05(土) 22:48:41.760599名無しさん@お腹いっぱい。
2013/10/06(日) 16:49:15.160600名無しさん@お腹いっぱい。
2013/10/07(月) 01:10:22.94アップするよ。ちょっと待ってください。
0601名無しさん@お腹いっぱい。
2013/10/07(月) 01:44:56.06mifes、emacs と共に俺の人生を時間的に食い荒らした悪魔だ
そういや red++ さんはもう亡くなったのかな
0602名無しさん@お腹いっぱい。
2013/10/07(月) 18:45:54.88http://kapeli.com/dash
0603名無しさん@お腹いっぱい。
2013/10/07(月) 18:51:57.29いつまで待てばいいの
0604名無しさん@お腹いっぱい。
2013/10/07(月) 19:06:51.89emacs dash で検索するといくつかひっかかったよ
Mac つかったことないから内容は精査してない
0605名無しさん@お腹いっぱい。
2013/10/07(月) 22:13:45.83こんなのがあったとは。
買ってしまうかも…
0606名無しさん@お腹いっぱい。
2013/10/07(月) 22:25:04.80602が言っているのは直接Dashのドキュメント群ををEmacsのバッファで読むというやつかね?
w3mとsqliteを組み合わせて実現するのかな?
0607名無しさん@お腹いっぱい。
2013/10/07(月) 22:50:47.99>602が言っているのは直接Dashのドキュメント群ををEmacsのバッファで読むというやつかね?
macのフルスクリーンモードでemacsを使ってるから、dashのウィンドウにフォーカスが移るとめんどくさい。それが解消されればdashを買ってもいいんだけど
■ このスレッドは過去ログ倉庫に格納されています