1 名前:おっす [03/09/18 19:29] なんとなくEmacs 触り始めて、なんとなくelispにも手を出して しまったアナタ。 なんとなく書いてしまったコードをココに書き込んで叩かれましょう。 タタカレテツヨクナレ。 年季の入った玄人衆は、もしアドバイスできたらお願いします。 いや、叩きついでにでも。 とりあえず入門書は ttp://www.netfort.gr.jp/~kiyoka/emacs_setq/emacs_setq.html ttp://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp.html リファレンスマニュアルは(ちと古い) ttp://www.fan.gr.jp/~ring/doc/elisp-manual/elisp.html とか、新しいのは(でも英語) ttp://www.delorie.com/gnu/docs/elisp-manual-21/elisp.html ではひとつ、コード中心の熱いバトルをよろぴく。
141 名前:名無しさん@お腹いっぱい。 [03/12/26 16:20] 一つの関数でλを定義する数は何個ぐらい許されるんでしょうか?
142 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/26 17:03] なにがしたいのか分からんが、とりあえず作ってみたら? もっと意図を明確にしたうえで、ム板のスレで質問するのがいいと思うが。
143 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/26 22:02] (defun newschangelog (start end) "ChangeLog中の不必要な部分を削除" (interactive "r") (save-excursion (save-restriction (narrow-to-region start end) (goto-char start) (replace-regexp "^[ \t]*.*STRONG.*" "") (goto-char start) (replace-regexp "^ *<A HREF.*" "") (goto-char start) (replace-regexp "</A></DT>" "") (goto-char start) (delete-matching-lines "^$") (goto-char start) (replace-regexp "^[ \t]*" "\t") ))) * news/index.html: 記事追加 ★ PTCジャパン、Linux対応Pro/EをLinux World Expoに参考出品</A></DT> <DT><STRONG>日経BizTech</STRONG> <A HREF="biztech.nikkeibp.co.jp/wcs/show/leaf/CID/onair/biztech/comp/247927 "> 日本SGI、Linux向けのシステム構築支援サービス</A></DT> <DT><STRONG>c|net</STRONG> <A HREF="japan.cnet.com/svc/rss?id=1261.47623.54525 "> 日本国内のLinuxサーバ市場:ビジネス利用には課題が多い</A></DT> ☆ 上記★から☆までがリージョンに指定されている状態だとします。このとき、 カーソルが★にあるのか☆にあるのかで、M-x newschangelog の結果が異なり ます。
144 名前:143の続き mailto:sage [03/12/26 22:03] 具体的には、カーソルが☆にあると PTCジャパン、Linux対応Pro/EをLinux World Expoに参考出品 <DT><STRONG>日経BizTech</STRONG> 日本SGI、Linux向けのシステム構築支援サービス <DT><STRONG>c|net</STRONG> 日本国内のLinuxサーバ市場:ビジネス利用には課題が多い となり、カーソルが★にあると PTCジャパン、Linux対応Pro/EをLinux World Expoに参考出品 日本SGI、Linux向けのシステム構築支援サービス 日本国内のLinuxサーバ市場:ビジネス利用には課題が多い となります。 希望する結果は、カーソルが★☆のどちらにあっても PTCジャパン、Linux対応Pro/EをLinux World Expoに参考出品 日本SGI、Linux向けのシステム構築支援サービス 日本国内のLinuxサーバ市場:ビジネス利用には課題が多い のようになることです。添削おねがいします。
145 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/26 23:41] なんか例示されてるのと違い、空行が入ってしまうなーと思ったら、 transient-mark-mode かどうかで挙動が違うな。 で、offにして試してみたけど、どちらも okっぽかったけれど。
146 名前:143 mailto:sage [03/12/27 00:21] 検証ありがとうございます。おっしゃるとおり、手元の Emacs 20.7.2 を \emacs -qで起動すると、★☆どちらにカーソルがあっても希望の結果になり ました(transient-mark-mode t/nil のどちらも)。 ところが、XEmacs 21.1 を \xemacs -q で起動させて確認したところ、 transient-mark-mode t/nil どちらの場合も 144 に書いた結果になるのです。 常用しているのは XEmacs なので、それで希望の結果が出て欲しいのです。 皆様のアドバイスをいただきたく思います。よろしくお願いします。
147 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/27 05:08] replace-regexp を (while (re-search-forward REGEXP nil t) (replace-match TO-STRING nil nil)) にすれば直るはず。 特別な理由がない限り lisp program 中で replace-regexp は使わないほうが いいです。 perform-replace を参照。
148 名前:143 mailto:sage [03/12/27 22:46] 147氏のおっしゃるように修正したところ、XEmacs, Emacs の両者で 希望の動作をしてくれるようになりました。ありがとうございます。
149 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/04 14:13] >>1 のelispリファレンス-ja ttp://www.fan.gr.jp/~ring/doc/elisp-manual/elisp.html は 27章 ウィンドウ がまるごと抜けてるからちょっと不便ですた。 ちょっと探したら、 www.i.kyushu-u.ac.jp/~s-fusa/doc/elisp-manual-20-2.5-jp/elisp-ja.html を発見。こっちはちゃんと27章があるじょ。 スタイルシートでカラフルで見やすいなり。 にしても、emacs21版のelispリファ-ja は まだどこにもないんでしょか。
150 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/04 14:43] 149が訳すことにケテーイしますた。
151 名前:名無しさん@お腹いっぱい。 [04/01/04 16:33] がんがれー
152 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/04 17:13] www.gnu.org/software/emacs/elisp-manual/html_chapter/elisp_51.html#SEC729 これだけ訳せばいいんだろうか?
153 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/05 19:56] >>152 駄目. www.i.kyushu-u.ac.jp/~s-fusa/doc/elisp-manual-20-2.5-jp/elisp-ja_1.html#SEC4 にあるように,日本語は改変が認められていません. 故に公開したければ,全文を訳し直す必要がある.
154 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/05 21:01] その GPL 和訳の由来はここ。 www.sra.co.jp/public/doc/gnu/gpl-2j.txt これにも同じく > ・和文文書の本文を改変しないこと。 とある。つまり、禁止してるのは「GPL の和文本文」の改変であって、 Emacs Lisp Reference Manual の和文ではない。 そもそも、元の文書が GPL なのだから改変禁止は不可能。
155 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/05 23:46] 恐ろしいほどの部分引用だな
156 名前:名無しさん@お腹いっぱい。 mailto:asage [04/01/23 04:41] asm-mode で新規作成/既存ファイル開く、でファイル先頭に;(コメント文字) が 自動的に挿入されてしまうんだけど、これを抑制する方法ないでつか?
157 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/23 09:11] それだけでは、うちではそんなことはないとしか言いようがないよ。 それは本当にasm-modeが入れているものなのかな?
158 名前:名無しさん@お腹いっぱい。 mailto:156 [04/01/23 11:26] -q つけて起動したら再現しませんでした…出直してくるぽ。 新規作成したバッファの状態を監視しつつ edebug でステップ実行したいんですけど、 バッファが見当たらない… asm-mode が 呼ばれたときはバッファが存在してるはずでつよね?
159 名前:156 mailto:sage [04/01/23 11:29] まちがえて age ちゃった。 ごめんでつ。>>158 は >>156 です。
160 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:00] 最近の elisp では when とか unless とか出て来るんですけど、 わたしは while と if と cond くらいしか使いません。 when, unless の利点は何ですか?
161 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:01] >>160 progn 使わなくていい
162 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:29] whenとあったとき、ifと違い条件の成立しなかった時の処理はないのだと 一目で分かる。
163 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:38] 欠点はいらんのか
164 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:45] 別に ifと置換えとかじゃないし、単純すぎる構文だから欠点もなにも……。
165 名前:160 mailto:sage [04/02/02 02:55] ってことは別に無理して使わなくてもいいってことか。 マクロってよくわかんないけど subr.el 見たら、if に置き換えてるだけみたいね。
166 名前:名無しさん@お腹いっぱい。 [04/02/06 02:12] navi2chなんかで、エンター押したらその行に関係する動作をする機能を作るには 何を使えばいいのでしょうか。 key map を使うのかと思ってnavi2chのソースをみたのですが、 define-key map [return] という行は見つかりませんでした。
167 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 03:23] そのレベルの質問なら、navi2chスレのほうが適切と思うが。
168 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 04:15] (define-key map "\r" 'navi2ch-article-select-current-link)
169 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 04:45] 今回の場合、describe-key で returnに対応するコマンドを調べて、 それを元に grepすれば >>168 が見つかりますな。
170 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 11:48] C-h w RET
171 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 11:49] w じゃなくて k だ
172 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 12:08] ある関数内で auto-compression-mode を有効に束縛したいんですが (let ((auto-compression-mode t)) (insert-file "foo.gz")) じゃ駄目なんですね。 (let ((current auto-compression-mode)) (auto-compression-mode t) (insert-file "foo.gz") (auto-compression-mode current)) こうすべきもんなんでしょうか。なんかもっとスマートな方法ありますか?
173 名前:166 mailto:sage [04/02/06 12:15] >>167-171 みなさんありがとうございました。 勉強になりました。 [return] ではなくて"\r"で定義してあるんですね。
174 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 12:21] >>172 > じゃ駄目なんですね。 変数じゃないならだめだよ。
175 名前:172 mailto:sage [04/02/06 12:36] >>174 いちお変数でもあるんですけどね、って今見てみたら docstring に Setting this variable directly does not take effect; と書いてあった…失礼しますた。やっぱあんな方法でやるしかないのかなあ。
176 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 13:23] with-auto-compression-mode
177 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 18:24] >>176 おーありがとうです。こんなのがあったのか。感謝。
178 名前:名無しさん@お腹いっぱい。 [04/02/06 22:10] emacs21のtool-bar にあるプリンタアイコンはprint-bufferですが、 これを.emacsでpostscript-print-bufferに変えたいんですが、どうやれば 良いすかね?
179 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/07 00:26] (setq tool-bar-map (delq (assq 'print-buffer tool-bar-map) tool-bar-map)) (tool-bar-add-item-from-menu 'ps-print-buffer "print") でどうでしょ
180 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/09 16:51] 空のファイルを作成したいのですがどうやればいいんでしょうか? 動作としては↓のような感じです。 % touch hoge (hogeというファイルは存在していないとして)
181 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/09 17:27] (write-region (point-min) (point-min) "hoge" t)
182 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/09 20:37] >>181 ありがとうございました。
183 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/20 18:29] だれか、mmm で php-mode の indent が効かなくなるの直してくれ。
184 名前:名無しさん@お腹いっぱい。 mailto:sage [04/03/24 08:35] mmm と php-mode てなんか相性わるいよね。 漏れは別の不具合のせいで、結局php-mode 単体でつかってまふ。
185 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/01 12:53] '(1 2) '(3 4) => (4 6) みたいにリストの各要素を足してくれるような関数ってありませんでしたっけ?
186 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/01 13:16] (mapcar* '+ '(1 2) '(3 4)) clだけど。
187 名前:185 mailto:sage [04/05/01 13:29] >>186 あれこれ探してみてたんですが cl にあったのか、どうもですた。
188 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/10 20:39] arg1 が non-nil なら a-list に arg2 を append、 arg1 が nil なら b-list に arg2 を append、って処理をやりたいんですが (defun my-test (arg1 arg2) (if arg1 (setq a-list (append arg2 a-list)) (setq b-list (append arg2 b-list)))) これじゃちょっと不恰好な気がします。スマートに実装する方法ありませんか ね。
189 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/11 01:40] (let ((sym (if arg1 'a-list 'b-list))) (set sym (append arg2 (symbol-value sym))))
190 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/11 18:30] >>189 set ってこんな時に使えるのか。サンクスコでした。
191 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 08:04] マ板、Emacs Lispスレから流れてきました。 ○×ゲームを作っていくという話題。 とりあえず、入力はこんな感じで。 (read-from-minibuffer " │○│ ―┼―┼― │×│ ―┼―┼― │ │ コンマで区切って2つの数字を入力してください。(例 0,0)")
192 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 13:06] 何でminibuffer使う? 一瞬 gomoku.el の部品が使えないかなと思ったけど 自分で書いた方がはやそう。
193 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 15:56] ○×か。最初から敷居が高いなぁ。 入力はコンマ区切りよりリストとして入力させる方が良いハックじゃないかな? コンマはパースしなくちゃいけないし。
194 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 16:10] 何も考えずに、ここまでやってみた。ボードと終了判定があるだけ。 あとは、エラーチェックの徹底と思考ルーチンかな。 長いので2回に分けます。 (defun ox-index (x y) (+ (* y 3) x)) (defun ox-line (vector y) (format "%c|%c|%c" (aref vector (ox-index 0 y)) (aref vector (ox-index 1 y)) (aref vector (ox-index 2 y)))) (defun ox-board (vector) (format "%s\n-+-+-\n%s\n-+-+-\n%s\n" (ox-line vector 0) (ox-line vector 1) (ox-line vector 2))) (defun ox-read (vector o-or-x) (1- (string-to-int (read-from-minibuffer (format "%s (%cの番です) " (ox-board board) o-or-x)))))
195 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 16:12] しょの2 (defun ox-game-over-p (vector) (catch 'loop (dolist (indexes '((0 1 2) (2 5 8) (7 6 8) (0 3 6) (0 4 8) (1 4 7) (2 4 6) (3 4 5))) (let ((marks (mapcar #'(lambda (i) (aref vector i)) indexes))) (when (or (null (remove ?O marks)) (null (remove ?X marks))) (message (format "%s (%cの勝ちです。)" (ox-board board) (car marks))) (throw 'loop t))))))
196 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 16:13] あとminibufferよりも新しく編集バッファを作成してエディタ内のテキストを 操作する方が良いと思う。二次元の平面を扱うなら。 例えば以下のような感じ。 (progn (get-buffer-create "hoge") (switch-to-buffer "hoge") (erase-buffer) (insert "○|×|○ \n") (insert "×|○|○ \n") (insert "×|○|× \n"))
197 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 16:13] しょの3 (defun ox () (interactive) (let ((board (vconcat '(?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9))) (o-or-x ?O) i mark) (while (not (ox-game-over-p board)) (setq i (ox-read board o-or-x)) (setq mark (aref board i)) (if (member mark '(?O ?X)) (progn (message (format "%s (そこには置けません)" (ox-board board))) (sit-for 1)) (aset board i o-or-x) (setq o-or-x (if (eql o-or-x ?O) ?X ?O))))))
198 名前:名無しさん@お腹いっぱい。 [04/05/12 16:20] Emacsって何?
199 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 16:22] >>192 > 何でminibuffer使う? > 一瞬 gomoku.el の部品が使えないかなと思ったけど > 自分で書いた方がはやそう。 その場のノリですが、むりやり理由をつければゲーム後に画面の後かたずけとかが自動的に行われるからです。 >>193 >入力はコンマ区切りよりリストとして入力させる方が良いハックじゃないかな? >コンマはパースしなくちゃいけないし。 置ける場所に番号を書いておいて、それを入力してもらう方法をとってみました。 思考ルーチンも総あたりすればいいだけですね。 ox-game-over-pではthrowでdolistを早抜けしているんですけど、elisp的な 定石はこれでいいのでしょうか。
200 名前:鬱­猫­2030 ◆utuPOcVnl. mailto:utucat@yahoo.co.jp [04/05/12 18:14] ここで>>1 を読んで修業すればnavi2chみたいの書けますか?
201 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 19:22] 書けるよ
202 名前:鬱­猫­2030 ◆utuPOcVnl. mailto:utucat@yahoo.co.jp [04/05/12 21:20] ネット関係のライブラリが標準で用意されているのですか? P2P関係のものを何か作りたいのですがtcp/ip層までいじれますか?
203 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/12 21:43] リリースされてる版だと、Emacs Lisp からできるのは TCP の connect(2) だけ。 accept(2) へのインターフェイスは 用意されてないから P2P やりたいなら 下請けの外部プログラムが必要。
204 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/13 00:53] M-x namazu とする代わりに F2 キーでカーソルのある単語を検索できればと思い, namazu.el を読んだ上で以下のように設定しました しかしこの設定で F2 キーを叩いても, 別のバッファが開いて「32 件検索しました」 という メッセージが出るところまで行くのですが 検索結果がでません どこを直せばよいのでしょうか (global-set-key [(f2)] (lambda () (interactive) (namazu namazu-search-num namazu-default-dir (current-word))) )
205 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/13 04:54] namazu の最初の引数は PAGE-NUM みたいなので普通は 0 でしょう。
206 名前:204 mailto:sage [04/05/14 00:09] >>205 コメントありがとうございます 0 を入れてみたのですが改善しませんでした 出力結果は以下のようにヘッダとフッタだけ出てるようで中身が出ません M-x namazu でインタラクティブに実行するのは問題ないのですが。。。 検索結果 参考ヒット数: [ BufferedReader: 52 ] 検索式にマッチする 52 個の文書が見つかりました。 現在のリスト: 1 - 0 ペイジ: [1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20]
207 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 00:35] namazu-search-num が 0 になってない? (namazu namazu-search-num namazu-default-dir (current-word)) で namazu-search-num を 0 にするんじゃなくて、 (namazu 0 namazu-default-dir (current-word)) にしたら? ってこと。
208 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 14:01] 読書メモの為に下みたいなのを挿入したいのですけども。 Date:2004-01-26 Page: Memo: で、ムチャクソ頑張って下みたいなのを書きました。 (defun bookz () "Retune the current time as a string in Date from." (format-time-string "Date:%04Y-%02m-%02d\nPage:\nMemo:") ) (defun insert-bookz nil "Insert bookz." (interactive) (insert (bookz)) ) (define-key global-map "\C-c\C-d" 'insert-bookz) なんかもっと綺麗に書く方法とかありますか?
209 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 15:39] >>208 > なんかもっと綺麗に書く方法とかありますか? ispellを使う、とか
210 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 16:34] しかしそれでもfromを見つけられない罠
211 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 17:04] queequegも利用してみるとか? 試したことないけど。
212 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/14 18:41] そのまま翻訳にかけてみるのも手かもな
213 名前:204,206 [04/05/19 22:32] >>207 コメントありがとうございます namazu-search-num が 0 になってない? おかげさまで以下のようにしてうまく行きました (setq namazu-search-num 20) ... (namazu 0 namazu-default-dir (current-word)) てっきりnamazu-search-num と namazu の第一引数は同じにするものだと思いこんでいました ありがとうございました
214 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/26 15:39] (defun display-binaried-file (file) (interactive "fFilename: ") (with-output-to-temp-buffer "Binary" (with-temp-buffer (let ((addr 0) s) (insert-file-literally file) (goto-char (point-min)) (while (re-search-forward "\\=\\(?:.\\|\n\\)\\{1,8\\}" nil t) (princ (format "%08X:" addr)) (setq s (match-string 0) addr (+ 8 addr)) (mapc (lambda (c) (princ " ") (dotimes (i 8) (princ (if (zerop (logand 128 c)) "0" "1")) (setq c (lsh c 1)))) s) (princ (format "%s %s\n" (make-string (* 9 (- 8 (length s))) ?\040) (mapconcat (lambda (c) (if (and (<= 32 c) (< c 127)) (char-to-string c) ".")) s nil))))))))
215 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/26 15:49] >>214 あんがとね。 いやー、あんた最高だよ。
216 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/28 20:45] >>214 イイ!! > (mapc (lambda (c) > (princ " ") > (dotimes (i 8) > (princ (if (zerop (logand 128 c)) "0" "1")) > (setq c (lsh c 1)))) > s) でもここはdotimesよりそのまんま (princ (if (zerop (logand 128 c)) "0" "1")) (setq c (lsh c 1)) (princ (if (zerop (logand 128 c)) "0" "1")) (setq c (lsh c 1)) .... のように羅列した方が少々早くなんない?(コードが汚くなるのは認めるけど) 1 character ずつ dotimes やってたら大きなファイルの時に かなり遅れるかもしれんし。
217 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/28 21:27] 速度命!ならビットパターンを表す文字列をキャッシュしといた方が簡単確実。
218 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/28 23:47] >>216 速度を考えるなら、大量のリストや文字列を作らないようにすることも重要と 考えている。その点で 214 は文字列に関してちょっとイージー、というか所 詮ワンショットの関数。バッファ終端の判定を楽にしたいという理由だけで8 バイトずつ文字列に突っ込んでいる。 > (princ (if (zerop (logand 128 c)) "0" "1")) > (setq c (lsh c 1)) > (princ (if (zerop (logand 128 c)) "0" "1")) > (setq c (lsh c 1)) .... せめて、 (princ (if (zerop (logand 128 c)) "0" "1")) (princ (if (zerop (logand 64 c)) "0" "1")) (princ (if (zerop (logand 32 c)) "0" "1")) ... だな。 (princ (mapconcat (lambda (mask) (if (zerop (logand mask c)) "0" "1")) '(128 64 32 16 8 4 2 1) nil)) はありだった。 insert-file-literally は insert-file-contents-literally じゃなきゃだめ。
219 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 02:41] (do ((x 128 (rsh x 1))) ((<= x 0)) (princ (if (zerop (logand x c)) "0" "1")))
220 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 03:06] たった 256 個だから (defconst byte-to-bit-string (let ((v (make-vector 256 nil))) (dotimes (i 256) ...))) してあらかじめ作っとけばいいじゃん。
221 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 11:45] (defconst byte-to-bit-string (let ((a '("0" "1")) (f (lambda (&rest x) (let ((x (reverse x)) (r '(""))) (while x (setq r (apply #'append (mapcar (lambda (x) (mapcar (lambda (y) (concat x y)) r)) (car x)))) (setq x (cdr x))) r)))) (funcall f a a a a a a a a)))
222 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 12:05] なんかビット絡みはついてけない(´・ω・`)ショボーン
223 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 14:07] >>219 rshって、remote shellで実行するのか? 昔から思ってたんだけど、logand/logiorってRMSのチョンボだな。 logicalじゃなくてarithmaticだろ。 またnatnumpってのもあるけど、0はnatunal numberじゃない。
224 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 14:13] >>223 > 0はnatunal numberじゃない。 定義による。 0を自然数に含めることもある。 ttp://www.ss.u-tokai.ac.jp/~itai/column/three.html
225 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 14:32] >>224 そうか。 じゃMITじゃビットAND/ORもlogicalって呼ぶのかもしれないな
226 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 14:39] >>223 aithmatic じゃなくて bit-and/or operatorか。
227 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 16:17] (defun write-binaried-file (filename) (interactive (list (read-file-name "Write file: " nil buffer-file-name nil buffer-file-name))) (let (i buf temp-buffer-show-hook) (with-output-to-temp-buffer " *outbuf*" (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (re-search-forward "^\\([0-F]+\\): +\\(?:\\(?:[01]\\{8\\}\\) \\)\\{8\\}" nil t) (goto-char (match-end 1)) (setq i 0) (while (< i 8) (re-search-forward "[01]+") (princ (char-to-string (string-to-number (match-string 0) 2))) (setq i (1+ i)))) (if (re-search-forward "^\\([0-F]+\\): +\\([01]\\{8\\}\\) ") (progn (goto-char (match-beginning 2)) (setq i 0) (while (and (< i 8) (re-search-forward "\\=\\([01]\\{8\\}\\) " nil t)) (princ (char-to-string (string-to-number (match-string 1) 2))) (setq i (1+ i))))) (setq buf standard-output)))) (set-buffer buf) (let ((coding-system-for-write 'no-conversion)) (write-region (point-min) (point-max) filename)) (kill-buffer buf)))
228 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 17:02] >>227 save-XX 2つはwith-output-to-temp-bufferの外の方がよかった。 エラーチェックなんてほとんどしてないので、上書きとかしない方がいいかも。
229 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 17:37] たいしたことではなくてすまんのだが、write-binaried-file はwrite-file-in-binaryの方がアメ人側からするとわかりやすいとおもた。
230 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 17:55] 今になって知ったんだが、hexl-modeは外部プログラムを使ってたんだな。 2進表示より、右側に全角文字を表示をして欲しいんだが、そういうことを考 えると、やっぱelispだ。
231 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/29 18:08] 全角文字
232 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/30 20:15] ----BEGIN BASE64----(binary-dump.el.gz) H4sICJnAuUAAC2JpbmFyeS1kdW1wLmVsAKVY227jNhB9tr/iwEBjqjUDy/fUcdwm zQIF+lT0cR8qS0wsrCx5KWWzBop+e4ek7rKcRM2LKR7OhTPDM2TW6zV2fujIE/de DsdrEYBzDtcN4EaeHz4jPsWJOOApkvD8+Bg4JzVrZKBl+mtS8sC/48/Hv+CW1enZ B/6ET7//8YgkQiyEGfthVUWfiW9OwF/3IuRudDj6gaA5Tzy90EKP3OFSOB7fnRIB 5lt9gAUiAWNSPNNEmAgZgpGTByfBQP7gDWhBvIcPblvqjyRIxn8C22BMWPTshB5s +AT1/lZ6HA8j0maByTl+2sCmkZrA7YpEUg1AthZyZqGx9p+NmtcGq+6/Sj8RfO/v fPJarSSPDxSBJJJKM2lVvmkdVxhp323Yc4sUa1Fs7WI4Lu+nLjPrIDPtIDPpIGN3 kBl/XAY3HWRWb8iY71Epby1JDqIPJRnLDs4uOsh0KCZ0KCZ0KCZ0KCZ0KCa8VUzv TnLKRLUMM1rmOkHQwjQYNslg2CgdIiTt/lukppeVPW11lLt7R6a8qfhrhg2F5p0W Rr+0bYbd3dGpod8rTObzKsuSjVtMJ0WIr60cuMP23ypghpo5tYrGXg7OF8Fj8RUs LJF/gNAP8tTtqWmA3WpHY5F8BW3N5gitnLvNNGXHjcKY4CCDgobBvN3EmUnneAxO GNKPoBCwg3N0VVAD57DzHBVcsHqn0s2l18uAfBNha4OoW9Sm3m250KHM9npm135W jX4WD0oMtj9bxrvz7qnUU6mk54EZLJGq97MfcQPGsUpVtbc7vZu0+P73lowe/wNO U5Zdquuq88ZvXZqDz+Gg5LwqigR78V0Z4t+ES4eKSkbL8STKZgZjezKdzRfL1c2v 9w+/PX4atOze8TwpYsqmOXamSuVSnT0mF6DDM6HTc1Xp8gSPqh5Y5+RmHeXG3eTs RUe5STc5dIwLOsYFOi6rd4gZmIrnPE2lLO6Hol7wZwpDl2ujzImXWgBzAHSd91PD ZIirVUcZPUvnQAbVlyfo7k5CxUVcF6Btmw2r22y/R1weHfX91XwbriCyb/DfqomW 9lmgSjfdhcsT4iicpOBf2pR0QncPOc/WKAbHej1qKi6cwhnUvohOLqLTi+jsIjq/ iC4uossCzUnnfAZFeCaDQ2YjzVqaO/UOkeOssY6x2ZiWuyPki1WOv7ZbFYO0ISeQ U+q7lBBQ9qTysJd18KXSp25J9Lyjj1ef7jU7AU8QJb64ifD6WYcp2de3KjWkw3+T Dy0rXduycpUNx5ZVdsEuL6S31WJWgSc1WPWiEjytwURjZXhWg1cVdF5Dq5YXNTQ3 nPLHOP3MUlQSzdJURO9COrefw/P5zAopxfL41lOef6t6043QvOt5+q6n+2fpvT7D 9h6D++JlPkBmasjOUwuuWypWWVw3/71AbBhTk5Xiuv8fdZ8WR30QAAA= ----END BASE64----
233 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/30 21:00] >>232 いやー、かなり早くなったね。
234 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/30 22:55] >>232 すごいすごい。 せっかくなので、アドレス部の表示をファイル位置にできたりしませんか? (insert-file-contentsでBEG ENDを指定した場合など)
235 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/30 23:34] ヽ(`Д´)ノ cclってナンダヨー
236 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/31 11:55] >>235 code convetion lang
237 名前:名無しさん@お腹いっぱい。 mailto:sage [04/05/31 15:49] 16bit,32bit,64bit,128bit単位の表示、および ビッグ・エンディアン、リトル・エンディアンの切り替え もできれば、言うこと無しだが・・・
238 名前:名無しさん@お腹いっぱい。 mailto:sage [04/06/03 17:13] (defun bdccl-write-8bit (reg terminator bit) (let ((x (+ bit 8)) (r (list `(write ,terminator)))) (while (< bit x) (setq r (cons `(if (,reg & ,(lsh 1 bit)) (write ?1) (write ?0)) r)) (setq bit (+ bit 1))) r)) (defun bdccl-write-hibit (reg terminator) (bdccl-write-8bit reg terminator 8)) (defun bdccl-write-lobit (reg terminator) (bdccl-write-8bit reg terminator 0))
239 名前:名無しさん@お腹いっぱい。 [04/06/09 23:51] すいません初歩的質問なんですが、リファレンスマニュアルを最終的にPDF化したいのですが、 ftp://ftp.ascii.co.jp/pub/GNU/elisp-manual-20/elisp-manual-20-2.5-jp.tgz これを展開して、README.jisを読んだんですが、elisp.dviの作成手順で GNU Emacs Lisp Reference Manual のソースツリーのファイルtexinfo.texが どこにあるのだか分かりません。どこにあるんでしょうか?
240 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/02 17:30] >>239 texinfo のソースツリーに入ってます。 ttp://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/doc/ ところで、bookshelf.jp にある私的日本語化プロジェクトは texinfo 形式のソースがあるのかな?
241 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/02 21:33] >>240 texinfo でやってますので,ソースはありますけど,公開はしてません.