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

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

    emacs覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    51 = :


    '((spec
    ((:char-spec ascii :height any))))

    の"height:"ってなんですか?

    Lispのマニュアルに載ってますか?

    52 = :

    >51
    それMeadowのフォント設定じゃない?
    だったらそれはMeadow独自だから、
    EmacsLispのマニュアルには載って無い。

    53 = :

    emacs ユーザーのスキルレベルというのはどんなもんなんでしょうか。

    僕はぼんやりとですが、

    初心者 寄せ集めでも.emacsを作れて、キーバインドができる
    初級者 正規表現を操れて、簡単なelispが書ける
    中級車 listを自由自在に操れて、人の書いたelispを書き直せる
    上級者 マイナーモードやメジャーモードをスクラッチから書ける

    こういうもんかなと思ってますが。
    実際のところ、どうなんでしょう>上級者の方々

    教えていただけると、励みになりますんで。ひとつ。

    54 = :

    × 中級車
    ○ 中級者

    でした。
    僕はまだまだ軽四レベルです。

    55 = :

    >>53
    変なことを知りたがるなー

    メジャーモードは簡単だから中級者だね。広瀬さんのページでも見てね。
    上級者には ccl も求められるかも。
    あと、XEmacs などの微妙な違い。

    56 = :

    >>55
    > メジャーモードは簡単だから中級者だね。
    マジスカ。
    cclなんてとてもなんで、当分中級を目指します。
    道は険しいなぁ…

    57 = :

    別に階級付けしなくても。
    > 人の書いたelispを書き直せる
    こんなん、元のlisp次第だしさ。

    58 = :

    中級は尊い

    59 = :

    >>52

    いや、Meadowのフォント設定の例なのはわかっているんですけど、
    :heightとかの lispの言語的にどーいう扱いかと。

    lisp modeではhighlightされるし、なんか特別な扱いがあるのかと?

    誰か教えてください。

    60 = :

    >>59
    変数として評価すると自身を返すシンボル。

    : が頭についているシンボルについてくわしく知りたいなら
    keyword-symbols-constant-flag の docstring でも見てくださいな。

    t や nil とは微妙に違う、こんなことをしたときに。
    (setq t t)
    (setq :foo :foo)

    > 中級は尊い

    61 = :


    >>60

    なるほどです。
    そのまんま、constantなsymbolなのですね。

    これを使う側が、
    (:char-spec ascii :height any)
    なんかで、リストの次の中身が何なのか、判断しているのですね。

    ("char-spec" ascii "height" any)
    だと、文字列だから遅いんですか?

    lispでは、
    (eq :hage :hage)
    は純粋にsymbolの比較onlyだから”軽い”ってことですか?

    62 = :

    >>61
    その手のやつは plist-get を使ってると思うんで docstring でも見てくださいな。

    (plist-get '(nnsoup pink) 'nnsoup) => pink
    (plist-get '(:nnsoup pink) :nnsoup) => pink
    (plist-get '("nnsoup" pink) "nnsoup") => nil

    中級は尊い

    65 = :


    >>62

    あぁ、なるほどね。
    ありがとうございます。

    すっきりしました。

    もう一度Emacs Lispマニュアル読み直しに逝ってくるでつ。

    67 = :

    自分以外に便利だと思う人がいるとは思えないけど
    (defun my-recenter (&optional arg)
    (interactive "P")
    (if (equal last-command 'recenter)
    (recenter 0)
    (recenter arg)
    (setq this-command 'recenter)))

    68 = :

    >>67
    いちお簡単に機能ぐらい書いといたほうが。
    equal は eq でいいね。
    last-command が recenter と my-recenterの間で
    トグルするのを利用するわけか。

    70 = :

    >>67
    これを機会に docstring 書く癖つけれ

    71 = :

    >>68,70
    あ、僕もですね。肝心な説明を書いてませんでした。

    >>66
    ポイント付近の語をkill-ringにコピーします。

    docstringは、さしずめ
    "Copy a word at near the point to kill-ring."
    といったところでしょうか。

    細かい説明書きは英語ではつらい…ボソ

    73 = :

    >>72
    CVS or RCSをvc で使用時、ついついチェックインを忘れてしまい、古い版が
    欲しいときに戻せないという歯がゆい思いをしました。

    これを防ぐためにファイルセーブx回に1回は自動的にチェックインするelisp
    を書いてみました。要vcで、CVSと RCSにしか対応していません。
    使うには .emacsに以下を追加します。

    (require 'auto-vc-checkin)
    (setq auto-vc-checkin-rcs t) ;; RCSで有効にする
    (setq auto-vc-checkin-cvs t) ;; CVSで有効にする
    ;; 例:セーブ3回につき、1回チェックイン
    (setq auto-vc-checkin-save-count-by-checkin 3)

    RCSの場合はチェックインと同時にチェックアウトしますので、初回チェック
    アウト後はCVSと同じような使用感になると思います。

    なお、auto-save-buffers.elを使ってる場合は処理待ち増大で操作不能になる
    可能性があるかもです。リビジョン番号肥大にも要注意です。

    あと、複数メンバーのプロジェクトでは使わないほうが無難だと思います。

    75 = :

    いいんだけど、check inしたらアンドゥ情報が失われるというのはちょっと…

    76 = :

    確かに、です。
    vc がよく分かってないままに書いたのがいけなかったです。
    もちょっと調べます。

    78 = :

    (add-hook 'foobar-mode (function (lambda () (show-paren-mode 1))))

    79 = :

    >>78
    (add-hook 'foobar-mode-hook #'(lambda () (show-paren-mode 1)))
    でしょ?
    foobar-mode でなく
    foobar-mode-hook と。一般的にですが。

    81 = :

    初心者 寄せ集めでも.emacsを作れて、キーバインドができる
    初級者 正規表現を操れて、簡単なelispが書ける
        listを自由自在に操れて、人の書いたelispを書き直せる
        マイナーモードやメジャーモードをスクラッチから書ける
    中級者 Emacsにパッチをあてはじめる
    上級者 Emacsをスクラッチから書ける

    82 = :

    中級は尊い。

    83 = :

    >>79
    > (add-hook 'foobar-mode-hook #'(lambda () (show-paren-mode 1)))

    (add-hook 'foobar-mode-hook (lambda () (show-paren-mode 1)))
    ではないの?


    (defmacro lambda (&rest cdr)
    :
    (list 'function (cons 'lambda cdr)))
    だじょ。

    84 = :

    >>83
    訂正するほどじゃない。

    85 = :

    スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。

    87 = :

    >81 漏れはいまだ初心者でつね

    88 = :

    >>81
    上級者というのはxyzzyの亀井さんくらいのレベルなのか…。
    道は遠い…というより一生かかってもムリ

    89 = :

    初心者 寄せ集めでも女を集めて、ハーレム を作れる
    初級者 性器表現を操れて、簡単なエロ本が書ける
        チムポを自由自在に操れて、人に汚された女を調教し直せる
        S モードや M モードをスクラッチから調教できる
    中級者 少女の頃から育成をはじめる
    上級者 女を卵子から作り始める

    90 = :

    >>89
    はい、それから~

    91 = :

    定義厨は失せて。

    92 = :

    >>91
    なんか Emacsスレのほうに飛び火してるみたいだが。

    93 = :

    >>89
    初心者のハードルやけに高いな、おい。

    94 = :

    >>85
    > スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。

    http://www.mew.org/~kazu/doc/elisp/function.html

    95 = :

    >>94
    結局「スタイルの問題」じゃないの?

    96 = :

    >94
    kazuのeispは信じられない程アレなので参考にならない。

    97 = :

    #' ではなく ' を使うと、バイトコンパイルされない場合がある。ってことでしょ。

    98 = :

    >>96
    あ、mew 使ってないんでよく知らないんだけどどのへんがアレなの?

    99 = :

    >>97
    でもこのスレでは生のlambdaと functionで囲んだのだけ扱ってて、
    quoteは関係無かったからさ。なのに 94が変な反応するから。

    100 = :

    今日、はじめて包囲アドバイスなるものを使ってみマスタ。
    強力すぎてちょっと怖いけど、試しに

    ;; デフォルト動作でそのウィンドウも消すようにする。
    (defadvice quit-window (around kill-window-adv activate)
    "quit-window with kill selected window"
    (unless (ad-get-arg 1)
    (ad-set-arg 1 (selected-window)))
    ad-do-it)

    こんな風なのを書いてみた。
    たとえばapropos のウィンドウで q したときなんかはウィンドウが消えてくれます。
    コレ一発で vc の log ウィンドウなんかもそんな挙動になってくれるからスゴイ楽でし。

    でもやっぱし怖いす。


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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