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 ではひとつ、コード中心の熱いバトルをよろぴく。
6 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/18 20:20] 入門書は ttp://www.gentei.org/~yuuji/elisp/ がおすすめ
7 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/18 20:30] >>6 いきなりメジャーモードから作り始めるやつだね。 おもしろそ。
8 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/18 20:53] ウッス! 自慢スレの括弧の対を入れるのを参考に just-one-spaceを改造してみました。 作る前から明白でしたけど、あきれるほどに実用度ゼロでした・・・_| ̄|○ (defvar my-just-one-space-state nil) (defun my-just-one-space () (interactive) (if (and (eq last-command 'my-just-one-space) (null my-just-one-space-state)) (progn (backward-delete-char 1) (setq my-just-one-space-state t)) (progn (just-one-space) (setq my-just-one-space-state nil)))) (global-set-key "\M- " 'my-just-one-space)
9 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/18 20:54] わたしゃ、「リスト遊び」を推すぞ。
10 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/19 18:07] (setq completion-ignored-extensions (cons ".class" completion-ignored-extensions)) (setq completion-ignored-extensions (cons ".exe" completion-ignored-extensions)) (setq completion-ignored-extensions (cons ".obj" completion-ignored-extensions)) これを1行にまとめたいのですが、どうすればいいですか?
11 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/19 18:12] >>10 (setq completion-ignored-extensions (cons ".class" completion-ignored-extensions)) (setq completion-ignored-extensions (cons ".exe" completion-ignored-extensions)) (setq completion-ignored-extensions (cons ".obj" completion-ignored-extensions))
12 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/19 18:33] ほしい答えはこれか? (setq completion-ignored-extensions (append '(".class" ".exe" ".obj" completion-ignored-extensions))) add-to-list も参照のこと。
13 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/19 19:23] 括弧位置がおかしくない? (setq completion-ignored-extensions (append '(".class" ".exe" ".obj") completion-ignored-extensions))
14 名前:11 mailto:sage [03/09/19 19:51] >>13 おぉ。ほんとだ。失敬失敬。
15 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/19 19:51] (setq completion-ignored-extensions (append `(".class" ".exe" ".obj" ,@completion-ignored-extensions)))
16 名前:10 mailto:sage [03/09/19 19:52] なるほど、こうやるんですね。 どうもありがとうございました。
17 名前:14=12 mailto:sage [03/09/19 19:56] でした。(´・ω・`)ショボーン
18 名前:15 mailto:sage [03/09/19 19:58] あー append はいらなかった。
19 名前:newbie mailto:sage [03/09/21 20:34] XHTMLだと原則終了タグも書かなきゃならないので、タグ書きがめ んどう。そこで、ミニバッファでタグの要素を打ち込んでカーソ ル位置にタグを挿入するかんたんなS式 ;; insert-htmltag (defun insert-htmltag (str) "Insert a pair of HTML tags. Insert a pair of HTML tags read from mini buffer at the cursor point." (interactive "sInput tag: ") (let ((elm (car (split-string str)))) (if (stringp elm) (progn (insert "<"str"></"elm">") (forward-char (- (+ 3 (length elm)))))))) (setq html-helper-mode-hook '(lambda () (define-key html-helper-mode-map "\C-ct" 'insert-htmltag))) たとえば、ミニバッファで div class="hoge" と入力すると <div class="hoge"></div> とカレントバッファに挿入され、カー ソルもタグのあいだに移動ずみです。 HTML-helper-mode のキーバインドを覚えきらないんで(^_^;)
20 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/21 20:52] psgml とか。 投稿前に untabify するといいかも。
21 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/21 21:12] >>19 yatex付属のyahtmlとか。
22 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/22 00:40] 今ならnxmlだな
23 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/22 01:26] >>21 yahtml に XHTML 向けのモードとかあるんでつか?
24 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/24 17:48] 以前自慢スレで、存在するファイルのみを読み込む (defadvice find-file (before existing-file activate compile) "When interactive, find file existing files only." (interactive "fFind file: \np")) を書いた者です。 新規ファイルが作れないのが自分でも不便に思ってきたので、 簡単ですが新しいのを考えましたです。 (defun my-find-file (filename &optional wildcards) (interactive "FFind file: \np") (when (or (file-exists-p filename) (y-or-n-p "Not exists. New file? ")) (find-file filename))) (global-set-key "\C-x\C-f" 'my-find-file) 今度はいかがでしょうか?
25 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/24 23:49] 多くの Emacs 使いは何かする度に yes/no を聞かれるのを嫌う気がします。
26 名前:24 mailto:sage [03/09/25 10:33] >>25 新規ファイルを開くのに、前置引数で与えるのとy-or-n-pで聞くのを迷ったん ですが、y-or-n-p の方が自然かなと思った次第です。
27 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/25 11:49] >>25 (fset 'yes-or-no-p 'y-or-n-p)
28 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/26 09:48] >>24 贅沢を言えば、 (y-or-n-p "Not exists. New file? ")で nと答えた時にアボートせずに ファイル名入力へ戻ってホスィ
29 名前:24 mailto:sage [03/09/26 10:13] >>28 こんなんではいかが? (defun my-find-file (filename &optional wildcards) (interactive "FFind file: \np") (unless (or (file-exists-p filename) (y-or-n-p "Not exists. New file? ")) (setq filename nil) (command-execute 'my-find-file)) (find-file filename))
30 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/26 10:37] >>29 イイカモ。 でもさらに贅沢を言えば (command-execute 'my-find-file)でファイル名入力に戻った時に 前回の入力がそのまま残っていてくれるとウレシイス
31 名前:24 mailto:sage [03/09/26 12:54] >>30 拙者もちょっと気になってましたが、 何をどうやればよいのやら・・・。 (interactive "FFind file: \np")のプロンプトの後に文字列を挿入すること自体、 さっぱりわかりません。
32 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/26 20:09] (defun my-find-file (filename &optional wildcards) (interactive "FFind file: \np") (unless (or (file-exists-p filename) (string-match "[[*?]" filename) (y-or-n-p "Not exists. New file? ")) (let* ((regexp (concat "^" (regexp-quote default-directory) "\\(.*\\)")) (str (progn (string-match regexp filename) (match-string 1 filename)))) (catch 'exit (while t (setq filename (read-file-name "Find file: " default-directory nil nil str)) (when (or (file-exists-p filename) (string-match "[[*?]" filename) (y-or-n-p "Not exists. New file? ")) (throw 'exit t)) (string-match regexp filename) (setq str (match-string 1 filename)))))) (find-file filename wildcards))
33 名前:24 mailto:sage [03/09/26 21:00] >>32 は神! じっくり読ませてもらいます。 ありがとうございまスタ。
34 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/26 21:07] こんなのも考えてみた。 (defun my-find-file-interactive-arg (&optional initial) (let* ((insert-default-directory (null initial)) (name (read-file-name "Find file: " nil nil nil initial)) (file (expand-file-name name))) (cond ((file-exists-p file) (list file)) ((y-or-n-p (format "File %s not exists, New file?" file)) (list file)) (t (my-find-file-interactive-arg name))))) (defun my-find-file (filename &optional wildcards) (interactive (my-find-file-interactive-arg)) (find-file filename wildcards)) なんか、 point が filename の最初に来ちゃうんだけどね…
35 名前:24 mailto:sage [03/09/26 22:05] >>34 !!! interactiveの引数が関数になってる。 おお、こんなことができるのですか! 自前でinteractiveのコード文字を定義すればいいと・・・目から鱗。 ちょっと感動してます。 コンパクトになってるし。
36 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/27 10:29] あ… >>34 、 wildcards なんて引数があったの忘れてる (w wildcard なときでも存在確認できるように、前の関数修正。 (defun my-find-file-interactive-arg (&optional initial) (let* ((insert-default-directory (null initial)) (name (read-file-name "Find file: " nil nil nil initial)) (wild-p current-prefix-arg) (file (if wild-p name (expand-file-name name)))) (cond ((if wild-p (file-expand-wildcards name) (file-exists-p file)) (list file wild-p)) ((y-or-n-p (format "File %s not exists, New file?" file)) (list file wild-p)) (t (my-find-file-interactive-arg name)))))
37 名前:24 mailto:sage [03/09/27 12:11] >>34 > なんか、 point が filename の最初に来ちゃうんだけどね… 気になりだすと止まらないので、朝から覗いてるんですが、 read-file-name -> completing-read -> read-from-minibuffer -> read-string と見ていっても結局 built-in function で補完途中の動作は触れないんですね。 src/fileio.c にread-file-nameがあるんですけど、ここいらにパッチするし かないんでしょうか・・・ポイント動かすだけなのに・・・ もうギブっす
38 名前:24 [03/09/27 12:17] >>37 × 補完途中 ○ 入力中 スンマセ
39 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
40 名前:24 mailto:sage [03/09/27 13:00] すごい安直なことを思いつきました。 (add-hook 'minibuffer-setup-hook 'end-of-line) 問題続出の予感・・・
41 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/28 06:56] >>40 んじゃ、こんなんでどうでしょ? my-find-file-interactive-arg() をちょっとだけ変えますた。 (defvar my-find-file-interactive-arg-active-p nil) (defun my-find-file-interactive-arg (&optional initial) (let* ((my-find-file-interactive-arg-active-p t) (insert-default-directory (null initial)) (name (read-file-name "Find file: " nil nil nil initial)) (file (expand-file-name name))) (cond ((file-exists-p file) (list file)) ((y-or-n-p (format "File %s not exists, New file?" file)) (list file)) (t (my-find-file-interactive-arg name))))) (defun my-find-file-minibuffer-setup-hook () (when my-find-file-interactive-arg-active-p (end-of-line))) (add-hook 'minibuffer-setup-hook 'my-find-file-minibuffer-setup-hook)
42 名前:24 mailto:sage [03/09/28 12:44] >>41 おお、完璧です。そうかこうすればよかったんだ。 ところで > (let* ((my-find-file-interactive-arg-active-p t) で、 > (defvar my-find-file-interactive-arg-active-p nil) を変更できるというのをはじめて知りますた。 勉強になりますです。
43 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/29 21:52] ----BEGIN BASE64----(bf-mode.el.gz) H4sICDAmeD8AA2JmLW1vZGUuZWwAzRprb9w28vMecP+BEILzqo02tuNcUQftIU7d nK+OU8Quer26B3AlalexVlRIyvYGxf32myEpinravvTaLJB4V5wZzpszIz5/To4E v5GMfJvljGx4wkjKBUkywZI//+n5c/w3e3SSHJJlGuHyguWPr8ne4guyv7v79Mnu l0/2vyR7+4dP9w4PDsiqEIIc35bkUY2sCRd0w3wKeuGUSoU7ZmnGgP5rXpBzVhIg h5TJ/t7h091D+PKP84uamMZryJCYb5gkN5lakxdH529Of7g4Pv2JnL0hP754+/bF 2cVPC41xsc4kkTxVN1QwAt+TTCqRLSvFElIVCRNErRl5dfYDecUKJmhOvq+WeRaT 0yxmhWQLt/mPa6qQggKSh/oJIUfp3FNiqLlDmE1WcBG1dboAaPOI5jngkC2vLBnF ydKQSdEWjMos3xJaJBozVvn2MUmYLDPFCE/JFWNlVqwsWcfgSSEVkLa87S1Aw9eM BI3SApIVsBUKbOhyAbtoRgTJOU2ikqq1URzZXxCaJBo45cgw7phnBUNuNUbC1YJt aCwtBnzmgr2vgDTZsbuGjrsfJF2xhresuOZXho+ELLfkZXRLkmbr5YwVCoxjyZjn T+E5AXW+n7HbTJFU8E0b4GBBCgQoZ1r0uBISfqHIVKyYMtrNEEQb3mk9U3bnZwty /v3LmYwFiEyq0gCg5CB+wm+coOeRBwcLxSiknNHkXQX+rgHoMrdGltkH5oDETPHV Cp4KBlbgRb5t+f0FT3ijOrdTtgGVamrzdyVbPSarLH1MygK+oe9suGCLReh0pyoB ohdPeJqCSQsFJo+vCC1LRgUtYq2ZjhSgFsfENRUZsi+1S1eSCWnW5glLYbE2RSRZ Dr4FRCInDSkyiHxCgs++zSmw59tgQ6+M3ERD3qxZYQ0FkatJgZMHYX+fmldvG3XP TQYkndxhDZgIu2von1WbJdC9ycD4SzDlGh1A8dLEx6Aad1GcGy6uzFO15pUiluz0 3ugoZM/ufNR3Itzvu6OtYoNk2G3MSgV/VGODU8iBmEdMsrlVkOcyXgB76yxeE0yU Bgsi08WIIS6Zej9EemceXF4u2C17FBD8Btn5URCGnvdkGM4FpFfnRsPOYxQWQSYD 3wSOB0TSOcMCjoCUgl1nvJLRFdtuaDkCBflBQJppVL2s0hTsaqAd67xUoB5gPa2K GL92z0mkWxWN/9NrJ0fMizRbVYJqvHmIBmhrsSXwvGZpCD00Cu3sdgVOaFRSk9eq psDpNTMPNIiV7Q7ZDQLk8JoFohzPwzINyTHIqDFbAhGtWMThXBH1FpbvqgCvkGTO C0et1CuwNoAmkSmTHuyTMGy5nKyWRECYQUzKQUOlgBXpIBjTnIUku+anEYEm10yo TLKkoWDx06kkaERx9tf69nNXLevwMjqlhhjSrTk9POgxgVquN5BA5wVXE+thSy0G gA1aO17TYsVc4pwX1abHEgnO/m7XT8FIh8EUjzUlR+j+TLRT6RgrTWo1YDqnhtNM aciHcFRgthwzjnEvBIn0QbI3RrZDtM529yYcjVLuJzNd4gzGa28bCNHPyHzutFOD Q+ll00v96K4sBPRmpEsoKjf0FiyB6bUT+QAOnzohuF3a+GENVXJgPQJi4ehGcKbu hXVAQsKD5Dr/iszrdSTQI999oPnVG7Tz5yD2AHJWGPZgayzngG0ZXWcyAxeNssLB
44 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/29 21:53] DW5rRJ0NqkDH+AOoZUVNTX+6JMOPEBFNANhz4GfQ0fYip/M1y1ZrFZrP/Rw10oX5 hLf+Rs7qEveQCNGIFE2yn1ZajQkHq+j73IguGqIazUR9k/h0jQ3/c+jPq03pMhgh cGyCY2Q6JV7TvGKWzRVXHNOpcNFjvFMv6uMwpjlsbsocEBhJDshopOgd3JZqX5wK uhMRuW41wnECAEOb6qVl/EnmeAzr9QZcr4S+ueMca9+5LHOocHASACeKRg+eBI1R CqSHVgP9rOC7xgrD+u+QyptiGGJI84Ks+Fvrnfvg2v8FU80Brw2EVQliuKLB2Myw DLlLQaU+j8EemiXibTgzSkGSqiZYa8pIHycWrV4G2HblpCDhUAHlP5z8agNOb5b0 omG9pwBzhtSCmaqqrYYHl6FGb0m12Wz1cwxOnNEoPEdvalLBMj2MaR05LGjHlgVq iNSLWQEdbK3e4LII3Fd1qT6Ppj+fd+B/NUomL1+cnb25IEfH5Ojtmx/Pj7+xz399 OP02RhD4Dl7AgeR8vKVkDR4Q0AfRlRyzWkngUSXNqEUw9CLdySw6+5zxG+iblSR1 jQ8YVAKZHJrYRRc6qHXJIFWA5aEOkdhJuumP3yKqMcW3SJ6kOFsipnDTozYCbpYV GXL7uAWq4UBOO16hrrMkl0F//0scfnkjKyA1XW+rgexlnamfvjz3aldWw5kYyy8b b6bY5JBC+xFlWIJmU9eZEQL9jjHlGPuDIur4ny+Pj785OXtlYunF0ekx+fYE/js/ +dfxpxVRTlWj8ZRnm8zOU+plPI6XYF84WO1BNNhehCSw4507QsX2LfrUfniktPYc CJaG2hssb26g/X1MHOFccqK2JRKUgIzzEcU2JRcU1FnZ6dEnEGzOxmPHV+ME2DT9 X2MM24qYKh1rga2wZ1qYoaLHATg8WIeqZRHUFfFDA/Sbk7fHLy/evP3pEDxME/PM fEc0DX5MSq3fBGCB4akz+M+ToDGz0RDGmTTdqRHUPEDF28Yn9asiVxdpMFfopKYO 0g9NN1EPklrFUvDvy8vF54/AOS1tow1AR7nDpnCyXGGRZGk2+w+XwZ+Eb1v/ljhz qjK5hkylbhjUjI0NICohhQ2OwuyLkLFeyRSfQ4M5U0nbp3UjkG/rZTcg63RFOI+P MEWYih5iIOio8Y4ZrZuUNhMDi9yaAAyMjFv9QJ3q/bNA0kKiKGYobocn2Ba6c4Go cGTDuR6y+BuZsaAh33h62a7YR7NQ9ygCvxN8hQ25tYmmK9iqyqnoUO0NeExV7kDq tPERCr+Puu/20OW2+ypiwkcHW4uR5p4qZSumCL/q177SV4BnoK+/Mn3fFwRBoSP9 bPRVzP5B2LbaUKE2YTmcJ6F9vGZqhqOIoVZy2qB+t9WIZWk3rwcNfS66KREy4rty hTmxtYvx6z4ka4EOc6Q3HWGIiniNg4WGpd4mkNoWqw89jrq7WErtfUgA2OSDgoxu 53rD9Jcfft7/5W8fs8e7u/b4GOKTtPMP6/+Vdr6mJK9J42stTMj+6z8cMprX8ol7 1SUJADGMX42jsJNz5lP2kMYcT3P9fk91bW/P2nTipYLnc6MH6Gxi3ZYIM3dOYTZY MVGOvkRwBKdP11H0uuTyExujYKKYSnNDA2jVb1jlwhueNDEpx/KbF0G/X7PX8PWH
45 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/29 21:54] zk/wc/L6xSvb6bnP793tZVI3exIqcS6wb4N6Ww8jdNXX7cTOuRDbT2ei4KfZUS9r JYmmDIr5ZgN54I9ofIbN0/Q9vbrlYR7qC4wdz53u8Fv0Q3WrL9cMVGmV63X8VhVa SOvqQZy0uRtk7Xng41jCd8v0KfUqVBJRYasFeVLfl9N3EF2y7LitvpIwfc2h87K+ f0FieHCv75nd63156+JJ//JBH6F7DQXMXW6bHzaUcq7fndCyrscriE/30BFDALNF tYQaWkEti6SiZj7q5q7NFw/Z3FjxaYERdAla36Uz6q2vHA7cr7vP3p6+9Q1S66Q7 A4b0mPNBe3ze7001Ev7trsA8+DLKRKs5bM+OczQyeVeU3J2t1/jDje1wvrZsRY2+ naWb6hqo7kr0xv59zP49KHtDSm/0nXFOvYPfby3TsLefV9VpE6JyLJ12HGh319zJ kgrJPJG1OsGJ9LMWQnD5MtoEjeN07tqMYRUeSmHer01Alx50bZBpDOJhDLzwnUTe +fnp02fPDg7+evDLJBH94nqaDeGx0b39M4259jDbt3Sm8WQfrz2onsR+H/g+aNwQ 2259F4FK+b7JWc3laegq9GtK/8zqrprCP8ZWZccdAQE5SoNwgNJA4iDzv7gbflQY JQRH3nXsnu93UwwJvh+4JYSdvpawymvCpunwrljZtuVrHA6A4m6jotowkcWRnuJr LDjObJw04eZGCq1DrFaTnxDbN+LWnF+ZPo8m11kMZ6/iNuv7l2UhXxGZbcp82zqN DQ4ZvwSnuaSpvbcN7mi0o/9ADeiPEhkYkr6r78jvNCm/IwTewjE2o0kSIf8+sH6g Vbgzz+lmmVB9AMzayhm9j9kHHb2j2IB6Dt4+qFo+7lcd90FdtsPDiFwKfp0lrcv0 /wV3LINvtjEAAA== ----END BASE64---- はじめてマイナーモードを作ってみました。dired で上下2画面に割って、下 側にファイルの内容を表示するものです。なんか、禿しくガイシュツな気もす るのですが、習作ということで許してやってください。 ホントは画像も表示させるつもりでしたが、 www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=thumbs を見て落ち込みましたので、とりあえず保留さしてもらいます。 人の環境で動くかどうか不安なんですが。
46 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/30 00:38] >>45 insert-file-contents を使ってファイルの前の方だけを読み込むようにして、 大きいファイルも表示できるようにした方がいい。 そうするとコード変換がちょっと面倒だけどね。
47 名前:45 mailto:sage [03/09/30 08:11] >>46 ナルホドです。 そうすれば読み込みの時間も減らせますね。 暇を見つけてやってみます。 :: bf-mode 切 でもディレクトリ移動時にbf-mode 入 になってしまう不具合 :: を見つけてしまいますた。すんまそん。これも暇みつけて直しまふ。
48 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/30 11:46] >45 どっかで見たと思ったら広瀬さんのelisp本で やってたやつだ。
49 名前:45 mailto:sage [03/09/30 12:42] >>48 やっぱり既出でしたか。 「やさしいEmacs‐Lisp講座」でしょうか。 関係ないんですが、探してるうちに www.gentei.org/~yuuji/lispmind/ へたどり着きました。 コンスセルを「トロッコ」と「連結器」に例えているのが、すごく面白くて納 得しつつ爆笑してしまいました。このシリーズ、再開してホスィです。 あ、また脱線していく。
50 名前:46 mailto:sage [03/09/30 13:59] 大昔に作ったことがあったけど、元のアイデアは「秀見え」からだった。 ttp://hide.maruo.co.jp/software/index.html diredの標準だと、n/C-n/Down, p/C-p/Up にそれぞれ同じキーバインディングがあるので、 どれかに表示する機能をバインドすればいいだけ。
51 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/30 22:28] '((spec ((:char-spec ascii :height any)))) の"height:"ってなんですか? Lispのマニュアルに載ってますか?
52 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/01 04:08] >51 それMeadowのフォント設定じゃない? だったらそれはMeadow独自だから、 EmacsLispのマニュアルには載って無い。
53 名前:厨房な質問なんですが。 mailto:sage [03/10/01 13:47] emacs ユーザーのスキルレベルというのはどんなもんなんでしょうか。 僕はぼんやりとですが、 初心者 寄せ集めでも.emacsを作れて、キーバインドができる 初級者 正規表現を操れて、簡単なelispが書ける 中級車 listを自由自在に操れて、人の書いたelispを書き直せる 上級者 マイナーモードやメジャーモードをスクラッチから書ける こういうもんかなと思ってますが。 実際のところ、どうなんでしょう>上級者の方々 教えていただけると、励みになりますんで。ひとつ。
54 名前:厨房な質問なんですが。 mailto:sage [03/10/01 13:49] × 中級車 ○ 中級者 でした。 僕はまだまだ軽四レベルです。
55 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/01 16:31] >>53 変なことを知りたがるなー メジャーモードは簡単だから中級者だね。広瀬さんのページでも見てね。 上級者には ccl も求められるかも。 あと、XEmacs などの微妙な違い。
56 名前:厨房な質問なんですが。 mailto:sage [03/10/01 16:56] >>55 > メジャーモードは簡単だから中級者だね。 マジスカ。 cclなんてとてもなんで、当分中級を目指します。 道は険しいなぁ…
57 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/01 16:57] 別に階級付けしなくても。 > 人の書いたelispを書き直せる こんなん、元のlisp次第だしさ。
58 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/01 19:41] 中級は尊い
59 名前:名無しさん@お腹いっぱい。 [03/10/01 22:45] >>52 いや、Meadowのフォント設定の例なのはわかっているんですけど、 :heightとかの lispの言語的にどーいう扱いかと。 lisp modeではhighlightされるし、なんか特別な扱いがあるのかと? 誰か教えてください。
60 名前:kaoru mailto:sage [03/10/02 00:23] >>59 変数として評価すると自身を返すシンボル。 : が頭についているシンボルについてくわしく知りたいなら keyword-symbols-constant-flag の docstring でも見てくださいな。 t や nil とは微妙に違う、こんなことをしたときに。 (setq t t) (setq :foo :foo) > 中級は尊い
61 名前:59 mailto:sage [03/10/02 23:09] >>60 なるほどです。 そのまんま、constantなsymbolなのですね。 これを使う側が、 (:char-spec ascii :height any) なんかで、リストの次の中身が何なのか、判断しているのですね。 ("char-spec" ascii "height" any) だと、文字列だから遅いんですか? lispでは、 (eq :hage :hage) は純粋にsymbolの比較onlyだから”軽い”ってことですか?
62 名前:kaoru mailto:sage [03/10/03 17:01] >>61 その手のやつは plist-get を使ってると思うんで docstring でも見てくださいな。 (plist-get '(nnsoup pink) 'nnsoup) => pink (plist-get '(:nnsoup pink) :nnsoup) => pink (plist-get '("nnsoup" pink) "nnsoup") => nil 中級は尊い
63 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/03 21:37] >>62 59 じゃないけど質問です。 plist で、普通のシンボルじゃなくって :hoge とかをよく使うのはなんでですか? 自分では、わかりやすいからなのかなーとか思ってます。
64 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/03 21:48] It's fukin' CLism.
65 名前:59 mailto:sage [03/10/03 23:46] >>62 あぁ、なるほどね。 ありがとうございます。 すっきりしました。 もう一度Emacs Lispマニュアル読み直しに逝ってくるでつ。
66 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/04 21:55] 長い文字列をコピーすることが多いので、こんなのを作ってみました。 一応、C-u で コピー時に含める文字を追加できます。 デフォルトの状態で[と]を区切文字にできないのがちょっとナニですが。 (defvar my-copy-word-include-chars "a-zA-z0-9\-") (defun my-copy-word (&optional arg) (interactive "P") (let ((skip-chars (concat my-copy-word-include-chars (when arg (read-string "inc. chars: ")))) beg end str) (save-excursion (skip-chars-backward skip-chars) (setq beg (point)) (skip-chars-forward skip-chars) (setq end (point))) (setq str (buffer-substring-no-properties beg end)) (kill-new str) (message "copied \"%s\"" str) )) ;; (global-set-key [?\C-=] 'my-copy-word)とか
67 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/05 03:05] 自分以外に便利だと思う人がいるとは思えないけど (defun my-recenter (&optional arg) (interactive "P") (if (equal last-command 'recenter) (recenter 0) (recenter arg) (setq this-command 'recenter)))
68 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/05 03:25] >>67 いちお簡単に機能ぐらい書いといたほうが。 equal は eq でいいね。 last-command が recenter と my-recenterの間で トグルするのを利用するわけか。
69 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/05 13:03] >>67 reposition-window ってのもあるけどな。
70 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/05 13:26] >>67 これを機会に docstring 書く癖つけれ
71 名前:66 mailto:sage [03/10/05 18:14] >>68 ,70 あ、僕もですね。肝心な説明を書いてませんでした。 >>66 は ポイント付近の語をkill-ringにコピーします。 docstringは、さしずめ "Copy a word at near the point to kill-ring." といったところでしょうか。 細かい説明書きは英語ではつらい…ボソ
72 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/06 09:40] ----BEGIN BASE64----(auto-vc-checkin.el.gz) H4sICAy4gD8AA2F1dG8tdmMtY2hlY2tpbi5lbAClVk1v2zgQPSdA/sPAl0jbyknR WwwUcINFsUCQFmnaRY8UObK5kUiHpOTqsr+9Q4p0VNtx3NZIAEnz9ebN40izGbDW 6aLjBV8if5BqijUURREeN8xJDtGwKKSC1qKAjp+dzmb+f18w1w1aWEu3hPn7zx9v vtz/ffMNbj/Cv/O7u/nt/bdpiLxfSgtWV27NDAJdC2mdkWXrqEKrBBpwS4QPt1/g Ayo0rIZPbVkTnhvJUVmkND7RDK5106ByzPRXw6MhN/1V2hzuo2i0wAHP9chKofgd eYCiFUfADk0PQpMdLOuwKNuqQjOlSrpdLF9Dr9uQhTMFTPzXWkfomfupZsi01Gto mOrBSU+T0yHfdEPoP8o6VtdXmwefWp/KNyNr4klRRK2ZKFbMLc8Jn5AGudOmfw1M CSh7h34Eq+DtQFYhi0BLfmIKMCenVciJxE9d67VvCr+vDFortbJDDWrIwP8XU2wY t0/w/C8z+NhSNjjfmn7+5GLRPW6LozCcGs6BfFCxkvCtl+hH4QGQ7YVo3j0fTbZN dFTlaOYb8t/uYf1AxTBprlvlirJPT+FtPrCRxCcwyY5EZaBjRnp4Z6eZwIrujkz7 5vLsFGDy123blJSm7H/SjlfyIMIQCLraamWSP1/QM6dkHfNrVdANNMho1luuiVqt 4Prr54NJ/TB/Oend9eGkfDjKIel878ElXraCLjp+Mah0MoCJ+wD8OiFthKPu+av1 ggBayxb4pBA6a32AFCZI0kejaNX8yhTh0nfUsAcsUljcD0WtqcDOORnFpsLBQuXB 6NZJFeu2aqes0MWYjiz3PWcBN+NOdjg8qNFBlkU6n6OZXE+ykvEHpJ2QkX1zHeH7 lVMo1iBkvDUGvWKDJfc/X4hKca3EcOmPHk34Kg3M7xg13FBX0SfL8BFSoXNyj3nI Eg70Hp15mCM5HYHOKxPGXaZwwnFU/BCV1DIJsSQjqfYo58QlLjwBdG6eCNCq7vf2 TV4v9B1W2h/3/TsdaBqbuaK3HSi6JKGlDpxPnzzzJF0mOnohp0UUoQz6jabRc8hY RVLdWRFBu8xF9QZC4ts5qiwJemtrZm+K4/arh3tCef5U7gldRgtlR8mwM+MwBFlB 9g52sB/cCidxGFLxGpmNJAZrNL70ziJuXh2qMRTx3wZ6vGEHmlZGL1QqdHgH5cfi uczzSGTQjcK4l8cyUAJGR5VU5PP57x04H7lNOp5Wtv8aoPXjAXdSPPNNsvc7leIs kNJJYT8A6fvoYgYLAAA= ----END BASE64----
73 名前:72 mailto:sage [03/10/06 09:41] >>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を使ってる場合は処理待ち増大で操作不能になる 可能性があるかもです。リビジョン番号肥大にも要注意です。 あと、複数メンバーのプロジェクトでは使わないほうが無難だと思います。
74 名前:72 mailto:sage [03/10/06 09:50] >>73 × RCSの場合はチェックインと同時にチェックアウトしますので ○ RCSの場合はチェックイン直後にチェックアウトしますので でし。
75 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/11 15:31] いいんだけど、check inしたらアンドゥ情報が失われるというのはちょっと…
76 名前:72 mailto:sage [03/10/13 19:49] 確かに、です。 vc がよく分かってないままに書いたのがいけなかったです。 もちょっと調べます。
77 名前:名無しさん@お腹いっぱい。 [03/10/14 07:00] modeによってshow-paren-mode を切り替えたいのですが lispがわかりません どのような設定になるのでしょうか?
78 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/14 07:05] (add-hook 'foobar-mode (function (lambda () (show-paren-mode 1))))
79 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/14 08:44] >>78 (add-hook 'foobar-mode-hook #'(lambda () (show-paren-mode 1))) でしょ? foobar-mode でなく foobar-mode-hook と。一般的にですが。
80 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/14 17:11] 78-79 有難う御座います
81 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 07:53] 初心者 寄せ集めでも.emacsを作れて、キーバインドができる 初級者 正規表現を操れて、簡単なelispが書ける listを自由自在に操れて、人の書いたelispを書き直せる マイナーモードやメジャーモードをスクラッチから書ける 中級者 Emacsにパッチをあてはじめる 上級者 Emacsをスクラッチから書ける
82 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 16:29] 中級は尊い。
83 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 17:58] >>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 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 18:18] >>83 訂正するほどじゃない。
85 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 18:21] スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。
86 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 18:42] #' を付けるほうが好きだけど、 nemacsからも利用する設定ファイルには使えない悲しさ。
87 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 19:01] >81 漏れはいまだ初心者でつね
88 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 01:53] >>81 上級者というのはxyzzyの亀井さんくらいのレベルなのか…。 道は遠い…というより一生かかってもムリ
89 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 21:16] 初心者 寄せ集めでも女を集めて、ハーレム を作れる 初級者 性器表現を操れて、簡単なエロ本が書ける チムポを自由自在に操れて、人に汚された女を調教し直せる S モードや M モードをスクラッチから調教できる 中級者 少女の頃から育成をはじめる 上級者 女を卵子から作り始める
90 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 21:25] >>89 はい、それから〜
91 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 21:34] 定義厨は失せて。
92 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/21 14:05] >>91 なんか Emacsスレのほうに飛び火してるみたいだが。
93 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/21 19:38] >>89 初心者のハードルやけに高いな、おい。
94 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 10:54] >>85 > スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。 www.mew.org/~kazu/doc/elisp/function.html
95 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 11:11] >>94 結局「スタイルの問題」じゃないの?
96 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 11:26] >94 kazuのeispは信じられない程アレなので参考にならない。
97 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 11:43] #' ではなく ' を使うと、バイトコンパイルされない場合がある。ってことでしょ。
98 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 11:51] >>96 あ、mew 使ってないんでよく知らないんだけどどのへんがアレなの?
99 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 13:34] >>97 でもこのスレでは生のlambdaと functionで囲んだのだけ扱ってて、 quoteは関係無かったからさ。なのに 94が変な反応するから。
100 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/23 12:00] 今日、はじめて包囲アドバイスなるものを使ってみマスタ。 強力すぎてちょっと怖いけど、試しに ;; デフォルト動作でそのウィンドウも消すようにする。 (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 ウィンドウなんかもそんな挙動になってくれるからスゴイ楽でし。 でもやっぱし怖いす。
101 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/23 14:51] 包囲アドバイスって訳語は、日本語infoで使われちゃっていますけど、 あまり良さそうに思えないですね。語感が合わなくて。
102 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 06:20] >>96 > kazuのeispは信じられない程アレなので参考にならない。 どのへんが?
103 名前: ◆kXMewIMy86 mailto:sage [03/10/24 06:28] ま、いろいろとね。。。
104 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 08:30] >>103 FUD?
105 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 12:41] >>104 そうとも言いきれなさそうだから困る。 リスト遊びの評判もだが。
106 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 14:45] >>105 広瀬さんの本はどう?