のくす牧場
コンテンツ
牧場内検索
カウンタ
総計: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

    701 = :

    >700
    よっぽど悔しかったんだね

    702 = :

    >>701
    おまいも大人げないよ
    スレが荒れるからヤメれ

    703 = :

    >>696
    appendいらなかったな。

    >>701
    >>700は俺じゃないぞ。

    704 = :

    Perlのjoinにあたる関数ってないですか。今はこうしてます。

    (defun join-string (s seq)
    (reduce '(lambda (x y) (concat x s y)) seq))

    706 = :

    例えば

    emacs yarou
    hello emacs kun to lisp yarou

    のようなラインがバッファ内にあったと仮定して、 M-x foo を実行すると
    Line containing:
    というプロンプトがミニバッファにでて、
    emac li <RET>
    と打ちこむと、 "emac" と "li" のサブストリングを含むライン (この場合は 2行目)
    を occur などでマッチする関数 foo がほしいのですが。。。作って。。。

    707 = :

    正規表現でいいじゃん

    708 = :

    正規表現でいいだろう

    709 = :

    正規表現でいいような気がする

    710 = :

    正規表現でいいと思われ。

    711 = :

    正規表現じゃ大変だ

    712 = :

    正規表現ってのはどうだ

    713 = :

    もういいから。

    714 = :

    もういいよ。

    715 = :

    もういいな。

    716 = :

    (defun foo(str)
    "HG"
    (interactive "sLine containing:")
    (if (not (string= str "emacs li"))
    (message "not found!")
    (if (not (re-search-forward "emac.*li" nil t))
    (message "not found!!")
    (message "found!")
    )))

    720 = :

    >>719
    できました。便利な属性(?)があるんですね。

    721 = :

    どんなタイミングでevalされるの?

    722 = :

    Vim の dircolors.vim みたいな ~/.dir_colors 編集用メジャーモードを作ったので晒してみます。
    begin-base64 644 dircolors-mode.el.gz
    H4sICJBGp0MAA2RpcmNvbG9ycy1tb2RlLmVsAK1Y0W7bNhR9z1cQ6oPlDfLk
    8DoG4qBBazuNUccqHD/sQUChWHSmWZYySU4aYOi/DFCH/cMG7HFFCwzYZwx7
    2/YBIyXbSUhfUwbmIBAl3nPu5Tk0KbPT6RA/SKZxGCeptYh91mAhsciF922c
    EHFPZrzB/CALomvy/qsGj35bhh8cmD6bTZdpFi8kEuubOJ6TKAgPCDE2XSWf
    6GoYvOM4u79hpCbuxd11Ei9vSM33Mq9eUs+8KZOJ74LQn3qJb4lODquZZkbM
    Y14kEwSRT4xnZ/xj20a9Xhcl1AuuWy/ZScUT7+jdUZBtPy3lSdatgKZU+1Uc
    +iTT40DC8cGyJAwiVgXc2rfKtpQtiG5ZkjLrNvBZXCEjtXdZBLb4M/QssliS
    0bYtG72V5XAXi22r02UrC9130m1lkW2UahHVVGBp6XSpxHKk06USizxVFF2q
    sIA8X6686fyJLlXUBeXL9Zil6nwBeb5ItVRzGmSnpVr+D5aq8wXk+aLoUolF
    ni+KLpVY5Pmi6CKzbFm8V8uusmyvnuO4JoJranCA4ECDayG4lgbXRnDt3TiK
    6EI1ulBEF6rRZbW0qrhDDY4iOKrBIT5QjQ8U8YFqfFgtkSruSIND/KMa/wDx
    DzT+AeIfaPwDxD/Q+AeIf6DxDxD/QOMfIP6Bxj9A/AONf4D4B2v/MGB6H2Xe
    O8sLgzQrlzjj7XuDNIhxZ9SJefpMNE+KphuJ9nO+1m15TX7M0zDwfLM4yqww
    ns6tObu/ixM/XWV13RPXNSf98YXrft91hs6YX/uDV+eTl4MJbzpvJgNndOm6
    ddd9LgpUmFYjJfyzphs544sXQ44+Gwz7/NIbCNbhYPRaMI7fnL8Y8cbF4PJy
    MHpVhJ05/HLpdEVAzymKeDkUN93zoqCv+939Shj2zyZdpyeyj8VoVu3+qFe2
    qnJ94bqNU9e9+3IVv/v9f41q7I04se3t8Zut6iGyiUQ2lUhAIkGJbCGRLSWy
    jUS25UiKjIgqI6LIiKgyInqIRB4qkRSJpEokohJVVKKISlRRiR4hkUdKJKIn
    VfQERE9Q9ARET1D0BERPUPQERE9Q9ARET1D0BERPUPQERE9Q9AREz/WSvG0V
    VVfHXWvpwrtBDi04mndusMtIgvJf1AJV5dhEHH2YQZSxxJtmwa3YSviDeRCG
    fLEPRbFeaPHiAu8qZKmgNZf8d3f5XFSoFl1SLLw5k+Ck9iAAL9tbhlnJmLLs
    O6L2FWKLT6dDJk7POSb5p/yf/LcnuxHJP3/649d/879//pj/mH/88NOHP3/4
    Jf/MI//Kfz99RFEztXuVkLv437GLkit2HUQRF9KKZ5Y48KjXN1n2yVFpK96a
    bSNZkSLyFowYvXVe40HRhfC/nBDSi0MRkyyj4mQsJbWMvcsejspECvMmicXh
    ior8Dy4122KlEwAA
    ====

    723 = :

    それで、いくつか作ってて疑問な点があったので聞いてみたいのですが

    * 123行目で SYNTAX-ALIST 引数に dircolors-mode-syntax-alist を使うと
     (直前でコメントアウトしてあるコードのことです)
     font-lock が発動した際に型が違うと言われてしまうのですが、これは何故なんでしょうか?

    * defface で face を定義した後、同名の変数を defvar する操作は必須ですか?
     自分の環境では省略しても問題ないように見えるんですが、ネットで見掛けるコードでは
     何故かわざわざ defface, defvar を並べて書いてるのでちょっと不安です。
     必要なのであれば、その理由も教えて頂けるとうれしいです。
     というかもしかして face と普通の変数ってスコープが違ったりしますか?

    725 = :

    deffaceはfaceの定義、defvarは変数の定義

    たとえば dired.elの
    (defface dired-header '((t (:inherit font-lock-type-face))))
    (defvar dired-header-face 'dired-header)

    dired-headerという名前で定義したfaceを用意しておいて、
    dired-header-faceに代入しておく。
    実際にfaceを決定するところではdired-header-faceを使用する。

    elispコード内でdired-headerを直接指定していたら、
    もしもあとでdired-header-faceを変えたくなったときに、
    dired-headerを上書きするかコードを書き変えないといけないけど、
    変数を経由するようにしておけば、別のfaceを定義してその変数に代入してあげればいい。


    そういう意味で、paren.elなんかはfaceを直接overlayしているので、
    faceの色や字体を変えたいときは、set-face-x系を使って
    faceの設定を上書きしてあげないといけないね。

    726 = :

    > そういう意味で、paren.elなんかはfaceを直接overlayしているので、
    > faceの色や字体を変えたいときは、set-face-x系を使って
    > faceの設定を上書きしてあげないといけないね。

    それで何か不都合あんの?

    727 = :

    ほとんどの人は上書きしてしまって不都合ないと思いますよ。
    起動後にfaceを変えるってあまりないですよね。

    でもまぁ、setqでちょこちょこ変えたい人には箱があったほうがいいですし、
    それくらいのレベルだと思います。

    728 = :

    はじめまして。Emacs LISPの勉強をしている高校生です(はじめたばかりです。すみません)。
    カレントバッファに対して文字列の検索や置換をする関数は見つけられたのですが、
    文字列そのものを引数にとるような同様の関数はありますでしょうか。
    具体的には、ある入力文字列から、決められた文字を取り除きたいのです。

    729 = :

    M-x apropos
    その程度で質問してるようじゃ先が思いやられるよ

    730 = :

    なんでそんなに見下した態度取るんだ?
    高校生か、がんばれよーでいいじゃん。

    731 = :

    replace-regexp-in-string とかでええのか?
    または string-match して substring してみたり適当に

    734 = :

    >731
    replace-regexp-in-string、これです!ありがとうございました。
    >729
    今後はしばらく"M-x apropos"で調べていけそうです。Emacs LISPのこういうインタラクティブな感じがとっても好きです。
    しょーもない質問をしてすみませんでした。そしてありがとうございました。
    その他の方々もありがとうございました!

    735 = :

    time-stamp.elを使ってるとundoの時に不満ない?
    timestamp部分はundoできなくなるけど、こんな事してみた。
    (defadvice time-stamp-once (around cannot-be-undone activate)
    (let ((buffer-undo-list t))
    ad-do-it))

    後から気付いたんだけど、redo.elを入れてたのをすっかり忘れてた。
    ちゃんと使っていればそのような不満はあまり感じなかったかもしれない。

    737 = :

    http://homepage3.nifty.com/oatu/emacs/misc.html
    これかな?

    738 = :

    >>734
    まあマジレスすると mode-info 入れとけ。
    http://www.namazu.org/~tsuchiya/elisp/mode-info.html

    739 = :

    行の中で最初の「空白/タブではない文字」にカーソルを移動したいんですが、どうすればいいですか?

    740 = :

    >>739
    see back-to-indentation

    741 = :

    >>740
    ありがとう。助かりました。

    742 = :

    >>738
    734じゃないけど、mode-info は最新の CVS の Emacs だとコンパイルできない
    ようです。過去にこのスレでパッチが出ていたんだけど、もう古くなっていま
    した。。。最新のパッチがあれば投下して頂けないでしょうか?

    743 = :

    url.el の使い方が分からない…。

    (let ((url (url-generic-parse-url "http://www.example.org/")))
        (url-retrieve url (lambda ()
                            (url-store-in-cache (current-buffer)))))

    744 = :

    途中送信してしまった…。

    これでキャッシュの保存をしてくれるかと思ったけどしてくれなかった。
    どうすればいいんだ???

    745 = :

    http://d.hatena.ne.jp/teny/20060204#p1

    こういうのを見ると、emacs lispも技術の途切れて
    壊滅的状態にあると思わざるを得ない。

    746 = :

    >>745
    おまえの日本語も技術の途切れて壊滅状態だな。

    747 = :

    >>745
    その題目って、何度も再発明されてるな。

    748 = :

    単に再発明した人がいるというだけなのにその帰結かよ。

    749 = :

    っていうか、バグバグじゃん。ちゃんとテストしてないな。

    750 = :

    まぁblogはある意味ここよりもゴミが多かったりするし。


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

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


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