のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,817人
昨日: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
    701 : 名無しさん@お腹 - 2005/11/18(金) 16:31:47 (+125,+29,+0)
    >700
    よっぽど悔しかったんだね
    702 : 名無しさん@お腹 - 2005/11/18(金) 16:41:35 (+69,+29,-15)
    >>701
    おまいも大人げないよ
    スレが荒れるからヤメれ
    703 : 696 - 2005/11/18(金) 16:45:33 (+71,+27,-12)
    >>696
    appendいらなかったな。

    >>701
    >>700は俺じゃないぞ。
    704 : 名無しさん@お腹 - 2005/11/21(月) 09:49:47 (+3,-30,-59)
    Perlのjoinにあたる関数ってないですか。今はこうしてます。

    (defun join-string (s seq)
    (reduce '(lambda (x y) (concat x s y)) seq))
    705 : 名無しさん@お腹 - 2005/11/21(月) 09:59:01 (-1,-29,-1)
    mapconcatか。reduceなんてシラネ。
    706 : 名無しさん@お腹 - 2005/11/22(火) 19:24:37 (+3,-30,-63)
    例えば

    emacs yarou
    hello emacs kun to lisp yarou

    のようなラインがバッファ内にあったと仮定して、 M-x foo を実行すると
    Line containing:
    というプロンプトがミニバッファにでて、
    emac li <RET>
    と打ちこむと、 "emac" と "li" のサブストリングを含むライン (この場合は 2行目)
    を occur などでマッチする関数 foo がほしいのですが。。。作って。。。
    707 : 名無しさん@お腹 - 2005/11/22(火) 21:27:04 (+6,-16,-12)
    正規表現でいいじゃん
    708 : 名無しさん@お腹 - 2005/11/22(火) 21:38:21 (+8,-14,-12)
    正規表現でいいだろう
    709 : 名無しさん@お腹 - 2005/11/22(火) 22:35:38 (+34,+11,-12)
    正規表現でいいような気がする
    710 : 名無しさん@お腹 - 2005/11/22(火) 22:42:25 (+8,-14,-12)
    正規表現でいいと思われ。
    711 : 名無しさん@お腹 - 2005/11/22(火) 22:48:41 (+44,+21,-11)
    正規表現じゃ大変だ
    712 : 名無しさん@お腹 - 2005/11/22(火) 23:15:19 (+43,+20,-11)
    正規表現ってのはどうだ
    713 : 名無しさん@お腹 - 2005/11/22(火) 23:19:25 (+42,+24,+0)
    もういいから。
    714 : 名無しさん@お腹 - 2005/11/23(水) 00:11:44 (+41,+23,+1)
    もういいよ。
    715 : 名無しさん@お腹 - 2005/11/23(水) 02:36:12 (+43,+25,+0)
    もういいな。
    716 : 名無しさん@お腹 - 2005/11/28(月) 00:18:36 (+3,-30,-93)
    (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!")
    )))
    717 : 名無しさん@お腹 - 2005/12/13(火) 13:47:33 (+0,+0,+0)
    ライブラリのリビジョンに応じて設定を変えたい場合なんかに便利かなと

    (setq get-revision-number-line-limit 20)

    ;; 1.1.1.1 には対応してない
    (defun get-revision-number (library)
    (let* ((file (locate-library (concat library ".el")))
    (buf-exists-p (get-file-buffer file))
    (buf buf-exists-p)
    rev)
    (unless buf-exists-p
    (setq buf (find-file-noselect file)))
    (save-match-data
    (with-current-buffer buf
    (save-excursion
    (save-restriction
    (widen)
    (goto-char (point-min))
    (let (search-limit)
    (forward-line get-revision-number-line-limit)
    (setq search-limit (point))
    (goto-char (point-min))
    (when (re-search-forward (concat "$Id: "
    (regexp-quote (concat library ".el"))
    ",v " "\\([0-9]+\\.[0-9]+\\)" " ")
    search-limit t)
    (setq rev (string-to-number (match-string 1)))))))))
    (unless buf-exists-p
    (kill-buffer buf))
    rev))
    718 : 名無しさん@お腹 - 2005/12/14(水) 00:43:34 (+3,-30,-224)
    emacs-version
    "22.0.50.1"

    Diredのバッファ名のように、
    mode-lineのcvsのリビジョンの部分だけ色を変えたいのですが、

    (setq-default mode-line-format
           `(" "
            ;;mw32-ime-mode-line-state-indicator
            mode-line-mule-info mode-line-modified " "
            mode-line-buffer-identification
            (vc-mode ,(propertize vc-mode 'face '(:foreground "blue" :background "red")))
            " " global-mode-string (-3 . "%p") " " "-%-"))

    これを.emacsで評価すると、mode-lineでは.emacsのリビジョンが赤くなりますが、
    別のバッファにうつっても.emacsのリビジョンが赤くなってしまいます。

    着色しないときのようにファイル毎にそれぞれのリビジョンを表示するには、
    どうしたら良いでしょうか?
    719 : 名無しさん@お腹 - 2005/12/14(水) 05:34:22 (+36,-30,-156)
    (setq-default mode-line-format
    '(" "
    ;;mw32-ime-mode-line-state-indicator
    mode-line-mule-info mode-line-modified " "
    mode-line-buffer-identification
    (vc-mode (:eval (propertize vc-mode 'face '(:foreground "blue" :background "red"))))
    " " global-mode-string (-3 . "%p") " " "-%-"))
    720 : 名無しさん@お腹 - 2005/12/15(木) 00:31:01 (+61,+28,+0)
    >>719
    できました。便利な属性(?)があるんですね。
    721 : 名無しさん@お腹 - 2005/12/15(木) 01:28:18 (+19,-8,-16)
    どんなタイミングでevalされるの?
    722 : 名無しさん@お腹 - 2005/12/20(火) 08:53:44 (+23,-30,+0)
    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 : 722 - 2005/12/20(火) 09:04:41 (+7,-30,-221)
    それで、いくつか作ってて疑問な点があったので聞いてみたいのですが

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

    * defface で face を定義した後、同名の変数を defvar する操作は必須ですか?
     自分の環境では省略しても問題ないように見えるんですが、ネットで見掛けるコードでは
     何故かわざわざ defface, defvar を並べて書いてるのでちょっと不安です。
     必要なのであれば、その理由も教えて頂けるとうれしいです。
     というかもしかして face と普通の変数ってスコープが違ったりしますか?
    724 : 722 - 2005/12/20(火) 09:08:14 (+0,-29,-14)
    すみません、>>723で嘘書いてしまいました。
    defface の後の defvar を省略すると face が有効にならないみたいです。
    これって何故なんでしょうか?
    725 : 名無しさん@お腹 - 2005/12/21(水) 00:51:58 (+3,-30,+0)
    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 : 名無しさん@お腹 - 2005/12/21(水) 07:12:14 (+3,-29,-21)
    > そういう意味で、paren.elなんかはfaceを直接overlayしているので、
    > faceの色や字体を変えたいときは、set-face-x系を使って
    > faceの設定を上書きしてあげないといけないね。

    それで何か不都合あんの?
    727 : 名無しさん@お腹 - 2005/12/22(木) 00:55:23 (+62,+29,-20)
    ほとんどの人は上書きしてしまって不都合ないと思いますよ。
    起動後にfaceを変えるってあまりないですよね。

    でもまぁ、setqでちょこちょこ変えたい人には箱があったほうがいいですし、
    それくらいのレベルだと思います。
    728 : 名無しさん@お腹 - 2006/01/10(火) 20:35:07 (+62,+29,-63)
    はじめまして。Emacs LISPの勉強をしている高校生です(はじめたばかりです。すみません)。
    カレントバッファに対して文字列の検索や置換をする関数は見つけられたのですが、
    文字列そのものを引数にとるような同様の関数はありますでしょうか。
    具体的には、ある入力文字列から、決められた文字を取り除きたいのです。
    729 : 名無しさん@お腹 - 2006/01/10(火) 21:12:04 (+5,-29,-14)
    M-x apropos
    その程度で質問してるようじゃ先が思いやられるよ
    730 : 名無しさん@お腹 - 2006/01/10(火) 21:40:19 (+57,+29,-12)
    なんでそんなに見下した態度取るんだ?
    高校生か、がんばれよーでいいじゃん。
    731 : 名無しさん@お腹 - 2006/01/10(火) 21:43:34 (+4,-30,-23)
    replace-regexp-in-string とかでええのか?
    または string-match して substring してみたり適当に
    732 : 名無しさん@お腹 - 2006/01/10(火) 23:25:20 (-1,-29,+0)
    read-string が知りたかったりして。
    733 : 名無しさん@お腹 - 2006/01/11(水) 00:57:18 (-1,-29,-16)
    オレも最初 read-from-minibuffer かと思った
    734 : 名無しさん@お腹 - 2006/01/11(水) 02:34:19 (+7,-29,-61)
    >731
    replace-regexp-in-string、これです!ありがとうございました。
    >729
    今後はしばらく"M-x apropos"で調べていけそうです。Emacs LISPのこういうインタラクティブな感じがとっても好きです。
    しょーもない質問をしてすみませんでした。そしてありがとうございました。
    その他の方々もありがとうございました!

    735 : 名無しさん@お腹 - 2006/01/12(木) 18:54:34 (+7,-30,-52)
    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を入れてたのをすっかり忘れてた。
    ちゃんと使っていればそのような不満はあまり感じなかったかもしれない。
    736 : 名無しさん@お腹 - 2006/01/12(木) 20:01:00 (+0,-29,-12)
    >>735
    Meadow meme だかに似たようなのがあったね。
    737 : 名無しさん@お腹 - 2006/01/12(木) 20:14:23 (+36,+18,-2)
    738 : 名無しさん@お腹 - 2006/01/12(木) 21:14:55 (+5,-30,-20)
    >>734
    まあマジレスすると mode-info 入れとけ。
    http://www.namazu.org/~tsuchiya/elisp/mode-info.html
    739 : 名無しさん@お腹 - 2006/01/13(金) 03:30:34 (+61,+29,-39)
    行の中で最初の「空白/タブではない文字」にカーソルを移動したいんですが、どうすればいいですか?
    740 : 名無しさん@お腹 - 2006/01/13(金) 08:22:49 (+39,-29,-3)
    >>739
    see back-to-indentation
    741 : 名無しさん@お腹 - 2006/01/13(金) 09:31:16 (+61,+27,+1)
    >>740
    ありがとう。助かりました。
    742 : 名無しさん@お腹 - 2006/01/15(日) 03:13:49 (+3,-29,-53)
    >>738
    734じゃないけど、mode-info は最新の CVS の Emacs だとコンパイルできない
    ようです。過去にこのスレでパッチが出ていたんだけど、もう古くなっていま
    した。。。最新のパッチがあれば投下して頂けないでしょうか?
    743 : 名無しさん@お腹 - 2006/01/16(月) 13:00:13 (+3,-30,-61)
    url.el の使い方が分からない…。

    (let ((url (url-generic-parse-url "http://www.example.org/")))
        (url-retrieve url (lambda ()
                            (url-store-in-cache (current-buffer)))))
    744 : 名無しさん@お腹 - 2006/01/16(月) 13:00:47 (+57,+29,-26)
    途中送信してしまった…。

    これでキャッシュの保存をしてくれるかと思ったけどしてくれなかった。
    どうすればいいんだ???
    745 : 名無しさん@お腹 - 2006/02/04(土) 21:09:59 (+103,+1,-8)
    http://d.hatena.ne.jp/teny/20060204#p1

    こういうのを見ると、emacs lispも技術の途切れて
    壊滅的状態にあると思わざるを得ない。
    746 : 名無しさん@お腹 - 2006/02/04(土) 22:05:10 (+66,+29,-5)
    >>745
    おまえの日本語も技術の途切れて壊滅状態だな。
    747 : 名無しさん@お腹 - 2006/02/04(土) 22:17:34 (+70,+29,-6)
    >>745
    その題目って、何度も再発明されてるな。
    748 : 名無しさん@お腹 - 2006/02/04(土) 22:36:05 (+57,+29,-18)
    単に再発明した人がいるというだけなのにその帰結かよ。
    749 : 名無しさん@お腹 - 2006/02/04(土) 22:47:05 (+57,+29,-5)
    っていうか、バグバグじゃん。ちゃんとテストしてないな。
    750 : 名無しさん@お腹 - 2006/02/04(土) 23:08:53 (+57,+29,-3)
    まぁblogはある意味ここよりもゴミが多かったりするし。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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