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 ではひとつ、コード中心の熱いバトルをよろぴく。
664 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 02:29:21 ] 22 で確認 (defun kill-ring-save-visible (begin end) (interactive "r") (let ((r '()) (p begin) n) (while (and (setq n (next-single-property-change p 'invisible nil end)) (> n p)) (unless (get-text-property p 'invisible) (push (buffer-substring p n) r)) (setq p n)) (kill-new (apply #'concat (nreverse r)))))
665 名前:659 mailto:sage [2005/10/29(土) 14:06:12 ] >>664 san やっぱり自分の環境ではその関数も全く機能しません。 emacs-version => GNU Emacs 22.0.50.1 (i386-mingw-nt5.1.2600) of 2005-07-11 on A208752
666 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 18:56:32 ] next-single-property-change が nil を返した時の処理が抜けてるせいかな。 (defun remove-invisible (s) (interactive "r") (let ((r '()) (p 0) n) (while (and (setq n (next-single-property-change p 'invisible s)) (> n p)) (unless (get-text-property p 'invisible s) (push (substring s p n) r)) (setq p n)) (unless (get-text-property p 'invisible s) (push (substring s p) r)) (apply #'concat (nreverse r)))) (remove-invisible (concat "a" (propertize "b" 'invisible 'test1) (propertize "c" 'invisible 'test2) "d")) => "ad" になる? GNU Emacs 22.0.50.2 (i386-unknown-freebsd6.0, X toolkit, Xaw3d scroll bars) of 2005-10-29 だと期待どおりの動作をするが。
667 名前:659 mailto:sage [2005/10/29(土) 20:35:40 ] >>666 はい、今評価してみた所、 "ad" になりました。 >>662 に追加: すみません、肝心な関数を貼るのが抜けていました。 >>662 の側に置いてあげて下さい。 (defun point-invisible-p () (line-move-invisible-p (point))) ↑でも使用してある通り、 `line-move-invisible-p' であれば invisible をうまく見つける ことができるのですけどね。。。 (defun line-move-invisible-p (pos) "Return non-nil if the character after POS is currently invisible." (let ((prop (get-char-property pos 'invisible))) (if (eq buffer-invisibility-spec t) prop (or (memq prop buffer-invisibility-spec) (assq prop buffer-invisibility-spec)))))
668 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 23:16:07 ] もしかしてこーゆーこと? (defun invisible-p (position &optional object) (let ((invisible (get-char-property position 'invisible object))) (if (eq buffer-invisibility-spec t) invisible (catch :result (dolist (prop (if (consp invisible) invisible (list invisible))) (when (or (memq prop buffer-invisibility-spec) (assq prop buffer-invisibility-spec)) (throw :result t))))))) (defun kill-ring-save-visible (begin end) (interactive "r") (let ((r '()) (p begin) n) (while (and (setq n (next-single-char-property-change p 'invisible nil end)) (> n p)) (unless (invisible-p p) (push (buffer-substring p n) r)) (setq p n)) (unless (invisible-p p) (push (buffer-substring p end) r)) (kill-new (apply #'concat (nreverse r)))))
669 名前:659 mailto:sage [2005/10/30(日) 05:21:17 ] >>668 そうそれです。完璧に動作しました! しかも速度も高速ですね。 buffer-invisibility-spec が鍵を握るのはわかって いたのですが、今コードを解釈する時間がない為、連絡だけさせていただきました。
670 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 06:24:23 ] >>659 で言っていたうまく機能しないと言うのは見えているものまで一緒に消えちゃっ ていたと言う事でOK?
671 名前:670 mailto:sage [2005/10/30(日) 06:34:20 ] 少しわかりずらいな。 つまり、 (with-current-buffer (window-buffer (display-buffer (get-buffer-create "*test*"))) (erase-buffer) (add-to-invisibility-spec '(test1 . t)) (insert (concat "a" (propertize "b" 'invisible 'test1) (propertize "c" 'invisible 'test2) "d"))) をした結果の *test* buffer の中身に対して kill-ring-save-visible を実行した結果が => "acd" となって欲しかったという事でいい?
672 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 19:48:20 ] もしかすると text-property -> char-property で overlay が認識される ことで解決したってことかも。 何にせよ、Emacs 22 だからというより設定のせいっぽいが。 (デフォルトでは buffer-invisibility-spec は 22 でも t だし invisible な overlay も存在しない)
673 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 22:50:13 ] あるソフトウェア独自の簡単なスクリプト言語に対応するメジャーモードを作りたいのですが、 コメント部の色をかえるにはどうしたらいいのでしょうか? コメントはC言語の /* が @cs に、*/ が @ce になったような感じです。複数行可。 comment-start と comment-endにそれぞれ値をセットするばいいだけというわけではないのでしょうか? よろしくお願い致します。
674 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/31(月) 11:27:48 ] Emacs Lisp神社
675 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 02:51:02 ] >>673 それっぽく色を付けるならこんな感じかな。 modify-syntax-entry でコメント開始/終了文字の1文字目と2文字目を指定する。 実は Emacs で3文字以上からなるコメント文字を扱うのは結構面倒臭い。 どこかにお手軽に扱える elisp が転がってないかな? (defvar hoge-mode-syntax-table nil) (unless hoge-mode-syntax-table (setq hoge-mode-syntax-table (make-syntax-table)) (modify-syntax-entry ?@ ". 13" hoge-mode-syntax-table) (modify-syntax-entry ?c ". 24" hoge-mode-syntax-table)) (defvar hoge-font-lock-keywards nil) (defun hoge-mode () (interactive) (kill-all-local-variables) (setq comment-start "@cs") (setq comment-end "@ce") (set-syntax-table hoge-mode-syntax-table) (set (make-local-variable 'font-lock-defaults) '(hoge-font-lock-keywards)) (setq mode-name "Hoge") (setq major-mode 'hoge-mode))
676 名前:675 mailto:sage [2005/11/01(火) 03:17:06 ] 強引にやってみた。 複数行にマッチするのは font-lock で激しくすすめられてないっぽいけど、おーけー としとく。 実は hoge-font-lock-comment-matcher は内部で comment-start, comment-end を使う ようにすると色んな mode で使えて嬉しいかもしれないとか思った。 (defvar hoge-font-lock-keywards nil) (defvar hoge-font-lock-syntax-keywords '((hoge-font-lock-comment-matcher (1 "!") (2 "!")))) (defun hoge-font-lock-comment-matcher (limit) (let (beg end) (when (re-search-forward "@cs" limit t) (setq beg (cons (copy-marker (match-beginning 0)) (copy-marker (match-end 0)))) (when (re-search-forward "@ce" limit t) (setq end (cons (copy-marker (match-beginning 0)) (copy-marker (match-end 0)))) (set-match-data (list (car beg) (cdr end) (car beg) (cdr beg) (car end) (cdr end))) t)))) (defun hoge-mode () (interactive) (kill-all-local-variables) (setq comment-start "@cs") (setq comment-end "@ce") (set (make-local-variable 'font-lock-defaults) '(hoge-font-lock-keywards)) (set (make-local-variable 'font-lock-syntactic-keywords) hoge-font-lock-syntax-keywords) (setq mode-name "Hoge") (setq major-mode 'hoge-mode))
677 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 21:34:42 ] 非同期にHTTPサーバとXMLなどのデータをやりとりする仕組みで、 ユーザイベントに動的に反応して、半リアルタイムに挙動を変える ようなUIのelispって何かある?
678 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 21:46:00 ] ajax ですか?
679 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 23:08:31 ] emacs-w3m
680 名前:677 mailto:sage [2005/11/02(水) 13:49:44 ] >>678 Ajaxのelisp版を想定中。alax? aelax? >>679 少なくとも現状のままでは、「非同期」ではなく動的ではないと思う。
681 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 14:24:42 ] slime
682 名前:名無しさん@お腹いっぱい。 [2005/11/12(土) 21:34:51 ] リストを連結する関数は何ですか。 RubyでいうとArray#joinです。
683 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/12(土) 22:39:40 ] >>682 mapconcat
684 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 14:10:37 ] re-search-forward で「カーソルのある位置から」マッチさせることって出来ないの? (looking-at REGEXP) 使ってみたけど、(match-string 0) 使ったら (args-out-of-range 0 0) って言われた。
685 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 18:23:41 ] (with-temp-buffer (insert "hoge") (goto-char (point-min)) (and (looking-at "hoge") (match-string 0))) => "hoge"
686 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/17(木) 00:03:45 ] 普通にre-search-forwardするのと、事前にチェックした(point)を組み合わせる。
687 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/17(木) 03:08:58 ] save-excursion と save-current-buffer の使い分けはどうすればいい?
688 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/17(木) 04:04:48 ] pointやmarkをどうするか次第
689 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 11:51:29 ] faceを少しだけ明るく(もしくは暗く)する関数ってないですか? (color-values "color-name")した値を加工して、そのままset-face-backgroundしようとしたら stringpじゃねぇよボケ、と言われました。何か良い方法はないでしょうか。
690 名前:689 mailto:age [2005/11/18(金) 11:51:57 ] 質問age
691 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 12:18:02 ] 28秒
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 12:34:04 ] なんで実際に書いたコードを隠すんだ? stringp云々って根本的におかしなことやったとしか思えないんだけど
693 名前:688 mailto:sage [2005/11/18(金) 13:31:54 ] >>692 根本的におかしいことやってるのは分かってるので、何か良い方法を教えてほしい、 という質問なんですが。 (defun more-bright-color (color) (mapcar '(lambda (n) (* n * 1.1)) (color-values color)) ) (make-face 'brightly-face) (set-face-background 'brightly-face (more-bright-color "khaki")) > Debugger entered--Lisp error: (wrong-type-argument stringp (65535 65021 39578))
694 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 13:42:01 ] >>693 色は、"#00aaff"みたいにすればいいんだよ。
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 13:46:07 ] >>693 brighter
696 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 14:11:42 ] これでいいかな。 (defun more-bright-color (color) (apply #'format (append '("#%02x%02x%02x") (mapcar '(lambda (n) (floor (min 255 (/ (* n 1.1) 256)))) (color-values color)))))
697 名前:688 mailto:sage [2005/11/18(金) 14:16:40 ] >>694 なるほど。 >>696 今手元で同じような関数が出来た。目的を達成することが出来ました。 ありがとう。
698 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 15:45:49 ] >>696 brighter だっつってんだろが。 "more bright" なんて英語通じないっつーの
699 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 16:01:04 ] 不自然だと感じるけど通じるよ
700 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 16:05:38 ] >>698 "brighter" とだけレスされても日本語通じないっつーの。 「brighter だと英語としておかしい」とキチンと書けばいいのに。
701 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 16:31:47 ] >700 よっぽど悔しかったんだね
702 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 16:41:35 ] >>701 おまいも大人げないよ スレが荒れるからヤメれ
703 名前:696 mailto:sage [2005/11/18(金) 16:45:33 ] >>696 appendいらなかったな。 >>701 >>700 は俺じゃないぞ。
704 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 09:49:47 ] Perlのjoinにあたる関数ってないですか。今はこうしてます。 (defun join-string (s seq) (reduce '(lambda (x y) (concat x s y)) seq))
705 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 09:59:01 ] mapconcatか。reduceなんてシラネ。
706 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 19:24:37 ] 例えば emacs yarou hello emacs kun to lisp yarou のようなラインがバッファ内にあったと仮定して、 M-x foo を実行すると Line containing: というプロンプトがミニバッファにでて、 emac li <RET> と打ちこむと、 "emac" と "li" のサブストリングを含むライン (この場合は 2行目) を occur などでマッチする関数 foo がほしいのですが。。。作って。。。
707 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 21:27:04 ] 正規表現でいいじゃん
708 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 21:38:21 ] 正規表現でいいだろう
709 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 22:35:38 ] 正規表現でいいような気がする
710 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 22:42:25 ] 正規表現でいいと思われ。
711 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 22:48:41 ] 正規表現じゃ大変だ
712 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 23:15:19 ] 正規表現ってのはどうだ
713 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 23:19:25 ] もういいから。
714 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/23(水) 00:11:44 ] もういいよ。
715 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/23(水) 02:36:12 ] もういいな。
716 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/28(月) 00:18:36 ] (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 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 13:47:33 ] ライブラリのリビジョンに応じて設定を変えたい場合なんかに便利かなと (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 ] 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 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/14(水) 05:34:22 ] (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 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 00:31:01 ] >>719 できました。便利な属性(?)があるんですね。
721 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 01:28:18 ] どんなタイミングでevalされるの?
722 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/20(火) 08:53:44 ] 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 mailto:sage [2005/12/20(火) 09:04:41 ] それで、いくつか作ってて疑問な点があったので聞いてみたいのですが * 123行目で SYNTAX-ALIST 引数に dircolors-mode-syntax-alist を使うと (直前でコメントアウトしてあるコードのことです) font-lock が発動した際に型が違うと言われてしまうのですが、これは何故なんでしょうか? * defface で face を定義した後、同名の変数を defvar する操作は必須ですか? 自分の環境では省略しても問題ないように見えるんですが、ネットで見掛けるコードでは 何故かわざわざ defface, defvar を並べて書いてるのでちょっと不安です。 必要なのであれば、その理由も教えて頂けるとうれしいです。 というかもしかして face と普通の変数ってスコープが違ったりしますか?
724 名前:722 mailto:sage [2005/12/20(火) 09:08:14 ] すみません、>>723 で嘘書いてしまいました。 defface の後の defvar を省略すると face が有効にならないみたいです。 これって何故なんでしょうか?
725 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/21(水) 00:51:58 ] 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 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/21(水) 07:12:14 ] > そういう意味で、paren.elなんかはfaceを直接overlayしているので、 > faceの色や字体を変えたいときは、set-face-x系を使って > faceの設定を上書きしてあげないといけないね。 それで何か不都合あんの?
727 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 00:55:23 ] ほとんどの人は上書きしてしまって不都合ないと思いますよ。 起動後にfaceを変えるってあまりないですよね。 でもまぁ、setqでちょこちょこ変えたい人には箱があったほうがいいですし、 それくらいのレベルだと思います。
728 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 20:35:07 ] はじめまして。Emacs LISPの勉強をしている高校生です(はじめたばかりです。すみません)。 カレントバッファに対して文字列の検索や置換をする関数は見つけられたのですが、 文字列そのものを引数にとるような同様の関数はありますでしょうか。 具体的には、ある入力文字列から、決められた文字を取り除きたいのです。
729 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 21:12:04 ] M-x apropos その程度で質問してるようじゃ先が思いやられるよ
730 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 21:40:19 ] なんでそんなに見下した態度取るんだ? 高校生か、がんばれよーでいいじゃん。
731 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 21:43:34 ] replace-regexp-in-string とかでええのか? または string-match して substring してみたり適当に
732 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 23:25:20 ] read-string が知りたかったりして。
733 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 00:57:18 ] オレも最初 read-from-minibuffer かと思った
734 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 02:34:19 ] >731 replace-regexp-in-string、これです!ありがとうございました。 >729 今後はしばらく"M-x apropos"で調べていけそうです。Emacs LISPのこういうインタラクティブな感じがとっても好きです。 しょーもない質問をしてすみませんでした。そしてありがとうございました。 その他の方々もありがとうございました!
735 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 18:54:34 ] 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 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 20:01:00 ] >>735 Meadow meme だかに似たようなのがあったね。
737 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 20:14:23 ] homepage3.nifty.com/oatu/emacs/misc.html これかな?
738 名前:名無しさん@お腹いっぱい。 [2006/01/12(木) 21:14:55 ] >>734 まあマジレスすると mode-info 入れとけ。 ttp://www.namazu.org/~tsuchiya/elisp/mode-info.html
739 名前:名無しさん@お腹いっぱい。 [2006/01/13(金) 03:30:34 ] 行の中で最初の「空白/タブではない文字」にカーソルを移動したいんですが、どうすればいいですか?
740 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 08:22:49 ] >>739 see back-to-indentation
741 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 09:31:16 ] >>740 ありがとう。助かりました。
742 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/15(日) 03:13:49 ] >>738 734じゃないけど、mode-info は最新の CVS の Emacs だとコンパイルできない ようです。過去にこのスレでパッチが出ていたんだけど、もう古くなっていま した。。。最新のパッチがあれば投下して頂けないでしょうか?
743 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/16(月) 13:00:13 ] url.el の使い方が分からない…。 (let ((url (url-generic-parse-url "www.example.org/ "))) (url-retrieve url (lambda () (url-store-in-cache (current-buffer)))))
744 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/16(月) 13:00:47 ] 途中送信してしまった…。 これでキャッシュの保存をしてくれるかと思ったけどしてくれなかった。 どうすればいいんだ???
745 名前:名無しさん@お腹いっぱい。 [2006/02/04(土) 21:09:59 ] d.hatena.ne.jp/teny/20060204#p1 こういうのを見ると、emacs lispも技術の途切れて 壊滅的状態にあると思わざるを得ない。
746 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 22:05:10 ] >>745 おまえの日本語も技術の途切れて壊滅状態だな。
747 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 22:17:34 ] >>745 その題目って、何度も再発明されてるな。
748 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 22:36:05 ] 単に再発明した人がいるというだけなのにその帰結かよ。
749 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 22:47:05 ] っていうか、バグバグじゃん。ちゃんとテストしてないな。
750 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 23:08:53 ] まぁblogはある意味ここよりもゴミが多かったりするし。
751 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 23:32:41 ] しかしまあはてなでEmacsはやりだしたってので それじゃ俺も使ってみるかってな人間が増えるのはいいことだ。 うざい質問も増えるかもしれないけど そのうち育ってステキなパッケージ作ってくれるやもしれんし。
752 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 23:43:21 ] バグを見つけたなら、指摘コメントしてやるといいよ。
753 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/06(月) 22:59:07 ] >6のtexinfoが {}のエスケープが無くてmakeinfoできないんだけど、 俺だけ?パッチ作ったんだけど、作者に送った方が良い?
754 名前:名無しさん@お腹いっぱい。 [2006/02/07(火) 08:26:36 ] >>745 これを見ていろいろ調べていて、 「[ANNOUNCE] Emacs modules for Perl programming」 www.uni-giessen.de/faq/archiv/perl-faq.emacs-lisp-modules/msg00000.html というドキュメントを見つけて(おのれ、今までこれの存在を知らなかった) 「Emacs Tiny Tools Project hoimepage」 tiny-tools.sourceforge.net/ というものの存在を知ってガクゼンとしました。 通常、いろいろな人が作っているのをかき集めて組み合わせて実現して いる機能をそっくり提供する、別系統のツールのセットですよね。 このTiny Toolsを使っている人っています?
755 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/07(火) 16:15:09 ] 使ってはいないけど、たまに参考にしたり。 コード、ドキュメント共に。
756 名前:名無しさん@お腹いっぱい。 [2006/02/09(木) 12:31:30 ] (standard-display-ascii ?@ [?#]) を評価すると,(当然ですが) モード関係なしで全ての @ が # で表示されてしまいます. ここで,上の動作をある特定のモードのみでやるにはどうすればよいのでしょうか?
757 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/09(木) 17:43:03 ] (make-local-variable 'display-table)
758 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/10(金) 00:07:01 ] >>757 (make-local-variable 'buffer-display-table) だろが
759 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/02(木) 18:50:16 ] mcomplete を使っている諸君! 例えば、例えばだ… M-x describe-function を実行し、 mcomplete の [Substring match] に向かって process-coding-system と入力するとエラーが出るよな? ELisp 勉強中の俺が、 恥を覚悟でパッチを作ってみたんだ。 あってるかな? --- mcomplete.el +++ mcomplete.el @@ -1281,8 +1281,10 @@ (tails-alist (mapcar #'(lambda (item) (string-match regexp item) (list (substring item (match-end 0)))) - completions))) - (concat str (try-completion "" tails-alist))))))) + completions)) + (comp (try-completion "" tails-alist)) + (tailstr (if (eq comp t) "" comp))) + (concat str tailstr))))))
760 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/02(木) 21:02:30 ] うー、そのパッチはとてもただしいのだが、 ここにはってしまったためにさいようできません。。。
761 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/02(木) 21:47:55 ] (ノ∀`)アチャ-
762 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/02(木) 22:49:07 ] マルチライセンスで別のところにも貼ればいいんでは。
763 名前:759 mailto:sage [2006/03/02(木) 23:14:08 ] GPL に違反してしまうのか? パッチという形式をとっているからいけないのか? 無知は罪だ。勉強してから出直します。ごめん。
764 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 02:53:55 ] navi2ch スレでもそういう認識になってるけど、 例えば匿名で運営してる自分のウェブページに掲載したらどうなるの? 初出の出所が不明だから不許可になる? そもそも著作権侵害は親告罪だし、 メーリングリストでのパッチだって完全な出所証明は非常に難しいし、 出所が証明できたからってどっかからぱくってないことは証明できないし、 採用者の了見しだいでなんとでもなりそうな気がするよ。