のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,822人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    【叩かれて】Emacs Lisp道場【強くなれ】

    emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    151 : 名無しさん@お腹 - 04/01/04 16:33 (+32,+14,+0)
    がんがれー
    152 : 名無しさん@お腹 - 04/01/04 17:13 (+4,-29,-3)
    153 : 名無しさん@お腹 - 04/01/05 19:56 (+3,-30,-59)
    >>152
    駄目.

    http://www.i.kyushu-u.ac.jp/~s-fusa/doc/elisp-manual-20-2.5-jp/elisp-ja_1.html#SEC4

    にあるように,日本語は改変が認められていません.

    故に公開したければ,全文を訳し直す必要がある.
    154 : 名無しさん@お腹 - 04/01/05 21:01 (+3,-29,-50)
    その GPL 和訳の由来はここ。
    http://www.sra.co.jp/public/doc/gnu/gpl-2j.txt
    これにも同じく
    > ・和文文書の本文を改変しないこと。
    とある。つまり、禁止してるのは「GPL の和文本文」の改変であって、
    Emacs Lisp Reference Manual の和文ではない。
    そもそも、元の文書が GPL なのだから改変禁止は不可能。
    155 : 名無しさん@お腹 - 04/01/05 23:46 (+52,+29,-3)
    恐ろしいほどの部分引用だな
    156 : 名無しさん@お腹 - 04/01/23 04:41 (+43,-29,-39)
    asm-mode で新規作成/既存ファイル開く、でファイル先頭に;(コメント文字) が
    自動的に挿入されてしまうんだけど、これを抑制する方法ないでつか?
    157 : 名無しさん@お腹 - 04/01/23 09:11 (+57,+29,-20)
    それだけでは、うちではそんなことはないとしか言いようがないよ。
    それは本当にasm-modeが入れているものなのかな?

    158 : 名無しさん@お腹 - 04/01/23 11:26 (+36,-29,-41)
    -q つけて起動したら再現しませんでした…出直してくるぽ。

    新規作成したバッファの状態を監視しつつ
    edebug でステップ実行したいんですけど、
    バッファが見当たらない… asm-mode が
    呼ばれたときはバッファが存在してるはずでつよね?

    159 : 156 - 04/01/23 11:29 (+64,+29,-2)
    まちがえて age ちゃった。 ごめんでつ。>>158>>156 です。
    160 : 名無しさん@お腹 - 04/02/02 02:00 (+12,-30,-59)
    最近の elisp では when とか unless とか出て来るんですけど、
    わたしは while と if と cond くらいしか使いません。
    when, unless の利点は何ですか?
    161 : 名無しさん@お腹 - 04/02/02 02:01 (+0,-28,+2)
    >>160
    progn 使わなくていい
    162 : 名無しさん@お腹 - 04/02/02 02:29 (+57,+29,-24)
    whenとあったとき、ifと違い条件の成立しなかった時の処理はないのだと
    一目で分かる。
    163 : 名無しさん@お腹 - 04/02/02 02:38 (+52,+29,-1)
    欠点はいらんのか
    164 : 名無しさん@お腹 - 04/02/02 02:45 (+57,+29,-11)
    別に ifと置換えとかじゃないし、単純すぎる構文だから欠点もなにも……。
    165 : 160 - 04/02/02 02:55 (+57,+29,-19)
    ってことは別に無理して使わなくてもいいってことか。
    マクロってよくわかんないけど subr.el 見たら、if に置き換えてるだけみたいね。

    166 : 名無しさん@お腹 - 04/02/06 02:12 (+13,-29,-42)
    navi2chなんかで、エンター押したらその行に関係する動作をする機能を作るには
    何を使えばいいのでしょうか。
    key map を使うのかと思ってnavi2chのソースをみたのですが、
    define-key map [return] という行は見つかりませんでした。
    167 : 名無しさん@お腹 - 04/02/06 03:23 (+23,-8,-15)
    そのレベルの質問なら、navi2chスレのほうが適切と思うが。
    168 : 名無しさん@お腹 - 04/02/06 04:15 (+2,-30,-44)
    (define-key map "\r" 'navi2ch-article-select-current-link)
    169 : 名無しさん@お腹 - 04/02/06 04:45 (-1,-29,-37)
    今回の場合、describe-key で returnに対応するコマンドを調べて、
    それを元に grepすれば >>168が見つかりますな。
    170 : 名無しさん@お腹 - 04/02/06 11:48 (-6,-29,-1)
    C-h w RET
    171 : 名無しさん@お腹 - 04/02/06 11:49 (-2,-25,+0)
    w じゃなくて k だ
    172 : 名無しさん@お腹 - 04/02/06 12:08 (+46,-30,-97)
    ある関数内で 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 - 04/02/06 12:15 (+1,-29,-6)
    >>167-171
    みなさんありがとうございました。
    勉強になりました。
    [return] ではなくて"\r"で定義してあるんですね。
    174 : 名無しさん@お腹 - 04/02/06 12:21 (+69,+29,-14)
    >>172
    > じゃ駄目なんですね。
    変数じゃないならだめだよ。
    175 : 172 - 04/02/06 12:36 (+12,-30,-45)
    >>174
    いちお変数でもあるんですけどね、って今見てみたら docstring に
    Setting this variable directly does not take effect;
    と書いてあった…失礼しますた。やっぱあんな方法でやるしかないのかなあ。
    176 : 名無しさん@お腹 - 04/02/06 13:23 (+31,-29,-3)
    with-auto-compression-mode
    177 : 名無しさん@お腹 - 04/02/06 18:24 (+62,+29,-1)
    >>176
    おーありがとうです。こんなのがあったのか。感謝。
    178 : 名無しさん@お腹 - 04/02/06 22:10 (+3,-30,-66)
    emacs21のtool-bar にあるプリンタアイコンはprint-bufferですが、
    これを.emacsでpostscript-print-bufferに変えたいんですが、どうやれば
    良いすかね?
    179 : 名無しさん@お腹 - 04/02/07 00:26 (+3,-30,-53)
    (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 : 名無しさん@お腹 - 04/02/09 16:51 (-1,-29,-20)
    空のファイルを作成したいのですがどうやればいいんでしょうか?
    動作としては↓のような感じです。
    % touch hoge
    (hogeというファイルは存在していないとして)
    181 : 名無しさん@お腹 - 04/02/09 17:27 (+19,-30,-19)
    (write-region (point-min) (point-min) "hoge" t)
    182 : 名無しさん@お腹 - 04/02/09 20:37 (+35,+5,+2)
    >>181
    ありがとうございました。
    183 : 名無しさん@お腹 - 04/03/20 18:29 (-1,-29,-25)
    だれか、mmm で php-mode の indent が効かなくなるの直してくれ。
    184 : 名無しさん@お腹 - 04/03/24 08:35 (+57,+29,-18)
    mmm と php-mode てなんか相性わるいよね。
    漏れは別の不具合のせいで、結局php-mode 単体でつかってまふ。
    185 : 名無しさん@お腹 - 04/05/01 12:53 (+8,-29,-25)
    '(1 2) '(3 4) => (4 6)
    みたいにリストの各要素を足してくれるような関数ってありませんでしたっけ?
    186 : 名無しさん@お腹 - 04/05/01 13:16 (+31,-29,-8)
    (mapcar* '+ '(1 2) '(3 4))
    clだけど。
    187 : 185 - 04/05/01 13:29 (+62,+29,-4)
    >>186
    あれこれ探してみてたんですが cl にあったのか、どうもですた。
    188 : 名無しさん@お腹 - 04/05/10 20:39 (+3,-30,-97)
    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 : 名無しさん@お腹 - 04/05/11 01:40 (+21,-30,-18)
    (let ((sym (if arg1 'a-list 'b-list)))
    (set sym (append arg2 (symbol-value sym))))
    190 : 名無しさん@お腹 - 04/05/11 18:30 (+40,+9,-1)
    >>189
    set ってこんな時に使えるのか。サンクスコでした。
    191 : 名無しさん@お腹 - 04/05/12 08:04 (+3,-30,-45)
    マ板、Emacs Lispスレから流れてきました。
    ○×ゲームを作っていくという話題。

    とりあえず、入力はこんな感じで。
    (read-from-minibuffer " │○│ 
    ―┼―┼―
     │×│ 
    ―┼―┼―
     │ │  コンマで区切って2つの数字を入力してください。(例 0,0)")
    192 : 名無しさん@お腹 - 04/05/12 13:06 (+38,-24,-17)
    何でminibuffer使う?
    一瞬 gomoku.el の部品が使えないかなと思ったけど
    自分で書いた方がはやそう。
    193 : 名無しさん@お腹 - 04/05/12 15:56 (+94,+29,-19)
    ○×か。最初から敷居が高いなぁ。
    入力はコンマ区切りよりリストとして入力させる方が良いハックじゃないかな?
    コンマはパースしなくちゃいけないし。
    194 : 名無しさん@お腹 - 04/05/12 16:10 (+3,-30,-241)
    何も考えずに、ここまでやってみた。ボードと終了判定があるだけ。
    あとは、エラーチェックの徹底と思考ルーチンかな。
    長いので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 : 名無しさん@お腹 - 04/05/12 16:12 (+3,-30,-193)
    しょの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 : 名無しさん@お腹 - 04/05/12 16:13 (+3,-30,-137)
    あとminibufferよりも新しく編集バッファを作成してエディタ内のテキストを
    操作する方が良いと思う。二次元の平面を扱うなら。
    例えば以下のような感じ。

    (progn (get-buffer-create "hoge")
      (switch-to-buffer "hoge")
      (erase-buffer)
      (insert "○|×|○ \n")
      (insert "×|○|○ \n")
      (insert "×|○|× \n"))

    197 : 名無しさん@お腹 - 04/05/12 16:13 (+3,-30,-198)
    しょの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 (+0,-22,-1)
    Emacsって何?
    199 : 名無しさん@お腹 - 04/05/12 16:22 (+70,+26,-124)
    >>192
    > 何でminibuffer使う?
    > 一瞬 gomoku.el の部品が使えないかなと思ったけど
    > 自分で書いた方がはやそう。
    その場のノリですが、むりやり理由をつければゲーム後に画面の後かたずけとかが自動的に行われるからです。

    >>193
    >入力はコンマ区切りよりリストとして入力させる方が良いハックじゃないかな?
    >コンマはパースしなくちゃいけないし。
    置ける場所に番号を書いておいて、それを入力してもらう方法をとってみました。

    思考ルーチンも総あたりすればいいだけですね。

    ox-game-over-pではthrowでdolistを早抜けしているんですけど、elisp的な
    定石はこれでいいのでしょうか。
    200 : 鬱­猫&s - 04/05/12 18:14 (+57,+29,-16)
    ここで>>1を読んで修業すればnavi2chみたいの書けますか?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について