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 ではひとつ、コード中心の熱いバトルをよろぴく。
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 でやってますので,ソースはありますけど,公開はしてません.
242 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/02 21:42] では公開していただけますか?
243 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/03 09:21] >>241 あ、texinfoのやつがあると僕もうれしい。支障なかったら公開きぼんぬです。
244 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/03 09:45] >> 242,243 支障ないので,そのうちに公開しておきます. 少しお待ちを
245 名前:名無しさん@お腹いっぱい。 [04/07/13 23:34] >>232 (defun bdccl-write-hibit (reg terminator) `((if (,reg & ,(lsh 1 15)) (write ?1) (write ?0)) (if (,reg & ,(lsh 1 14)) (write ?1) (write ?0)) (if (,reg & ,(lsh 1 13)) (write ?1) (write ?0)) ... (lsh 1 15) これを下のように定数にしないのは マクロ展開されるて、実行時には関係なくなるから? (defun bdccl-write-hibit (reg terminator) `((if (,reg & 32768) (write ?1) (write ?0)) (if (,reg & 16384)) (write ?1) (write ?0))
246 名前:名無しさん@お腹いっぱい。 [04/07/13 23:37] >>232 と同じような Hex dump ってあるのかな? そっちの方が僕は使うな。 binary にしてどんな時に便利か教えてくれ。
247 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/11 23:45] ほしゅ。
248 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/15 01:57] つか、ほしゅしなくても落ちないのでは?
249 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 11:11] 連番を作るのに、こんなのを作ってるんだけど、 うまく動かない。 どこが悪いのかな…。 (do ((i 1)) ((> i 10)) (insert (format "Sequence%d\n" i)) (setq i (1+ i)))
250 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 11:43] あなたは elisper ではありませんね?
251 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 14:16] 先生! このマンコ関数はどうでしょう? (defun manko(i) (cond ((> i 0) (insert (format "Sequence%d\n" i)) (manko (- i 1))) (t nil))) (manko 10)
252 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 23:36] number-sequence
253 名前:249 mailto:sage [04/09/08 11:31] >>251 ありがとう。 でも、こういわれてしまう…。 Debugger entered--Lisp error: (void-function manko) (manko 10) eval((manko 10)) eval-last-sexp-1(nil) eval-last-sexp(nil) * call-interactively(eval-last-sexp) recursive-edit() byte-code("堰ニ!秩ー∨ 秩ー¬!秩ッ⊃n?
254 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/09 21:01] (do ((i 1 (1+ i)) ((> i 10)) (insert (format "Sequence%d\n" i)))
255 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/09 22:02] ちゃんと書きなよ。 しかし do なんか使わなくても。
256 名前:249 mailto:sage [04/09/09 22:37] >>254 環境が悪いのでしょうか。 Debugger entered--Lisp error: (invalid-function (i 1 (1+ i))) ((i 1 (1+ i)) ((> i 10)) (insert (format "Sequence%d\n" i))) eval(((i 1 (1+ i)) ((> i 10)) (insert (format "Sequence%d\n" i)))) eval-last-sexp-1(nil) eval-last-sexp(nil) * call-interactively(eval-last-sexp)
257 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/09 23:43] >>249 そもそも「うまく動」いたらどうなるんだ? 期待してる結果が書いてない。
258 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 01:03] (require 'cl) (do ((i 1 (1+ i))) ((> i 10)) (insert (format "Sequence%d\n" i)))
259 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 09:17] なんか覚えにくい構文だな。 まだloopのほうが、という気がした。
260 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 10:12] eldocでミニバッファに出るから覚えなくても書ける。 でも普通はdotimesなんかを使うとは思うんだが。
261 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 11:14] エコーエリア
262 名前:249 mailto:sage [04/09/10 17:28:00] >>258 ありがとう!! (require 'cl) これが不足でした。 (do ((i 1 (1+ i))) ((> i 10)) (insert (format "Sequence%d\n" i))) (do ((i 1)) ((> i 10)) (insert (format "Sequence%d\n" i)) (setq i (1+ i))) どちらでも動きました。 しかし。 doなんてとか、loopのほうが、っていうなら、 サンプルを掲示してみてはどうでしょう。 言い合いをしているだけでは何にもならないじゃないですか。
263 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 17:48:24] 「してくれないでしょうか?」の間違いではなくて? 個人的には、何故doでやってみようとしたかに興味が少しある。
264 名前:260 mailto:sage [04/09/10 18:49:50] >>262 調べろよ、それくらい。 見て猿真似できるサンプルが出てこないと何も出来ない池沼なのかよ。 キーワードが出てくるだけで十分だろ。 # cl-macsにloopがあるとは知らんかった そもそも「言い合い」になるほど骨のある内容じゃなかったし。
265 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/10 19:05:04] 池沼というのは、マンコ関数でひっかかってる時点で明らか。>>253
266 名前:260 mailto:sage [04/09/10 19:15:10] 言われてみればその通りだった。orz
267 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/12 01:45:39] (let ((i 0)) (while (< i 10) ..... )) とかの方が分かりやすくて好きなんだけどな
268 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/12 04:07:53] viperで、vimの"*"コマンドを実装した。 (define-key viper-vi-global-user-map "*" 'viper-exec-word-search-nearest-cursor) (define-key viper-vi-global-user-map "#" '(lambda () (interactive) (viper-exec-word-search-nearest-cursor t))) (define-key viper-vi-global-user-map "g*" '(lambda () (interactive) (viper-exec-word-search-nearest-cursor nil t))) (define-key viper-vi-global-user-map "g#" '(lambda () (interactive) (viper-exec-word-search-nearest-cursor t t))) (defun viper-exec-word-search-nearest-cursor (&optional reverse unbound) "Emulate vim \"*\" command." (interactive) (let ((word (viper-surrounding-word 1 1))) (when (stringp word) (setq viper-s-string (if unbound word (concat "\\<" word "\\>"))) (setq viper-s-forward (not reverse)) (setq viper-search-history (cons viper-s-string viper-search-history)) (setq viper-intermediate-command 'viper-exec-word-search-nearest-cursor) (viper-search viper-s-string viper-s-forward 1))))
269 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/12 09:49:16] >>268 おーなかなかいいすね。使わせてもらいまっさ。 でも g + hogehoge は viper 流の (viper-buffer-search-enable) の方が好き :-) ;; しかし viper 異様に重いよなあ…。ボクのマシンがボロなだけ?(´・ω・`)
270 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/12 14:11:08] 再帰好きなelisperの人は max-lisp-eval-depth と max-specpdl-size に どのくらいの値を設定してるの?
271 名前:268 mailto:sage [04/09/18 10:06:39] www.vim.orgで公開されているscriptで定番のやつの実装。 ;;; alternate files quickly (defvar a-extension-map '(("c" . "h") ("cc" . "h") ("h" . ("c" "cc")) ("emacs" . "viper") ("viper" . "emacs")) "The corresponding associative list of extensions.") (defun alternate-files-quickly () "A few of quick commands to swtich between source files and header files quickly." (interactive) (if buffer-file-name (let ((ext (file-name-extension buffer-file-name)) (base (file-name-sans-extension (file-name-nondirectory buffer-file-name))) data a_ext a_file) (when (and ext base (< 0 (length ext))) (setq data (cdr (assoc ext a-extension-map))) (cond ((stringp data) (setq a_ext data) (when (< 0 (length a_ext)) (setq a_file (concat base "." a_ext)) (when (file-exists-p a_file) (find-file a_file)))) ((listp data) (catch 'break (while data (setq a_ext (car data)) (when (and (stringp a_ext) (< 0 (length a_ext))) (setq a_file (concat base "." a_ext)) (when (file-exists-p a_file) (find-file a_file) (throw 'break t))) (setq data (cdr data))))))))))
272 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/20 17:14:26] ;;; filecache の対象を load-path にすると、 ;;; .el 以外のファイルもついてきて面倒なので以外を消す ;;; 必要なのはあとで追加する (defun file-cache-not-el-list () (let (nelist) (dolist (list file-cache-alist) (catch 'quit (unless (string-match "^.*\\.el\\'" (car list)) (setq nelist (cons (car list) nelist)) (throw 'quit nil)))) nelist)) (file-cache-add-directory-list load-path) (file-cache-delete-file-list (file-cache-not-el-list)) (file-cache-add-file-list '("~/.emacs" "~/.skk" "~/.wl" "~/.folders" "~/.bashrc"))
273 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/20 17:58:29] cach - throw は何のため? (defun file-cache-not-el-list () (delq nil (mapcar (lambda (list) (unless (string-match "\\.el\\'" (car list)) (car list))) file-cache-alist)))
274 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/20 18:05:39] >>273 叩かれて強くなるためです 勉強になりました
275 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 22:51:00] 30 分ほど考えたり調べたりしましたが,わからなかったので質問させてください. (list (list '("A" . "1") '("B" . "2")) (list '("C" . "3")) (list '("D" . "4") '("E" . "5"))) を (list '("A" . "1") '("B" . "2") '("C" . "3") '("D" . "4") '("E" . "5")) のように展開(?)するにはどうしたら良いのでしょうか?
276 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:02:53] 何をどう調べたり考えたりしたのか書いた方がいいと思うよ。 これこれを試してみたとか。 ヒントとしては、 mapc + append
277 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:07:21] 宿題なのかなー?
278 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:09:05] 展開後(?)の表記のしかたが悪い。 それを評価した結果になってほしいのか、まさにそれが欲しいのか。
279 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:14:48] >>275 (apply #'append (list (list '("A" . "1") '("B" . "2")) (list '("C" . "3")) (list '("D" . "4") '("E" . "5"))))
280 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/24 23:16:21] >>275 pc5.2ch.net/test/read.cgi/unix/1083394705/405 これ書いたやつだろ。 >>276 mapcは違うと思うぞ。
281 名前:276 mailto:sage [04/10/24 23:17:46] >>280 applyが思い浮かばなかったのさ……
282 名前:275 mailto:sage [04/10/24 23:43:20] 素早いレスありがとうございます.うまくいきました. > 何をどう調べたり考えたりしたのか書いた方がいいと思うよ。 > これこれを試してみたとか。 GNU Emacs Lisp Reference Manual のリスト関連をあさっていました. > 宿題なのかなー? 趣味です. > 展開後(?)の表記のしかたが悪い。 > それを評価した結果になってほしいのか、まさにそれが欲しいのか。 おっしゃるとおりですね.勉強不足でした. >>279 > (apply #'append すみません,この「#'」はリファレンスマニュアルのどの辺をみれば良いのでしょうか? ポインタだけでも教えて頂けるとありがたいです. > pc5.2ch.net/test/read.cgi/unix/1083394705/405 > これ書いたやつだろ。 そうです.何か問題ありましたでしょうか?
283 名前:276 mailto:sage [04/10/24 23:59:29] >>282 #'はemacs lispではほとんど'と一緒。関数にのみ使うと思っておいて。 refrence manualだけじゃなくてemacs-lisp-intro は読んだ?
284 名前:275 mailto:sage [04/10/25 00:01:12] >> 283 まだ読んでません.どうも基礎がわかってないみたいなので,まずは そちらから読んでみます.お世話になりました.
285 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 12:28:51] (defun my-w3m-view-url-with-external-browser () "emacs-w3mから外部ブラウザを起動する" (interactive) (let ((url (or (w3m-anchor) (ffap-url-at-point) w3m-current-url))) (message "Browsing <%s>..." url) (start-process "external-browser" nil "C:/Program Files/Mozilla Firefox/firefox.exe" url))) FireFoxを閉じないと、↓こんなメッセージが出てEmacsも閉じられない・・・ Active processes exist; kill them and exit anyway? (y or n) どなたかアドバイスをお願いします。
286 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 12:45:52] >>285 unix なら PROGRAM に & を付ければ? って話なんだろうけど。 firefox.exe のオプションか別コマンドで「firefox に url を渡してする終 了する」ってなことができるんじゃないの?
287 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 13:27:30] process-kill-without-query じゃない?
288 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 14:01:40] ごもっとも orz
289 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 14:19:05] Emacs 終了時に Firefox も終了したいわけじゃないんだよね。 プロセスをバックグラウンドで動かしっぱなしにするには、 BUFFER 引数を 0 にして call-process を (call-process "C:/Program Files/Mozilla Firefox/firefox.exe" nil 0 nil url) こんな感じで呼び出してやればいい。
290 名前:289 mailto:sage [04/11/09 14:21:42] う、navi2ch のデフォルトフィルタにひっかかった。 >>289 は ( call-process "C:/Program Files/Mozilla Firefox/firefox.exe" nil 0 nil url)
291 名前:285 mailto:sage [04/11/09 14:57:44] レスありがとうございます。 >>286 firefoxのオプションを調べてみたんですが、適切なものが見つかりませんでした。 >>287 説明が足りなかったようで、すいません。 僕がやりたかったのは、emacsから起動したfirefoxは閉じずに emacsだけを終了するというものです。 process-kill-without-queryを使ったら、問い合わせなしにfirefoxも 終了されてしまったので、どうやら僕がやりたいこととは違ったようです。 >>290 おおっ、うまくいきました。 ちなみにコードは以下のように変更しました。 (defun my-w3m-view-url-with-external-browser () "emacs-w3mから外部ブラウザを起動する" (interactive) (let ((url (or (w3m-anchor) (ffap-url-at-point) w3m-current-url))) (message "Browsing <%s>..." url) ( call-process "C:/Program Files/Mozilla Firefox/firefox.exe" nil 0 nil url))) どうもありがとうございました。
292 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/09 23:32:45] >>290 start-process と call-process の第3引数を0にするのってそんな違いがあっ たのか。今までどっちにするか気分で決めてた…(´Д`)
293 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/13 13:00:32] 8進数を10進数に変換する関数とかあったりする? 自前でゴリゴリやるしかないスか? 逆は format でできるんだけど…。
294 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/13 13:08:06] >>293 (string-to-number (number-to-string 10) 8) => 8 (string-to-number (number-to-string 20) 8) => 16
295 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/13 14:43:54] >>294 がーん、string-to-number って基数を指定できるのか、知らなかった。 ありがとう。
296 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/21 21:51:33] (let ((y 1.2)) (while (>= y -1.2) (let ((x -2.0)) (while (<= x 1.0) (let ((zx x) (zy y) (v 126)) (while (and (< (+ (* zx zx) (* zy zy)) 4.0) (> v 32)) (let ((temp (+ (* 2 zx zy) y))) (setq zx (+ (* zx zx) (- (* zy zy)) x)) (setq zy temp)) (setq v (- v 1))) (insert v)) (setq x (+ x 0.04)))) (insert "\n") (setq y (- y 0.1))))
297 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/27 21:42:29] call-process を呼ぶ時って apply 使って呼んでるコードが多いんだけど、ど うしてなの? 引数をリストで渡せるから? とか思ったんだけどそうでない場合でも apply 使ってることあるしなあ。なぜざんしょ?
298 名前:名無しさん@お腹いっぱい。 mailto:sage [04/11/28 13:55:08] 元々は直接呼んでたのが、何らかの必要があって apply を使うようになり、 その後の変更で apply である必要が無くなったんじゃないの?
299 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/04 07:28:21] (pol2str "5X^2-3") >>> ((5 2) (-3 0)) 入力がSTRINGで出力をリスト形式で出すようなpol2strを定義したいんですけど、 どうかいたらいいかわかります? 反対の作業はなんとなくできたんだけどこれはわからなかったです。
300 名前:297 mailto:sage [04/12/04 08:42:10] >>298 遅くなったけどサンクス。そんな経緯があったのか。
301 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/04 10:31:36] 一気に変換するか、 一回トークンを切り出してリストに変換、あとはリスト処理。
302 名前:299 mailto:sage [04/12/04 14:13:51] 情報どうもっす。 色々調べたけど、TOKENに切り出す方法が分からないので諦めます。
303 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/04 14:28:11] 初心者なのはみえみえなんだからちゃんと教えてやれよ。
304 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/04 22:08:21] ----BEGIN BASE64----(font-lock-test.el.gz) H4sICDWssUEAA2ZvbnQtbG9jay10ZXN0LmVsAI2RzW7DIBCEz/FTrHLJopZDnqdu FQzrBAVYC0gjv30B569qWtVH77czOwMaGk8B/CxHDlk61kc5qZhIOpsmQGe9zaID wPOBAmAkmUhFfSh8PKtoYI19j28fKKAP7y99L9bQlqCtlUVHGRCLiwbUHIzNloPU KhEE67rVqlFp9gM7WbE6B7QhUwwy8ZgLs1CF8yoX85SjDXsZWE6RJ4rZUoKtEKLJ 4Sdb06SqUjERdXIRUMFAHXVVETkCDnMmqdnQzV1ODRHdxbWcdxri5Wf7OnxSXKS9 TVkeaT5zNAmwFbfkJ0ceNvhr0VvY3Ae3O4Ly5SqlqbR5zYB2hDt6NetWeAqOUnH1 5AeK0Bx/gi0UJsralOxOpfwMgh2+VoHH4oyRmeu5+fHWW9r7Rq2n0gfmI2xqPtle Uy2hfK16mf1V3zcR8kqnVtX/178A0ylMGtwCAAA= ----END BASE64---- pc5.2ch.net/test/read.cgi/unix/1083394705/857-869 の流れでちょっとやってみたもの。 - とりあえずつつましく font-lock-keywords の末尾に追加 - でも OVERRIDE はt だったり。本当は 'keep がいいんだろうけど - っつーか t にしててもところどころにしか色付かない。jit-lock だから? - symbol-function の結果を直接使うんじゃ駄目なんだっけ? - もうちょっと正規表現も格好よくしたいけど とかいろいろ疑問があるけどまだあまりテストしてないです。もっとスマート なのが出来たら教えて下さい。
305 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/04 23:01:19] >>304 hook ってわかってるか?
306 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/05 02:34:57] なんか妙にややこしいことしてるな。 (font-lock-add-keywords 'emacs-lisp-mode '((REGEXP SUBEXP (progn ...)))) みたいな感じでいいんじゃないのか。
307 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/05 03:00:41] >>304 > - っつーか t にしててもところどころにしか色付かない。jit-lock だから? my-font-lock-parse-lisp で、 (and func (or (byte-code-function-p func) (subrp func))) が nil になったときにそのまま nil を返しちゃまずい。 もう一回探さないとそれ以降に色が付かないぞ。
308 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/05 22:58:55] >>306 最初そっちでやっててリストの先頭に登録されるのが嫌だったんですが新ため て見たら APPEND ってフラグがありますね。そっちに変更してみました。 >>307 ごもっとも。書いててなんか違和感あったんだけどなんで気付かなかったんだ ろ orz とりあえずそれなりに色付くようになりました。どもー。
309 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/06 21:44:56] しつこくてスマン。間違いがあったので訂正。 >>304 の condition-case んとこは void-function だけ受けるんじゃ駄目で すね。error で受けてやれば全部色付くようになりました。
310 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/07 13:43:05] >>309 なんかいろいろ修正があったようなのですが、自分も一度使用してみたいので、 よかったら修正版 font-lock-test を navi2ch-base64-insert-file してもらえるとうれしいです
311 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/07 22:35:01] ----BEGIN BASE64----(font-lock-test2.el.gz) H4sICDSvtUEAA2ZvbnQtbG9jay10ZXN0Mi5lbADdVEFu3DAMPNuvIPZiCoWA5to8 JU4Br01vhFiSK8nY+j/5QD6RS5FP9CWl6G63aex0DznlZJjiDDkzlrGjvm9aAjvr /NQ0mDhq27TBQ4WYAL/0PtAh+Ml1sIvUwCEQuZ1SCpwZVInrFHHahzWGcQrjQP+F 95Nr1+CWOjNZ2A/TPxyTEwbvkh58e/9CCA7GmqRKADzekQMMpFlJaO8YEI5NYOKb Cm/rGm++ooLa3X6qa7UDwYEgGesDYMNLoPO8liX7DfBASSf6nvQY/EghzfAZKtGD tkk8IKZg3AGulCqLoqjwvGHrrSV+ke5zmddxjJCyyiiQ4a13nUnGO902kbJu5gOM s937QezKh4DGJQpOR9+nlyto509LGop5oRM3s1MIrC6bmau46eRiZG7a9lyS/wiW ZyHjhvPFm87nBk7nggCKlQA2EhBfLwlA7s5HCGA/J2JIR39c1uPpm924EG/fiHKJ 5aJgLolEnP4rkvN503X6nuajD12ESpplj2aRYVnU4s32XbuCau2vzKNyOu81SyS8 GiXVd54k3++rSVL9Pen6GohFRr3IZTZ4+Pn0+Pz88KP8BYGg2TyqBgAA ----END BASE64---- >>310 今のところこんなかんじに落ち着いてます。lisp なだけにかなりの部分に色 付くため1色だと逆に見難かったので3色使ってます。
312 名前:310 mailto:sage [04/12/08 00:06:08] >>311 ありがとうございました しかし、これは良くできていますね。 こうやって見てみると自分が普段どれだけ多くのsubrな関数を使用しているのかわかります。 感謝です。
313 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/08 03:56:47] minibuffer で作業してるときにたまに message が表示されて 自分が入力してるのが消えるときがあるじゃないですか。 で、そんなときに消えないようにと以下の advice を付けてみたんですけど、 今いち視線が上下してよろしくない気がします。 何かいい案はないですかね? momentary-string-display をうまく使えばいい感じになりそうな気もするけど。。。 (defadvice message (around if-minibuffer-use-momentary-string-display activate) (if (window-minibuffer-p (selected-window)) (save-window-excursion (save-selected-window (select-window (display-buffer (get-buffer-create "*message on minibuffer*"))) (delete-other-windows) (erase-buffer) (insert (make-string (window-height) ?\n) (format (ad-get-arg 0) (ad-get-arg 1))) (goto-char (point-max)) (recenter)) (sit-for minibuffer-message-timeout)) ad-do-it))
314 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/08 08:55:07] >>313 > minibuffer で作業してるときにたまに message が表示されて > 自分が入力してるのが消えるときがあるじゃないですか。 漏れも、LSDBを入れたらその問題で悩みました。Fontifying... という メッセージがじゃまをするので、~/.emacs で (setq font-lock-verbose nil) しましたが、こういう手もあったとは。
315 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/08 22:46:40] >>313 何となくわかればいいだけなら、こんな感じでは? 一発目だけポインタを移動するとか、小細工はあってもいいけど (defadvice message (around my-message-ad activate) (if (window-minibuffer-p (selected-window)) (let ((executing-kbd-macro t)) ad-do-it (display-buffer "*Messages*")) ad-do-it))
316 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/08 23:47:51] >>315 ポインタってポイントのコト?
317 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/09 01:29:52] 結局こんなんになりました。 これだと視線の上下もないしいい感じ。 ついでに、minibuffer での isearch のときもいい感じになってくれました。 ただ signal とかの emacs の中の人が処理してるやつはやっぱりだめっぽいです。 (defadvice message (around minibuffer-workaround activate) (if (window-minibuffer-p (selected-window)) (let ((pos (point-max))) (when (ad-get-arg 0) (unwind-protect (progn (save-excursion (goto-char pos) (insert "\n" (format (ad-get-arg 0) (ad-get-arg 1)))) (sit-for (or minibuffer-message-timeout 1))) (delete-region pos (point-max))))) ad-do-it))
318 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/09 02:00:56] なんかいもごめんです。 さっきのやつの insert のとこを (insert "\n" (apply 'format (ad-get-arg 0) (ad-get-args 1)))) に変えないとダメポです。 あと、skk と相性がわるいなぁ。
319 名前:名無しさん@お腹いっぱい。 mailto:sage [04/12/10 22:21:05] example.jp/foo bar/~baz/ こんな url を encode して example.jp/foo%20bar/%7Ebaz/ を得たいんだけど、そのものズバリな関数がありそうで見つからない。 (browse-url-file-url "example.jp/foo bar/~baz/") => "example.jp/foo%20bar/~baz/ " ~ は encode してくれないのね。 (w3m-url-encode-string "example.jp/foo bar/~baz/") => "example.jp/foo+bar/%7ebaz/ " + か(´・ω・`) 今は自力でやってるけど、どっかにあったりする?