- 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 ではひとつ、コード中心の熱いバトルをよろぴく。
- 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 スレでもそういう認識になってるけど、
例えば匿名で運営してる自分のウェブページに掲載したらどうなるの? 初出の出所が不明だから不許可になる? そもそも著作権侵害は親告罪だし、 メーリングリストでのパッチだって完全な出所証明は非常に難しいし、 出所が証明できたからってどっかからぱくってないことは証明できないし、 採用者の了見しだいでなんとでもなりそうな気がするよ。
- 765 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 04:18:16 ]
- >>764
出所不明とかそういう問題じゃないよ。 2ch だと、投稿時にいくつかの項目に対して同意を求められるでしょ。 この中に、運営が指定する第三者に対して、一切の権利を許諾しないって項目がある。 これは GPL に矛盾するから、これに同意して 2ch に投稿されたものは、 GPL ソフトウェアにマージできないの。 自分のウェブページとかの場合なら、 GPL に矛盾する規定をしてなければ問題ない。 だから navi2ch スレとかだと、そういう規定がない Wiki とかを利用してる。
- 766 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 04:35:24 ]
- 便乗質問させてください。
すれ違いかと思いつつ、前から聞いてみたかったので書きます。 gzip & base64 とかでencodeして張った場合、どうなるんでしょう。
- 767 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 07:18:24 ]
- GPL と 2ch の規約は矛盾するだろうけど、
じゃあ、そもそもが GPL のコードを 2ch に張るとどうなるのかと考えると、 それは GPL 違反ではあるが、 張ったがために 2ch がコードの利用の権限を持つようになるわけじゃないよね。 ということは、本人が GPL として作ったコードを 2ch に張った場合、 張った行為は GPL あるいは 2ch 利用規約違反だけど、 張っただけで 2ch のものになって GPL として使えなくなるわけではないんでは?
- 768 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 09:22:24 ]
- 2ch にあるパッチを当てた物を GPL として配布してもかまわないと思う人は
自分で配布すればいいじゃないか。 片手間で開発してるような場合、GPL 違反だと言ってる連中がいるってだけで 面倒そうだから取り込むのはやめようって気になるんじゃないかな。
- 769 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 09:46:09 ]
- >>766
貼る形式の問題ではない。
- 770 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 10:39:04 ]
- 思うんなら自分でやればっていわれても、話にならないな。
まあスレ違いだしやめよう。
- 771 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 12:04:01 ]
- 誰かが別の場所でGPLで公開してるパッチを第三者が勝手に
2chに貼った場合とか
- 772 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 12:08:04 ]
- >>771
それのどこが問題?
- 773 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 12:18:33 ]
- そのパッチを本人がプロジェクトに寄付する気になったとき
とりこめるかどうか
- 774 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 12:46:56 ]
- 第三者が何かしたからといって、パッチ作製者の権利が失われるわけないじゃん。
そうでないなら、ML とかに流れてるパッチを 2ch に転載しまくるだけで そのプロジェクトの開発を妨害できちゃうよ。
- 775 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 13:08:30 ]
- 匿名サイトに置いてあるパッチを2chに貼った場合、
本人によるものか別の人によるものかも分かんねーしな
- 776 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 13:48:32 ]
- 強いて言えばパッチの作者に
「ヘンなシバリのある掲示板に勝手に貼るなよ」 って文句言われる可能性はあるな。
- 777 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 14:20:49 ]
- 文句言われる言われないはどっちでもいい。
問題はそのパッチをマージする事が可能かどうかだ。
- 778 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 14:23:41 ]
- マージするかどうかは
開発元とパッチ作者との間の問題。 2ch に貼るのは 2ch 管理人と投稿者とパッチ作者の間の問題。 両者に関係はない。
- 779 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/04(土) 00:28:59 ]
- 続きはこちらで
ライセンスあれこれ pc8.2ch.net/test/read.cgi/unix/1032702590/
- 780 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/09(木) 19:58:10 ]
- ある変数に EUC-JP や Shift_JIS などの文字コードの文字列が入っている状態で、
その文字コードを UTF-8 に変換したい場合は、どうしたら良いのでしょうか?
- 781 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/09(木) 20:08:35 ]
- ccl
- 782 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/10(金) 22:12:33 ]
- >>781
ありがとう。 でも、全然使い方が分からないわ orz
- 783 名前:名無しさん@お腹いっぱい。 [2006/03/21(火) 09:49:25 ]
- こんなの見つけたお
ttp://www.okisoft.co.jp/esc/lecture/emacslisp.pdf 知識ゼロからのとっかかりにはいいんではないかと思う
- 784 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/21(火) 13:12:22 ]
- ほかにも「やさしい Lisp の作り方」とかあるね
ttp://www.okisoft.co.jp/esc/whitepaper.html あと、これは一部で有名だけど「美人プログラミングスタイル」とか
- 785 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 10:55:02 ]
-
以下の機能をmajar-modeに実装する方法でつまづいています。 「一行につき全角文字20文字まで、それを越えたら自動的に折り返して次の行へ」 行幅を全角20文字で整形したいだけなのですが・・・ truncate**系 とか fill-** 系とかの変数をうまく使えばいいのだろうかと試行錯誤しているのですが、錯誤ばかりで自滅気味です。わたしアタマワルイ。 だれか助けてー。
- 786 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 13:19:47 ]
- >>785
先に決め事が必要になる。 (1) 半角文字の扱い (2) 空白文字の処理 (3) 禁則処理(行頭、行末) まともにやると、かなりめんどい。
- 787 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 13:39:20 ]
- >>785
単に (set-fill-column 40) (auto-fill-mode t) って話? >>786 みたいな問題もあるし 仕様を見直した方がいい気がする。
- 788 名前:ゼウス [2006/04/03(月) 13:19:19 ]
-
おい、お前等
- 789 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/12(水) 01:27:25 ]
- CやC++ファイルの編集での普通(gnuのモード)のインデントで、
字下げが少ない時はスペースでインデントしてくれるんですが、 tab幅以上の字下げの時にtabでインデントしてしまい困ってます。 これをスペースでインデントするようにするにはどうしたら良いでしょうか。
- 790 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/12(水) 02:11:47 ]
- (set-variable 'indent-tabs-mode nil)
(setq-default indent-tabs-mode nil) …10年以上使ってるけどこれでいいかな
- 791 名前:名無しさん@お腹いっぱい。 [2006/04/12(水) 08:06:40 ]
- eshell 上で mysql の返答 (standard output) がしっかり
表示されるようにするにはどうソースを修正したらいいか教えろ お前等ならわかるだろ
- 792 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 04:06:36 ]
- やっぱわかんねーのか。。。
eshell のソースはかなり複雑だから仕方ねーのかもな
- 793 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 08:33:53 ]
- わかるだろうけどおまえのためにわざわざ調べる気にはならんってだけ。
- 794 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 08:48:40 ]
- >>793
お前自分の言ってる事矛盾してる 知ってんだったら調べる必要ないだろが
- 795 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 09:05:09 ]
- 調べればわかるんだろ
- 796 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/11(木) 11:34:11 ]
- 各種*.confみたいな
項目: 要素 的設定ファイルを読み込んでalistに溜め込んで行くようなのを考えてるんですが なかなかすっきりしません。 一項目一要素でとりあえずいいんですが、 やっぱりなにかしらのバッファで開いてbuffer-substringしていくしかないんでしょうか。
- 797 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/11(木) 23:30:31 ]
- しかないっつーかEmacsのファイル入力はバッファで開くのが普通なんだが。
- 798 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/11(木) 23:33:22 ]
- バッファで開かないでファイルをlispでストリームとして扱う方法ってあるの?
数百メガの巨大ファイルをいじるとき便利っぽいけど。
- 799 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/12(金) 04:55:14 ]
- tmpなバッファにinsert-file-contents。
find-file-noselectするよりは処理が軽いそうな
- 800 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/12(金) 05:10:22 ]
- >>798
Common Lisp な xyzzy ならできるが、Emacs は不可能。
- 801 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/12(金) 08:14:54 ]
- xyzzy は Common Lisp じゃない。cl ですら実装されてるのに
(mapcar (lambda (x) (typecase x (integer "整数") (string "文字列") (t "その他"))) '(10 3.3 "ほげ")) こんなのが動かないし。
- 802 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/13(土) 20:51:42 ]
- >>801
それだけ?他にもあるでしょ。おせーて。
- 803 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/14(日) 11:40:22 ]
- -batch
で別個に動かすのはどうでしょう?
- 804 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/14(日) 14:05:01 ]
- >>798
insert-file-contents系で分けて読むとか、catあたりをstart-processしてfilterで読むとか。 テキストの場合マルチバイト文字の切れ目の処理が必要になるとちょっといやらしいかも
- 805 名前:名無しさん@お腹いっぱい。 [2006/06/24(土) 12:07:52 ]
- >>801
適当だけど。 (defmacro?typecase?(check?&rest?type-list) ??(let?((#1=#:case)) ???????(dolist?(item?(reverse?type-list)?#1#) ?????????(push?(if?(eq?(car?item)?t) ???????????????????`(t?,(cadr?item)) ?????????????????`((subtypep?(type-of?,check) ?????????????????????????????',(car?item)) ?????????????????????????????,(cadr?item))) ???????????????#1#)) ????(cons?'cond?#1#)))
- 806 名前:805 [2006/06/24(土) 12:12:09 ]
- あらら。。もう一回。
(defmacro typecase (check &rest type-list) (let ((#1=#:case)) (dolist (item (reverse type-list) #1#) (push (if (eq (car item) t) `(t ,(cadr item)) `((subtypep (type-of ,check) ',(car item)) ,(cadr item))) #1#)) (cons 'cond #1#)))
- 807 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/30(水) 05:12:50 ]
- 未編集のリードオンリーのバッファ上で、何かあるタイミングで、
recenter すると変更フラグが立つことがある。 という現象に遭遇した人いないですか、とか聞いてみようと思った。 が、recenter の前に、(sit-for 0) を入れたら解決したみたい。
- 808 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/15(日) 22:07:25 ]
- Emacs21とか22とかになると、デフォルトでいろんな機能が
組込まれてしまったので (occurとかgrepとか、検索もパワーアップしたり)、 新しい機能を作る機会が減って、最近このスレッドが寂しいのかなぁ、 などと思ったりした。 まとめサイトや紹介サイトも増えたしね。 ネタが出てくることを願って期待sage。
- 809 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/21(土) 21:51:36 ]
- ちまちまと一年以上かけて作ってきたが、とうとうやる気が無くなったので晒すテスト。
使い方はソース読んでくれ。 ttp://grinocat.googlepages.com/yawn.el
- 810 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/21(土) 23:01:47 ]
- ネ(・∀・)申!
- 811 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/22(日) 04:18:27 ]
- >>809
すげぇ。すげぇよ、あんた。
- 812 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/27(金) 01:00:59 ]
- w3みたいなもの?
動かせない(´;ω;`)
- 813 名前:<sage> [2006/11/06(月) 19:07:50 ]
- この板の趣旨とは、ちょっと内容がずれてますが、教えて下さい。
shell-command-to-string 関数を使って、perl を呼び出そうとしていますが、 日本語引数を渡すとどこの段階でか分かりませんが、文字がばけます。 (shell-command-to-string "c:/Perl/bin/perl.exe e:/work/0my/scripts/test.pl てすと表示") で、「test.pl」 では、 my $outfile = "e:/work/0my/scripts/test.txt"; my $out; open ($out, "> $outfile") || die ("couldn't open $outfile to write into."); print ($out $ARGV [0]); close($out); で、"test.txt" を shift_jis とかで開いても化けています。 DOS 上で日本語引数は、問題なく処理されるので、Elisp から、 perl に渡されるときに壊れると解釈していますが、どうすればいいのでしょう?
- 814 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/06(月) 21:51:47 ]
- >>813
> perl に渡されるときに壊れると解釈していますが、どうすればいいのでしょう? 表の後に\を付ける、とか?
- 815 名前:sage [2006/11/07(火) 00:20:27 ]
- >>814
レスサンクス。 表のあとに\マークってことは、「てすと表\示」って感じにですか? 日本語文字は何を入れてもだめなので、それでもだめだと思います。 気になるのは、エンコーディングがどうやって認識されるかです。 elisp -> shell -> perl と引数として指定された文字列が渡されると思いますが、 このプログラム間のエンコードは、どうやって指定するのかが、よく分かりません。 おそらく日本語 OS 下では、デフォルトが shift_jis になると思いますが、 これは、elisp からシェルの間も同じかな?
- 816 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/07(火) 00:31:14 ]
- process-coding-system とか coding-system-for-write とか?
- 817 名前:名無しさん@お腹いっぱい。 [2006/11/07(火) 00:45:40 ]
- >>816 さんありがとう
(setq coding-system-for-write 'sjis) でうまくいきました。m(_ _)m
- 818 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/07(火) 00:48:11 ]
- >>817
letで束縛 ttp://www.fan.gr.jp/~ring/doc/elisp_20/elisp_33.html#SEC542
- 819 名前:名無しさん@お腹いっぱい。 mailto: [2006/11/07(火) 01:04:52 ]
- >>818
この変数に対して値をグローバルに設定すべきではないということですね。 了解、let を使います。
- 820 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/13(水) 14:58:06 ]
- emacs上でschemeの勉強しているんですが、
emacsのコメント行のインデントのしかたが気に入らないので 直したいと思っているのですが、 どこから始めたらいいのか、 さっぱり分かりません。 とりあえず scheme-modeが定義されている場所の調べ方を教えていただけませんか?
- 821 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/13(水) 15:38:18 ]
- >>820
> scheme-modeが定義されている場所の調べ方を教えていただけませんか? find-function > emacsのコメント行のインデントのしかたが気に入らないので 確かに comment-dwin は腐ってるからな
- 822 名前:名無しさん@お腹いっぱい。 [2006/12/14(木) 22:57:50 ]
- >>820
つ Gauche
- 823 名前:名無しさん@お腹いっぱい。 [2007/01/14(日) 02:16:27 ]
- 初歩的な質問で聞き難いのですが教えて下さい。
バッファ中の文章の特定の文字を置き換えるようなコードを 作りたいのですが、condを使うのかifとprognを使うのかよく分かりません。 たとえば、文章中の”Red Hat”なら”赤帽”、”Vine”なら”葡萄”、”Windows”なら ”窓”というようにバッファ中の文章を変えたいです。
- 824 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 02:19:30 ]
- >>823
replace-stringじゃだめなん?
- 825 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 02:26:41 ]
- 複数の文字列を一括して置換とかかな
- 826 名前:名無しさん@お腹いっぱい。 [2007/01/14(日) 02:33:07 ]
- >>824
検索関数(search-forward)などでマッチした文字列を replace-matchなどで変えようと思ったのですが、条件分岐が よくわからなくて・・・ >>825 たぶん、そんな感じです。
- 827 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 02:36:59 ]
- まずは仕様をきっちり決めれ。
「たぶん、そんな感じ」じゃなんだかわからん。
- 828 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 02:42:02 ]
- 基本事項なんだぜ?
(info "(elisp)Conditionals") (info "(elisp)Combining Conditions")
- 829 名前:名無しさん@お腹いっぱい。 [2007/01/14(日) 02:49:31 ]
- ありがとうございます。もう少し読んでみます。
- 830 名前:823 mailto:sage [2007/01/14(日) 03:25:03 ]
- レス下さった方々、どうもありがとうございました。
非常に無駄な処理をしていますが、望む結果が得られました。 (defun change-font () (interactive) (let ((p (point))) (goto-char (point-min)) (while (not (eobp)) (if (search-forward "Led Hat" nil t) (replace-match "赤帽") (forward-line 1))) (goto-char (point-min)) (while (not (eobp)) (if (search-forward "Vine" nil t) (replace-match "葡萄") (forward-line 1))) (goto-char (point-min)) (while (not (eobp)) (if (search-forward "Windows" nil t) (replace-match "窓") (forward-line 1))) (goto-char p))) 過去ログ読んで勉強してきます。
- 831 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 05:53:52 ]
- 一行に2回出てきたらだめじゃね?
- 832 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 11:47:06 ]
- 検索語を \\| で分けて match-string で抜き出し cond で振り分けろ
- 833 名前:823 mailto:sage [2007/01/14(日) 13:38:34 ]
- >>831
いえ、ちゃんと置き換えてくれました。 >>832 ご教授ありがとうございます。しばらくにらめっこします。
- 834 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 14:59:07 ]
- 教授じゃなくて教示
- 835 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/15(月) 00:23:16 ]
- > >>833
> > 一行に2回出てきたらだめじゃね? >>831 > いえ、ちゃんと置き換えてくれました。 ホントに? 試していないけど VineVine とかいう行があったらダメっぽく見える。
- 836 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/15(月) 01:09:45 ]
- `XWindows' も `X窓' になりそうだし、`divine' も `di葡萄' になりそう。
(後者は `case-fold-search' の値によるけど)
- 837 名前:823 mailto:sage [2007/01/15(月) 19:50:39 ]
- >>835
>>836 ご指摘ありがとうございます。例外処理(?)を考えていませんでした。 まだ>>832さんの方法で出来ていないしどんだけバカなんだろ私・・・
- 838 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 06:46:15 ]
- 自分で頑張れてるのだから、頭が悪いとは思わないけどな。
やりつけないことは何でも最初は大変だ。 >>832, >>836とも正規表現が必要だし。 まず>>830の改善点としては(forward-line 1)、これは置換が終わったら次へ進む ってことで入れたのだろうけど、次の行じゃなくて置換したテキストの直後に 移動すれば十分な筈。ところがreplace-match自身が Leave point at the end of the replacement text. という動作をしてくれる。 >>836は、正規表現を使うと「単語の先頭」という位置にだけ合うパターンが 使えるのでそれを使う。必要なら同様に「単語の末尾」というのも使える。 正規表現による検索はre-search-forward. ここまでで一応、要求は満たされるんじゃないのかな。 >>832は正規表現を使うと「AまたはBまたはC」にマッチするパターンというのが 書ける。それで検索して、その後でそれがAだったかBだったかCだったかを調べ、 対応する文字列(A'なりB'なりC'なり)に置換するという方法。 これだとバッファの先頭から検索を始めるのが一回で済む。
- 839 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 08:06:14 ]
- save-excursion も教えたれよ。
- 840 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 10:05:53 ]
- replace-regexp を使う。
- 841 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 11:37:35 ]
- >>840
This function is usually the wrong thing to use in a Lisp program.
- 842 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 12:59:54 ]
- (defun foo (alist)
(let ((regexp (regexp-opt (mapcar #'car alist) 'words)) (table (make-hash-table :test 'equal)) (normalize (if case-fold-search #'downcase #'identity))) (dolist (pair alist) (puthash (funcall normalize (car pair)) (cdr pair) table)) (save-excursion (while (re-search-forward regexp nil t) (let ((new (gethash (funcall normalize (match-string 0)) table))) (replace-match new))))))
- 843 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 15:22:17 ]
- ほとんどの漢字も普通にword syntaxだから全然だめだな
- 844 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 16:47:50 ]
- 俺、elispでハッシュとか使ったことねーや
- 845 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 00:50:09 ]
- オレも make-hash-table ってのははじめてみたけど、
elispのハッシュってのはcdr要素数1のalistと解釈して、だいたいおk?
- 846 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 01:15:55 ]
- 論理的にはOKだけど、計算量がぜんぜん違うよ?
何かアルゴリズムの入門書を読んだほうがよさげ
- 847 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 02:15:15 ]
- 最近知ったんだけど、バイトコンパイルした結果って
直接実行もできるんだね。 (defun fn(x) (* x 2)) (byte-compile 'fn) #[(x) "\211\\\301\\\207" [x 0] 2] (#[(x) "\211\\\301\\\207" [x 0] 2] 10) 20
- 848 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 05:48:58 ]
- ワロタ
つくづくエディタなんだな
- 849 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 06:23:03 ]
- つまらん
- 850 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 14:28:00 ]
- お前等の中にシリコンバレーで働いてる人いる?
- 851 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 23:10:28 ]
- emacsで文字のフォントの大きさを変えるにはどうしたらよいですか?
- 852 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 23:41:26 ]
- もしemacs lispがstatic scopeだったら果たしてどうだったろうか
- 853 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/21(日) 00:40:22 ]
- >>851
fontset
- 854 名前:名無しさん@お腹いっぱい。 [2007/03/28(水) 18:57:13 ]
- (゚Д゚≡゚д゚)
- 855 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/29(木) 01:39:37 ]
- >>854
うちの .Xdefault には, 未だに > Emacs.Font: fontset-12 bold > Emacs.Fontset-0: -shinonome-gothic-bold-r-*-*-12-*-*-*-*-*-fontset-12 bold > Emacs.Fontset-2: -shinonome-gothic-bold-r-*-*-14-*-*-*-*-*-fontset-14 bold ... > Emacs.Fontset-11: -shinonome-gothic-medium-r-*-*-24-*-*-*-*-*-fontset-24 medium てなものが残ってて機能しているが...
- 856 名前:名無しさん@お腹いっぱい。 [2007/04/12(木) 10:48:03 ]
- emacs ilspでwebプログラミング可能?
- 857 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 11:29:20 ]
- >>856
「webプログラミング」っていうとどの辺の話?
- 858 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 11:45:50 ]
- ttp://www1.odn.ne.jp/ymtz/tips.html#wwwsvr
こういうことだったりして
- 859 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 11:57:35 ]
- AllegroServe とかそういう話かなぁ。
elisp じゃないけど。
- 860 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 13:32:42 ]
- elservなんてのがあったなー。
もっとまともなのも多分あるだろうけど興味無いので知らない。
- 861 名前:名無しさん@お腹いっぱい。 [2007/04/12(木) 15:16:27 ]
- emacsがwebサーバーになるのですね。もはやなんでもありですね。
elispはphpで作成するのと同様のwebプログラミングは可能でしょうか? 掲示板とか、アンケートなど。
- 862 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 15:18:15 ]
- >>861
アクセスのたびに Emacs 呼ぶってこと? まぁ不可能じゃないんじゃね。 やる気は起きないけど。 >>859 じゃだめなん?
- 863 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 04:31:21 ]
- 単純にphpスクリプトを書けるか?と聞けば
遊ばれずに済んだであろう>>861
- 864 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 09:45:15 ]
- そういう質問じゃないっしょ。
- 865 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 15:06:43 ]
- >>861
もちろん同様のことは可能。もちろん同様にはできないけどな。
- 866 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/13(日) 16:17:55 ]
- 定期的に M-x hoge を実行するにはどうしたら良いのですか?
答えが駄目なら、誰かヒントだけでも教えてくれないでしょうか。
- 867 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/13(日) 17:55:49 ]
- timer
- 868 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 01:21:02 ]
- 23
という数値を16進数数値として扱い、 "35"にする方法はどんなのがあるでしょうか? (let ((n 23)) (format "%d" (string-to-number (number-to-string n) 16))) これは思いつきましたが、もちょっと簡単にならんかな、と。
- 869 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 06:39:30 ]
- じゅうぶんかんたんだとおもう
- 870 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 10:48:34 ]
- >>868
#x23
- 871 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 11:08:26 ]
- >>868
なんで元が数値なんだろ。 3a とかの入力は考えなくていいの?
- 872 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 20:18:46 ]
- >>870
(read (concat "#x" n)) か。なんかびみょーに感じる。この表記がいけるのってemacs21以降あたり?
- 873 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/16(水) 00:01:09 ]
- 数値を concat できたのか…
- 874 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/16(水) 00:22:21 ]
- ごめん。emacs21からはムリなはず。
- 875 名前:866 mailto:sage [2007/05/20(日) 00:46:22 ]
- 駄目だ分からない。
run-at-time 使おうにも hoge をどう指定したら良いのか不明……lisp は難しい orz 例えば、.emacs にどう書けば、自動で M-x hoge できますか? ; emacs の引数から起動するのではなくて。 あとは、start-process と while と sleep-for 辺りを組み合わせれば可能な気はするんだけど……さっぱり orz 週末に数時間しか PC に触れられないのは、現代社会をは思えない環境 orz
- 876 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 00:52:00 ]
- run-with-timer 使うんじゃないの?
何がわからないのかがよくわからない
- 877 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 00:53:00 ]
- もしかして M-x から指定してるものが関数名だってことを知らないとか?
- 878 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 03:58:00 ]
- (setq hoge-timer (run-with-timer 0 1 'hoge))
(defun hoge () (interactive) (message (current-time-string))) (defun hoge-cancel () (interactive) (cancel-timer hoge-timer)) M-x hoge =>Sun May 20 03:56:18 2007
- 879 名前:lispp? [2007/05/20(日) 14:40:44 ]
- LISPを学習して1週間目の者ですが、
(progn (setq wara 10) (setq waru 0) (/ wara waru) ) でエラーが発生します。 (if (equal waru 0)...)でなくて、catch??? throw???のような例外処理で対応したいのですが、 可能でしょうか?
- 880 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 14:50:53 ]
- >>879
shakosv.sk.tsukuba.ac.jp/ShakoDoc/Editors/NEmacs/elisp-jman/html/eljman_104.html
- 881 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 17:00:06 ]
- >>879
condition-case elisp.infoのControl Structuresを参照。 Lispではcatch/throwの例外処理とsignal/condition-caseのエラー処理は別物 である点に留意されたし。
- 882 名前:名無しさん@お腹いっぱい。 [2007/05/20(日) 17:12:06 ]
- xyzzy使っているのですが、 condition-caseで関数がないと表示されます。
- 883 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 17:17:31 ]
- 板違い
- 884 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 20:48:43 ]
- EmacsでのLispのプログラムについての質問です。
リストAとして((a b c) (d e f) (g h i))というリストがあるとして、このリストの中の要素であるリストの 最後の要素を返す関数を作る場合どうしたらいいでしょうか?
- 885 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 21:33:40 ]
- >>884
各要素の cdr を見ていって、それが nil なものを返せばいいんじゃないの。 そういう話でない?
- 886 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 21:37:09 ]
- >>884
(car (last (car (last '((a b c) (d e f) (g h i))))))
- 887 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 21:47:12 ]
- 884の補足ですが、
リストAを引数として(c f i)を返すような関数を定義したいのです。 また、リストAの要素がもっと多い場合にも対応できるようにしたいのです。
- 888 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 21:52:54 ]
- >>887
(mapcar (lambda (x) (car (last x))) A)
- 889 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 22:00:23 ]
- >>888
見たことないコマンドが多いのですが・・・。 初心者なのでもう少し分かりやすくしていただけるとありがたいのですが。
- 890 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 22:16:26 ]
- 標準の関数くらい自分でしらべろよ。
- 891 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 22:17:51 ]
- そういった関数を使わないで定義したいんです。
- 892 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 23:42:03 ]
- lambda とか mapcar 使わないで lisp のプログラム書くのは
逆に難しいと思うぞ。
- 893 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:06:38 ]
- それは無理な話だ
- 894 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:08:04 ]
- ごめん
>>893は>>891へね
- 895 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:11:56 ]
- おk。mapcar も lambda も car も廃止してやったぞ。last は使わせてくれて…
(require 'cl) (defun fun-887 (lst) (loop for element in lst collect (first (last element)))) last も禁止ならこうだ。 (require 'cl) (defun fun-887 (lst) (loop for element in lst collect (first (reverse element))))
- 896 名前:名無しさん@お腹いっぱい。 [2007/05/29(火) 00:16:23 ]
- >>895ありがとうございました
もう一つ聞きたいのは、数nとリストを引数として取り、 リストのn番目の要素を返す関数を定義したいのですが、 この関数を再帰を使って定義するにはどうしたらいいでしょう
- 897 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:24:12 ]
- (defun list-ref (lis n)
(if (zerop n) (car lis) (list-ref (cdr lis) (- n 1))))
- 898 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:43:50 ]
- んー?
ttp://questionbox.msn.co.jp/qa3033199.html
- 899 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:46:01 ]
- 最近なんでもかんでも聞く人多くない?
- 900 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 01:19:24 ]
- mapcar を独自に定義しようとするとどう書ける?
- 901 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 01:29:48 ]
- >>896
再帰使うまでもない。 (defun list-ref (lis n) (nth (1- n) lis))
- 902 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 01:52:11 ]
- (defun my-mapcar (func list)
(let ((rest list) (results ())) (while (not (null rest)) (setq results (cons (funcall func (car rest)) results)) (setq rest (cdr rest))) (nreverse results))) とかかな。
- 903 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:01:06 ]
- setq とか cons を使いたくないんですとか来た場合に備えておこう。
(require 'cl) (defun my-mapcar-2 (func lst) (loop for elem in lst collect (funcall func elem)))
- 904 名前:名無しさん@お腹いっぱい。 [2007/05/29(火) 02:04:56 ]
- >>898 つうか、そゆのは大抵自分では考えないだろうし、調べないだろうし、向上心もないだろうし、礼儀も知らないだろうし、
人の忠告も聞かないだろうから。さっさと答を与えればそれ以上しつこく聞いてこない軽い荒らしだと思って対応するが吉。
- 905 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:05:17 ]
- cl は宗教上の理由でちょっと……。
- 906 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:09:23 ]
- 自分も書いてみた。リストしか考慮してない。
あんまり慣れてないからどっかまずいところあるかも・・・(自分への免罪符 (defun my-mapcar (func list) (defun my-mapcar-iter (func list rtn) (if (null list) rtn (my-mapcar-iter func (cdr list) (setq rtn (cons (funcall func (car list)) rtn))))) (my-mapcar-iter func list '()))
- 907 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:11:39 ]
- defunの中でdefunするのはじめて見た。
- 908 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:11:55 ]
- あー、 reverse すんの忘れたorz
- 909 名前:名無しさん@お腹いっぱい。 [2007/05/29(火) 02:18:25 ]
- Schemer の方ですか? Emacs Lisp じゃー再帰は実用的じゃないお。
しかも defun は internal define と違ってグローバルだし…。
- 910 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:23:05 ]
- >>898の質問者はもうダメだろうね。レポートは突破できても試験は無理そうだ……。
授業二三回でればいいだろうになぁ。まったく聞いてなかったんだろうな。授業料無駄だったね。
- 911 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:58:34 ]
- >>909
最近、ちょっと scheme で遊んでたもので・・・。 > Emacs Lisp じゃー再帰は実用的じゃないお。 調べてみたところ、再帰回数が max-lisp-eval-depth で制限されてる、 末尾再帰が最適化されない、のようなことがあるのですね。 > しかも defun は internal define と違ってグローバルだし…。 M-x help f で関数のリスト見たら、my-mapcar-iter があって驚きました。 よくよく考えてみたら、setq はいらなかった。 なんでつけたんだろう。 まずいところ多すぎorz
- 912 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 07:07:10 ]
- >>905
改宗すればおk
- 913 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 10:07:37 ]
- cl 使えば flet で関数内関数使えるよ。
- 914 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 12:55:46 ]
- flet を使って書き直すなら、こんなかんじでしょうか。
たしかに my-mapcar-iter が隠れた。これ便利かも。 (require 'cl) (defun my-mapcar (func list) (flet ((my-mapcar-iter (func list rtn) (if (null list) (reverse rtn) (my-mapcar-iter func (cdr list) (cons (funcall func (car list)) rtn))))) (my-mapcar-iter func list '())))
- 915 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 22:24:57 ]
- …再帰するなら labels じゃねーとダメなんじゃね? cl のバグ?
ズバリこうだろ。while 版より短い!! 俺のバイク小屋ハァハァ (defun my-mapcar (func lst) (let ((result nil)) (dolist (e lst) (push (funcall func e) result)) (nreverse result)))
- 916 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 22:27:10 ]
- なんとなく nreverse なしのループで書いてみた
(defun my-mapcar (fun list) (let* ((result (list nil)) (x result)) (while list (setcdr x (list (funcall fun (car list)))) (setq x (cdr x) list (cdr list))) (cdr result))) >>915 flet を macroexpand してみればわかるよ まあしょうがないんだろうけどちょっと気持ち悪いよね
- 917 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 08:50:13 ]
- ずびまぜん。
elispで 16進数文字列を整数に変換する楽な方法ってありません? (hoge "64") => 100 ってなるような。 (defun hoge (s) (string-to-number (concat "#x" s))) とかじゃ 0が返ってきてしまいました。
- 918 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 08:59:28 ]
- (defun hage (s)
(string-to-number s 16)) ↓ (hage "64") ↓ 100 ウマー
- 919 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 09:16:44 ]
- おお、そんなところに &optional があったとは...
infoをもっとちゃんと読むべきでした。 どうも有難うございました。
- 920 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 16:36:52 ]
- >>868-
- 921 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 21:22:45 ]
- 知ってる人も多いだろうけど C-h f めちゃくちゃ便利だよ。
関数定義してるソースの該当部分にも飛べる。
- 922 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/03(日) 00:27:47 ]
- emacs22でも、mode-infoも動いてくれるしね。
- 923 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/10(日) 19:00:25 ]
- あるオブジェクトに対し、car-safeが非nilとなる時
cdrでなくcdr-safeを使うべき局面ってある?
- 924 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/10(日) 23:36:38 ]
- >>923
car-safe が non-nil なら対象は list ってことだから、そんな局面はない、 と思う。
- 925 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/27(水) 22:28:03 ]
- 同じ名前の変数 (defvar hoge)と関数 (defun hoge ())が定義されているとき、
変数だけ定義を消すことってできますか? (unintern 'hoge) だと、両方消えてしまうので。
- 926 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/27(水) 22:36:59 ]
- makunbound
c.f. fmakunbound
- 927 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/27(水) 22:45:39 ]
- ぬりがとう。
ところでこれ何て読むのですか? (エフ)メイク・アン・バウンドでいいんかな? 思い出されるcreat()。
- 928 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/27(水) 23:18:45 ]
- >ところでこれ何て読むのですか?
なんでしょうね? >思い出されるcreat()。 なるw
- 929 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/29(金) 01:06:36 ]
- defconstしてるものには、時に大文字のシンボルを使ってみるのも一興かなと
ふと思った。 たぶんウザいだろうけど。
- 930 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/07(火) 22:22:42 ]
- EmacsがXで動いているときだけ、
C-zでアイコン化しない様にしたいと思っています。 Xで動いているのかterminalで動いているのか判別するには どうしたらよいのでしょうか。
- 931 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/07(火) 22:29:27 ]
- window-system
- 932 名前:930 mailto:sage [2007/08/07(火) 22:33:57 ]
- >931
ありがとうございます。 とりあえず、 (if window-system (global-set-key "\C-z" 'shell)) としてみました。
- 933 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/21(火) 05:23:38 ]
- M-x shell
を.emacsファイルの読み込み時に動作させるにはどうしたらよいのでしょうか。
- 934 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/21(火) 10:02:38 ]
- 本当に文字通りそうしたいのならば
(shell) と書く。
- 935 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/21(火) 12:13:59 ]
- >>934
できました。ありがとうございました。
- 936 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 17:18:02 ]
- (global-set-key [?\C-;] 'なにか)
とか (global-set-key "\C;" 'なにか) とやってもエラーがでて動きません。 ;をjにしたら動いたので”なにか”が間違っていることはいないと思います。 C-;やC-, C-. へのバインドを指定するにはどうしたらよいのでしょうか どなたか教えていただけないでしょうか?
- 937 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 19:00:19 ]
- [(control ?;)]
設定程度の質問なら、次回からelispスレじゃなくてemacsスレ行きな。
- 938 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 21:58:08 ]
- >>937
ありがとうございます 今後は気をつけます どうもすいませんでした そのようにしても動きはしませんでしたが、 それはターミナルからの接続の仕様らしいと分かったので、 別のキーを割りあてることにします
- 939 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 22:06:20 ]
- man ascii
で出てくるコントロールコード以外の コントロールキーの組み合わせ以外は 端末じゃ動かないよ。
- 940 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 22:09:03 ]
- まちがえた。以外が一つ多かった。
- 941 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 01:55:47 ]
- (func "/usr/bin/emacs" "/")
=> ("usr" "bin" "emacs") こんな感じで、文字列からトークンを抽出する好い奴を 何方か識りませぬか?
- 942 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 02:03:17 ]
- 普通に1文字ずつチェックすれば良いじゃない。
- 943 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 03:14:56 ]
- split-string
- 944 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 19:47:13 ]
- >>943
幸あれ。 やっぱりあるよね。token で探してたよ >>942 普通?とりあえずこんなん書いてた (lambda (string delimiter) (let* ((iter (lambda (str dlm lst) (if (and (string-match dlm str) (substring str (1+ (string-match dlm str)) nil)) (funcall iter (and (string-match dlm str) (substring str (1+ (string-match dlm str)) nil)) dlm (cons (substring str 0 (string-match dlm str)) lst)) (cons (substring str 0 (string-match dlm str)) lst))))) (funcall iter string delimiter ())))
- 945 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/27(土) 01:27:05 ]
- 下記のような独自スクリプトのメジャーモードを作っています。
function: if hoge == 0 { hogehoge; } elseif hoge ==1 { if hoge2 == 0 { hogehoge2; }else{ hogehoge3; } } end; 階層は上記のif文のみです。 自動インデントをつけたいのですがどうすればいいでしょうか?
- 946 名前:945 [2007/10/28(日) 08:47:43 ]
- 補足です。generic-x.elを使って作っています。
- 947 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/30(火) 10:08:00 ]
- buffer-local-variableなるものがあるそうですが、
.emacs.elなどでsetq-defaultで設定した値は、 新しいバッファを作る度にバッファごとの値のコピーが作られてしまうんでしょうか。 カスタマイズ性から見るとsetq-defaultの方が使い易そうなのですが、 パフォーマンスに悪影響がでないか心配なんです。
- 948 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/30(火) 20:29:39 ]
- make-variable-buffer-local されてるような変数の話だよね。
これは setq とかで書き換えた時点で、その buffer に local な変数が作られるってシステム。 書き換えるまではどの buffer でも初期値を参照してて、 setq-default はこの初期値を書き換える。 それ自体がコピーの原因になったりはしないはず。
- 949 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 08:26:40 ]
- call-processとかの外部コマンド呼び出し関数で
コマンドの出力(標準出力)を文字列もしくは文字列リストで 返すようなものってないでしょかね? いちいちバッファに出すのがとても無駄に感じる時がある
- 950 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 22:17:04 ]
- set-process-filter
- 951 名前:名無しさん@お腹いっぱい。 [2007/11/29(木) 10:04:56 ]
- みなさん、乙です。
コードの中で読み易さを上げるためダブルクオート中の文字列を改行して書きたいのですが、 その改行自体はコード上では無効にしたいのですが、どうすればいいですか? 例 (message " listA, listB, listC") これが以下のようにmini-buffer に出力して貰いたいのですが、 listA,listB,listC そんな方法ありますか?
- 952 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/29(木) 11:08:37 ]
- >>951
(message (concat "listA," "listB," "listC"))
- 953 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/29(木) 12:39:04 ]
- >>951
(message "\ listA,\ listB,\ listC")
- 954 名前:名無しさん@お腹いっぱい。 [2007/11/30(金) 05:59:54 ]
- >>952, 953
サンクス。C と同じことできたのね。試せよオレ。
|

|