1 名前:名無しさん@お腹いっぱい。 [2011/11/29(火) 17:50:44.24 ] 前スレ Emacs Part 38 hibari.2ch.net/test/read.cgi/unix/1308635178/
545 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 14:56:12.28 ] elispを編集しているとcomment-dwimの便利さに驚きます そこでdefine-generim-modeで作ったモードにも同様の機能を盛り込みたいのですが どうすればよいのですか elispのコメントの仕様と同じものを希望します 具体的には、文字列が入力されている行なら行末に;1つ (私の環境ではelispでは行末から20文字くらい右につきます) リージョンが設定されているか 行に何も書いていなければ行頭に;2つ よろしくお願いします
546 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 14:59:19.24 ] >>544 いいことだな。
547 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 15:01:11.90 ] おいおいゴミかきこが増えたな るびきちのせいでこのスレのレベルが低下するのは勘弁だぜ
548 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 15:01:27.84 ] >>545 外してたらすまんが、define-generic-mode の引数で正しくコメントの書式設定してたら commend-dwim で普通にその動作にならない?
549 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 15:02:47.50 ] 2chなんぞよりredditがよっぽど有意義な盛り上がりを見せてるぞ。 www.reddit.com/r/emacs
550 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 15:14:40.55 ] ,.,.,.,.,.,.,.,.,__ ,,;f::::::::::::::::::::::ヽ i::/' ̄ ̄ ̄ヾi::l |::| / \,|::| |r-( ・ );( ・ )-| ( ヽ :::(__)..:: } <・・・で? ,____/ヽ -==- / r'"ヽ t、 ヽ___/ / 、、i ヽ__,,/ / ヽノ j , j |ヽ |⌒`'、__ / / /r | {  ̄''ー-、,,_,ヘ^ | ゝ-,,,_____)--、j / \__ /
551 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 15:40:58.79 ] >>539 別解っぽいものを書いてみた。 call-interactively は使わないほうが行儀が良いような気がする。 >>544 変だったら指摘してくれると大助かり。 (defun somefunc (str) (interactive "sinput: ") (if (save-excursion (goto-char (point-min)) (save-match-data (search-forward str nil 'noerror))) (call-interactively 'somefunc) (insert str))) ただし call-interactively は使わないほうが行儀が良い気がする。
552 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 17:21:25.66 ] Emacs 用バイブコントローラ www.youtube.com/watch?feature=player_detailpage&v=D1sXuHnf_lo#t=78s
553 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 17:31:06.54 ] sdic が独自のポップアップ表示してるせいで popwin 管理下に置けなくてストレスMAX
554 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 17:45:38.45 ] >>553 ほれ ;; popwin 管理下におく (add-to-list 'popwin:special-display-config `(,sdic-buffer-name)) ;; sdic-display-buffer 書き換え (defadvice sdic-display-buffer (around sdic-display-buffer-normalize activate) "sdic のバッファ表示を普通にする。" (let ((p (or (ad-get-arg 0) (point)))) (and sdic-warning-hidden-entry (> p (point-min)) (message "この前にもエントリがあります。")) (goto-char p)) (display-buffer (get-buffer sdic-buffer-name)))
555 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 17:53:07.75 ] >>554 ありがとでも sdic-describe-word-at-point がちょっと変な気がする
556 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 17:59:14.72 ] >>555 ほれ。あとちょっと挙動違ってた部分もついでになおした。 ;; sdic-display-buffer 書き換え (defadvice sdic-display-buffer (around sdic-display-buffer-normalize activate) "sdic のバッファ表示を普通にする。" (setq ad-return-value (buffer-size)) (let ((p (or (ad-get-arg 0) (point)))) (and sdic-warning-hidden-entry (> p (point-min)) (message "この前にもエントリがあります。")) (goto-char p) (display-buffer (get-buffer sdic-buffer-name)) (set-window-start (get-buffer-window sdic-buffer-name) p)))
557 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 18:14:46.00 ] 追加。閉じる時の変なチラチラも消える。 (defadvice sdic-other-window (around sdic-other-normalize activate) "sdic のバッファ移動を普通にする。" (other-window 1)) (defadvice sdic-close-window (around sdic-close-normalize activate) "sdic のバッファクローズを普通にする。" (bury-buffer sdic-buffer-name))
558 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 18:20:47.72 ] >>554 >(add-to-list 'popwin:special-display-config `(,sdic-buffer-name)) を (add-to-list 'popwin:special-display-config `(,sdic-buffer-name ,sdic-window-height)) に直したら大分良くなった
559 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 18:21:28.63 ] ミスった (add-to-list 'popwin:special-display-config `(,sdic-buffer-name :height ,sdic-window-height))
560 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 18:33:53.57 ] ありがてえ・・・
561 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 19:08:58.15 ] 速攻でコード書いてくれて凄腕って思うだろ? こいつらみんな無職なんだぜ……
562 名前:545 mailto:sage [2012/01/06(金) 19:46:26.97 ] >>548 ありがとうございます。確認してみました。 (define-generic-mode 'my-mode '(";") こういう書き出しではじまるgeneric-modeで ;の出力される位置は行頭行末とも適切だとわかったのですがただ行頭が;;になりません 普通generic-modeでこう設定すると行頭は;;となるのでしょうか
563 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 20:19:12.42 ] >>562 emacs-lisp-mode みてみたら、どうやら comment-add って変数で ; の数を制御しているみたい。 モードのセットアップしてるところで (setq (make-local-variable 'comment-add) 1) ってやってみて。
564 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 20:19:20.55 ] ここがサポート掲示板か
565 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 20:20:28.45 ] まちがった setq じゃなくて set ね
566 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 20:23:51.57 ] にわかはるびきちが引き取れって言ってるだろうが!!
567 名前:545 mailto:sage [2012/01/06(金) 20:28:48.11 ] >>563 ありがとうございます。意図した通りの結果が出てきました!
568 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 20:31:57.02 ] きちぼんは誰かに献本されなかったのだろうか。 思うにあいつかなりドケチだよな。
569 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 20:41:56.80 ] 書店が献本したがレビューが後回しにされてる d.hatena.ne.jp/rokujyouhitoma/20110816/1313468638 lispじゃなくて普通の方だな
570 名前:539 mailto:sage [2012/01/06(金) 21:11:16.68 ] >>542-543 >>551 ありがとうございます。save-match-data の使い方を勉強します。 >>541 説明が不足でした。重複している処理なので whileのたぐいで一度だけ書けばどうにかならないかと悩んでいました。 書き方は再帰でもloopでもかまいませんでした。
571 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/06(金) 21:23:48.68 ] >>570 save-match-data は >>542 が string-match 使った時に混入しただけで search-forward 使う分には入れる必要ないかと。
572 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 00:03:43.68 ] あとは bf-mode が popwin 対応すればもう勝利は目前だな。
573 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 00:07:29.32 ] 必死でアピールしてるな。
574 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 00:30:53.33 ] bf-modeみたいなメンテナのはっきりしないelispは埋もれていく定め
575 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 01:04:50.46 ] もしかして eval-after-load の中のフォームってバイトコンパイルされなかったりする?
576 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 01:23:09.55 ] てst
577 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 10:32:37.89 ] Android 版ありますか?
578 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 10:42:25.69 ] iOS版は確かあったけどAndroid版はまだじゃないかなあ と思ったら一応出来ないことはないみたい www.emacswiki.org/emacs/EmacsOnAndroid
579 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 11:44:15.55 ] emacs から emacs を立ち上げれば elisp だけでの並列プログラミングが実現出来るんじゃないか? マルチスレッドじゃなくマルチプロセスだけど。
580 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 11:46:26.85 ] Androidのバージョンとか不明ですが Emacs for Android ttp://d.hatena.ne.jp/MATSUZAKI/20101104/1288882148
581 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 12:25:49.29 ] >>579 emacs24からはポート指定でサーバ立ち上げられるし server-eval-at なんてのも追加されてるからあながち間違ったアプローチじゃないとおもう。
582 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 14:14:17.26 ] replace-regexpについて質問します このようなテキストがあるところで akasatana hamayarawa ikisitini 「元のテキスト 元のテキスト」のようにテキストを複製するかのような処理を 正規表現の置換で行いたいのですがうまくいきません 置換対象の文字列検索はre-builderでは大丈夫でした replace-regexp [ret] \\(.+\\) [ret] \\1 \\1 [ret] 何を修正すればよいのでしょうか
583 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 14:21:09.16 ] \ を \\ と書く時ってのはどういう理由でそれが必要だったのか考え直せ
584 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 14:39:22.04 ] emacs の正規表現はもうちょっとなんとかならんのかと常々思うわ。
585 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 15:03:07.77 ] 似たような問題はどんな言語いじっててもあるからね。
586 名前:582 mailto:sage [2012/01/07(土) 16:00:50.27 ] >>583 なるほど、re-builderは""内に書くから\\(\\)と書かなければならなくて、 replace-regexpは""内に書かないから\(\)と書くということですね すっきりしました
587 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 16:21:58.76 ] ELPAの作者がemacsをcommon lispで書き直そうとしているみたい The Cliffs of Inanity ? Emacs and Common Lisp tromey.com/blog/?p=709 そうなると長い目で見ればcommon lispを知っておいた方がよさそう
588 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 16:26:03.17 ] EmacsをCommon Lispでって・・・・ 10年前に Erik Naggum が言ってたのと同じことやん。 歴史は繰り返す。
589 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 16:53:47.36 ] climacs があるけれど、elisp の便利な資産が使えないからなあ。
590 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 17:10:02.39 ] >>588 このあたりの話が関係するか。emacsをcommon lispで、っていうのは真っ正面から議論されていたのかな? Island Life - 「Cで書くコードの方がCommon Lispで書くより速いって人がいたら、それは彼のCの技量が高すぎるってことだね。」 blog.practical-scheme.net/shiro/20100620a-lisp-speed
591 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 17:15:34.53 ] guile emacs の方がいいよ それはそうと emacs 24で`image-library-alist' is renamed to `dynamic-library-alist' ってなってるの見て ああもう本当にストールマンいなくなったんだなと実感した
592 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 17:22:54.27 ] elisp to cl emasc なコンバータを作るとか。
593 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 17:32:50.08 ] >>584 正規表現リテラルでもありゃあいいのにな。
594 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 17:51:12.15 ] >>591 のストールマンなら聞いたことがあるが他の人は寡聞にして知らない emacsの開発歴史というよりも どういう人がemacsにどういう影響を与えたか、を聞きたい
595 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 18:00:10.33 ] まず名前があがるのがるびきちさんだな
596 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 18:03:58.85 ] >>594 ja.wikipedia.org/wiki/Emacs 結構ちゃんと人物も記載されてるよ。
597 名前:545 mailto:sage [2012/01/07(土) 19:07:20.82 ] define-generic-modeの質問をした者ですが関連する質問をします test_func { test } のように{が行末に来たときは次の行をスペース2つ分(かタブ1つ分)右にシフトさせて }が行頭に来たときには左にシフトさせる設定はdefine-generic-mode向けに何かありますか (上の例では全角スペースを使っています) 単体のemacsでは設定できずyasnippetのようなものを併用しなければならないでしょうか
598 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 19:52:42.00 ] >>597 凝ったことしたくなったら generic-mode 使わないで素でmajor-mode作ってもいいような気もするけど { を入力したときに勝手に整形されるようにするのか、 改行したときに勝手にそうなるようにしたいのか、 C-i だの TAB だの入力して indent したときにそうしたいのかによって微妙に入り口は異なると思うけど 基本的には自力で整形処理を書かなきゃいけないと思うよ。 c-mode の c-indent-line の辺り読んで頑張れ
599 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 19:59:36.41 ] indent-line-function に前の行の { の位置をみてインデント位置を調節する関数を設定する。
600 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 22:41:57.81 ] gnusわかりにくすぎる
601 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 22:46:09.78 ] ttp://blog.livedoor.jp/dankogai/archives/51763038.html (require 'cl) ; cl (defun mapbetween (f l) (let (y) (mapl #'(lambda (x) (when (cadr x) (push (funcall f (cadr x) (car x)) y))) l) (nreverse y))) ; mapbetween (mapbetween #'+ '(1 2 3 4 5)) ; (3 5 7 9) (mapbetween #'- '(0 1 4 9)) ; (1 3 5)
602 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 22:47:16.57 ] いや、ダンコーガイに直接コメントしてやれよ
603 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/07(土) 22:47:31.32 ] >>527 もう解決してるかもしれないけど、別のスクリプト (qlgrep) に lgrep を包むって方法は採れそう。 #!/bin/sh lgrep "$@" > /dev/null 2>&1 さらに別の関数 (find-lgrep-dired) も用意する。 (defun find-lgrep-dired (dir regexp) (interactive "DFind-grep (directory): \nsFind-grep (grep regexp): ") (find-dired dir (concat "-type f -exec qlgrep - " (shell-quote-argument regexp) " " (shell-quote-argument "{}") " " ;; Doesn't work with "+". (shell-quote-argument ";"))))
604 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 12:25:43.23 ] which-func-mode ってなんであんなにお馬鹿なんだろう
605 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 12:29:35.16 ] 汎用だからね。
606 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 13:46:03.01 ] minibuffer だけスクロールバー無しって出来るんでしょうか?
607 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 14:16:32.10 ] >>597 解説とか殆ど見たことないけど、emacs23からは インデントカスタマイズ用の smie ってライブラリが入ってるみたい。 つかったことないけどドキュメント読んだ感じ結構凝ったこと出来そうね。 www.gnu.org/software/emacs/manual/html_node/elisp/SMIE.html#SMIE emacs24 の octave-mode とかは実際に使ってるみたいだから見てみたけど 文法定義から始まる重量級のライブラリだなこれ
608 名前:名無しさん@お腹いっぱい。 [2012/01/08(日) 17:34:12.70 ] diredでファイル一覧を表示させた後,そこに表示されたあるファイルについ て,フルパス付きのファイル名をkill-ring-saveする方法はあるでしょうか。 ちょっとわかりにくかもしれませんが,例えば,diredで一覧表示した.emacs に適用したなら,/home/hogehoge/.emacs という情報をコピペできる関数を探 しています。
609 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 17:49:12.34 ] lookupってもう終わってるの? これの次は?
610 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 17:51:00.10 ] >>608 C-0w
611 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 19:00:19.17 ] >>608 C-u 0 w w runs the command dired-copy-filename-as-kill, which is an interactive compiled Lisp function in `dired.el'. It is bound to w. (dired-copy-filename-as-kill &optional ARG) Copy names of marked (or next ARG) files into the kill ring. The names are separated by a space. With a zero prefix arg, use the absolute file name of each marked file.
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 19:51:29.65 ] >>609 まだ開発続いてると思うけど。
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 20:38:47.17 ] >>609 lookup て辞書検索できる lookup のことかな。 次といっても dict と epwing が理解できればそれで十分に思える、自分には。
614 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 20:54:03.71 ] epwing自体がおわコンというか… 変換スクリプトもメンテされてないし、入手不可能だったり。
615 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 20:57:40.10 ] ネット辞書から引けたほうがまだいいわな。 ただ emacs-w3m がいまいちだからねえ。 emacs-xwidget + webkit が安定して使えるようになったらうっはうはなんだが・・・
616 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 21:14:40.45 ] >>615 それなら普通にブラウザ使う方がいい。
617 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 21:56:44.63 ] >>612 RHEL6のx64でまともに動かんかった emacsが悪いのか外部が悪いのかよく分からん 4文字の単語を退いたときだけ駄目とか変な挙動いろいろで調べる気が起きん
618 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 22:02:12.17 ] >>616 むしろブラウザだけでいい
619 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 22:21:01.13 ] firefox+keysnailにファイルエディット機能つければemacsの代わりに使えるんじゃね?
620 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 22:25:56.90 ] むしろfirefoxにemacsを組み込んだ方が
621 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 22:34:39.67 ] ブラウザにEmacs組み込むのと Emacsにブラウザ組み込むのどっちが楽だろう
622 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 22:42:25.03 ] >>621 後者は既出感が…
623 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 22:44:19.10 ] ちゃんとJavaScript 解釈してかつ elisp からブラウザの状態弄れるのがいいなあ
624 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/08(日) 22:48:48.36 ] なんか面白い elisp ないかしらん
625 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 01:29:57.86 ] >>624 seimei.el tako.el trr.el
626 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 01:43:55.29 ] なんであれだけ発行部数出てないんだろうねぇ。
627 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 02:55:49.39 ] >>621 Javascript PC Emulator ttp://bellard.org/jslinux/ で、ブラウザ上でQEmacsが使えます。 ~ # which emacs /usr/bin/emacs ~ # ls -l /usr/bin/emacs lrwxrwxrwx 1 root root 2 May 14 2011 /usr/bin/emacs -> qe ~ # ls -l /usr/bin/qe -rwxr-xr-x 1 root root 108240 May 16 2011 /usr/bin/qe ~ # strings /usr/bin/emacs | fgrep -i version QEmacs version 0.3.1, Copyright (c) 2000-2003 Fabrice Bellard
628 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 03:17:21.81 ] 【スタッフ募集】路線名を擬人化させたエロゲ【鉄オタも】 hayabusa.2ch.net/test/read.cgi/news4vip/1326032146/ 【wiki】 www38.atwiki.jp/train_erog/ 【避難所】 jbbs.livedoor.jp/game/54004/
629 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 08:39:46.95 ] >>625 tako.el みて普通に日本語のシンボル名作れることに驚愕した
630 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 12:53:58.93 ] 関数の中で直接呼び出されている関数*だけ*置き換える方法ってありませんでしょうか? (defun greeting (msg who) (message "%s, %s" msg who)) (defun hello (who) (message "===hello===") (greeting "hello" who)) みたいになっている時、 hello の中で直接呼ばれてる message だけ置き換えたいのです。 flet を使うと greeting の中の message まで置き換えられてしまいます。 関数定義をそのまま引っ張ってきて書き換えたものを再定義したり fset したりする以外に方法はありませんでしょうか?
631 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 12:58:14.67 ] 関数を around アドバイスして flet ってやったらできないんだっけ?
632 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 12:58:40.71 ] あ、馬鹿なこと言ったごめ。
633 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 13:57:27.13 ] 全然うまい方法が思いつかなかったので、じゃあせめて置き換え後の関数で 呼び出し元の関数を判断して挙動を変えようと思ったのですが、 今度は呼び出し元の関数の調べ方がわかりません。 b.hatena.ne.jp/IMAKADO/elisp/callee/ とかは見つかったんですが 肝心のリンク先が壊れて見れないという・・・トレースとか書いてあるから バックトレースの内容を参照するってことなんでしょうかね・・難しい。
634 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 14:42:51.45 ] なんかものすごく力技な感じになりましたが一応実装できたので貼っておきます。 なんかもっとスマートな方法はないのか・・・・ (defun greeting (msg who) (message "%s, %s" msg who)) (defun hello (who) (message "===hello===") (greeting "hello" who)) (defun callee () "呼び出し元の関数名を文字列で返す" (let ((bt (split-string (with-output-to-string (backtrace)) "^ *\\|\n" t))) (while (and bt (not (string-match "^callee\\>" (pop bt))))) (cadr bt))) (defadvice hello (around ad-hello-no-heading activate compile) "hello が直で呼び出している message だけ ignore に置き換える" (let ((org-message (symbol-function 'message))) (flet ((message (format-string &rest args) (if (string-match "^ad-Orig-hello\\>" (callee)) ;; advice の場合は ad-Orig-* になる (ignore) (apply org-message format-string args)))) ad-do-it)))
635 名前:597 mailto:sage [2012/01/09(月) 16:29:31.21 ] >>598-599 >>607 ありがとうございます。 indent-line-function等で制御するよりも>>607 を改変すればよさそうだと思いました ですが改変がうまくいきません if (x>0) { proc1() proc2() } else if (x<0) { proc3() proc4() } else { proc5() proc6() } こういう風に自動的にインデントさせようとして www.gnu.org/software/emacs/manual//html_node/elisp/SMIE-Grammar.html#SMIE-Grammar の("then" insts "end")を("{" insts "}")、 ("if" exp "then" inst "else" inst)を("if" exp inst "else" inst)、 (insts (insts ";" insts) (inst))を(insts (insts insts) (inst))、 に書き換えましたが、{を入力してC-jを押すと(newline-and-indent) (wrong-type-argument integer-or-marker-p nil) とエラーが出ました このif (test) {procs} else if (test) {procs} else {procs} を (procsは改行区切りです) インデントさえできればいいのですが どうすればよいでしょうか
636 名前:597 mailto:sage [2012/01/09(月) 16:39:18.77 ] あと、調べていて気づいたのですが www.emacswiki.org/emacs/IndentingC#toc1 このcc modeをdefine-generic-modeで作成したモードで 使えればよさそうだと思いました というのも整えようとしているのがc++ likeのコードに似ているからです 上のsmie改変がうまくいかないときにはこれで十分です define-generic-modeで作成したモードの初期化部分で このcc modeの機能を利用することはできるでしょうか
637 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 16:39:19.97 ] ちなみにサンプルの設定ではうまく動いたの? smieって何やってるのかわからなかったけど smie-setup で indent-line-function 設定してるのな。 ちょっと真面目に使い方勉強してみるか。
638 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 16:40:28.70 ] >>636 特定のモードを元にモードを作る場合は define-derived-mode を使うといいよ。
639 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 17:09:57.88 ] >>635 "}"とかが token として認識されてないんじゃないの?
640 名前:597 mailto:sage [2012/01/09(月) 17:50:59.31 ] >>637 はい。サンプルは動きました。↓の各セクションから以下の設定をコピペして www.gnu.org/software/emacs/manual//html_node/elisp/SMIE.html#SMIE (eval-when-compile (require 'cl)) (require 'smie) (defvar sample-smie-grammar (defvar sample-keywords-regexp (defun sample-smie-forward-token () (defun sample-smie-backward-token () インデント分をこう設定し (defvar sample-indent-basic 4) メジャーモードを作成する (define-generic-mode の初期化部分で (list (function (lambda () (add-hook 'hoge-mode-hook (lambda () (smie-setup sample-smie-grammar #'sample-smie-rules) と書きました。 あと、>>635 の(insts (insts ";" insts) (inst))は書き換えないままでした 書き換えるとエラーになります すみません >>639 確かにtokenの設定が抜け落ちていました。ですが (defvar sample-keywords-regexp (regexp-opt '("+" "*" "," ";" ">" ">=" "<" "<=" ":=" "="))) を (defvar sample-keywords-regexp (regexp-opt '("+" "*" "," ";" ">" ">=" "<" "<=" ":=" "=" "{" "}" "(" ")"))) に書き換えましたがだめでした >>638 なるほど、ただキーワードの色づけ設定は引き継ぎたくないのでdefine-gereric-modeで設定しました インデントとキーフックのみ特定のモードを引き継ぐという機能があればいいのですが
641 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 18:02:41.16 ] >>640 自分とこでちょっと動かしてみたいけど長そうだから ↓ここにコピペしてURL教えてくれ paste.lisp.org/new/emacs
642 名前:597 mailto:sage [2012/01/09(月) 19:05:20.29 ] 書きました paste.lisp.org/display/126938 よろしくお願いします
643 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 19:42:06.40 ] うおお、難しい とりあえずコメントの ';' と 区切り文字の ';' が干渉してるのと sample-smie-forward-token で a+b みたいなのが一気に通過しちゃうのが気になったけど じっくり取り組まないとわからんなあ・・・
644 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/09(月) 21:32:24.24 ] サンプルのまんまで実行しても emacs 23 では wrong-type-argument が出るねえ。 emacs 24 で実行するとエラーは出ないけどちゃんと動いてるような感じがしない。 サンプルそのままで実行してもぶら下がりelseがちゃんと処理できてないように見えるなぁ。
645 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/10(火) 00:11:10.77 ] >>629 skk に含まれてる skk-ja-names.el とか見てみろよ。 こんなだぞ。 (defalias 'SKKモード 'skk-mode) (defalias 'SKKのバージョン 'skk-version) (defalias 'SKKのバグを報告する 'skk-submit-bug-report) (defalias 'SKKのチュートリアル 'skk-tutorial)
646 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/10(火) 11:26:09.75 ] load-path の追加に normal-top-level-add-subdirs-to-load-path を使うのを 止めたら起動時間が 500〜700ms 近く早くなって感動した
647 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/10(火) 15:26:23.62 ] emacs使いの大半はcapslockをctrlにしている? それともそのまま?
648 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/10(火) 15:30:40.42 ] そんなの調査のしようがないからなぁ。
649 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/10(火) 15:34:21.26 ] 大半かどうかは知らんけどEmacs関係なく一定数いることは確か。 MSなんか公式でCTRL<=>CAPS逆にするドライバ配布してるし。 これも呪いの一つだとは思う。
650 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/10(火) 17:29:15.59 ] なんでこれでエラーがでるんでしょう? (string-match (migemo-get-pattern "popw") "popwin") ここまでは大丈夫なのに。 (string-match (migemo-get-pattern "pop") "popwin")
651 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/10(火) 17:37:09.14 ] 失礼しやした。 キャッシュがぶっ壊れていただけだった。
652 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/10(火) 18:44:24.40 ] >>649 MSのドライバ配布なんて聞いたことがなかったから調べてみた www.atmarkit.co.jp/fwin2k/win2ktips/1182ctrl2cap/ctrl2cap.html ふむふむこれか。楽ちんなツールもあるもんだな
653 名前: 忍法帖【Lv=34,xxxPT】 mailto:sage [2012/01/10(火) 18:48:32.71 ] 入れ替えじゃなくてcapslockをctrlにしたい
654 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/10(火) 19:51:36.16 ] 職場なんかだと交換よりCAPS潰すの方が ちょっと同僚が叩いた時とかに面倒がなくていいわ
655 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 00:27:15.52 ] 最新のソースを取得するにはどうすればいいんだ? ttp://savannah.gnu.org/projects/emacs/ ここに書いてあるとおり bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk としても、メールで[Emacs-diffs]が届いた時点のソースが取得出来ない。 その後、bzr updateしても一向に更新されないし、bzrよーわからん。 そもそも、bzr branchが異様に時間が掛かるし、bzr腐ってる。
656 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 00:32:21.68 ] github のミラー使ったら? https://github.com/emacsmirror/emacs >A Mirror of the Emacs Bazaar repository ― Read more >www.emacswiki.org/emacs/EmacsFromGit
657 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 01:05:13.24 ] gitのミラーはとまってることがまれにあるのが玉に瑕。
658 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 08:32:51.99 ] git clone git://git.savannah.gnu.org/emacs.git
659 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 10:21:02.18 ] ecbとかセマンティックは消滅しちゃうんだろうか
660 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 12:14:29.24 ] 23.4のtarballsまだかよ。
661 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 12:40:39.01 ] カーソル移動は(previous-line)でできることは分かったのですが、 カーソル位置にある文字とその一つ前の文字を取得する関数はありますか? 取得した文字によって処理を分岐させたいのですが方法が分かりません
662 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 12:56:44.81 ] \C-x = が似たようなことをやっている。
663 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 13:01:57.88 ] char-after char-before following-char preceding-char
664 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 13:08:21.16 ] >>662-663 ありがとうございます
665 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 13:49:11.90 ] >>659 いや、普通に残ってる。 w3 っていつの間に消えてたんだろう・・・
666 名前:名無しさん@お腹いっぱい。 [2012/01/11(水) 16:05:23.89 ] *scratch*バッファをキルしたあとで,また*scratch*バッファを 開く方法無いですか? やりたいことは,*scratch*バッファの内容を復元することではなく メモ用のバッファを作ることなのですが・・・
667 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 16:09:05.64 ] >>666 www.bookshelf.jp/soft/meadow_29.html#SEC392 とかを参考に。
668 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 16:10:02.14 ] 普通に C-x b で *scratch* を開けばいいよ。別に特別なバッファじゃない。 お好みで initial-major-mode にしてあるメジャーモードにすればいい。 scratch の内容保存系の lisp おいてるところよく見ると 消せないようにするだけの設定が抜き出せるからそれ参考にしてみれば?
669 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 16:10:06.91 ] >>666 www.bookshelf.jp/soft/meadow_11.html#SEC75 つーかこっちか。 モード設定は勝手にやってくれるかも。
670 名前:名無しさん@お腹いっぱい。 [2012/01/11(水) 16:36:53.69 ] >>667 ,668,669 しばらくC-x b *scratch* を使ってみることにします. ありがとうございます.
671 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 19:20:52.27 ] abbrevの登録単語削除の方法がサパーり判らんのでスゲームカムカしてきた C-u C-x a l
672 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 21:05:05.68 ] M-x list-abbrevs して適当に消して C-c C-c じゃない? abbrev まともにつかったことないな・・・
673 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 21:43:02.80 ] 無名関数の再帰を調べていたら Y コンビネータが出てきた あのわけわからん世界に繋がりつつあるんだと思うとちょっとうれしい
674 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 21:56:17.64 ] 文字列中の "$@"、または "$" をそれぞれスペース一個にする処理を書いています。 ただし、"$$" はエスケープ処理のパターンなので "$$@" なんて場合は "$$ " に置換したいです。 ( "hoge$@$$@hage" なんかは "hoge $ hage"になる) こういうエスケープ文字を含む置換は一回の置換で済ますのは難しいでしょうか?
675 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 22:18:20.68 ] >>674 > ただし、"$$" はエスケープ処理のパターンなので "$$@" なんて場合は "$$ " に置換したいです。 だと "hoge$@$$@hage" -> "hoge $$ hage" にならないといけないような。 とりあえず (replace-regexp-in-string "\\(\\$?\\)\\$@?" "\\1 " "hoge$@$$@hage") -> "hoge $ hage" となる。
676 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 22:40:32.37 ] >>675 ああっ・・・すみません、"hoge$@$$@hage" は "hoge $$ hage" でした。 なるほど、直前の $ があれば保存するって書き方も出来るんですね。 もう少し考えてみます。ありがとうございます。
677 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 22:44:05.81 ] >>676 下手糞だけれど、 (replace-regexp-in-string "\\(\\$?\\)\\$@?" "\\1\\1 " "hoge$@$$@hage")
678 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/11(水) 22:57:17.40 ] >>677 $$ の場合、前の$を2つおいちゃうわけですね ただその場合 "hoge$$hage" が "hoge$$ hage" になってしまいます ううむ・・・
679 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/12(木) 08:16:55.07 ] emacs24 のパッケージシステム、ELPAの登録少なすぎ糞がと思ってたけど mamalade 追加したら予想してたよりしっかり登録されてて感心した。
680 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/12(木) 09:45:12.56 ] ELPA標準+marmaladeでel-getはオワコンか
681 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/12(木) 09:57:57.84 ] el-get + githubのemacsmirror これ最強な
682 名前:名無しさん@お腹いっぱい。 [2012/01/12(木) 10:00:49.74 ] emacsmirror いいよな。 emacswiki のelisp 落としたい放題
683 名前:名無しさん@お腹いっぱい。 [2012/01/12(木) 10:23:06.46 ] そんなものよりるびきちさんのauto-installを使えよ
684 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/12(木) 11:34:39.88 ] emacsmirrorのレポジトリ群からel-get用レシピ生成するelispはよ
685 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/12(木) 18:37:38.11 ] emacs24のlexical-binding、ヘッダに lexical-binding: t とか入れると 全部の let が文脈依存になるのかよ・・・ 使いづれえ
686 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 07:43:15.33 ] scratch buffer で lexical どうやんのかな
687 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 10:28:58.27 ] lexical-let を正式サポートでよかったのに。
688 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 10:35:18.21 ] 冗談はやめてくれ。
689 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 10:41:53.08 ] *scratch* で M-: (setq lexical-binding t) でいいんじゃない? ;; 今まで (setq a 100) (defun foo () (message "%d" a)) (progn (let ((a 200)) (foo)) (foo)) => 200 100 ;; lex bind (setq lexical-binding t) (setq a 100) (defun foo () (message "%d" a)) (progn (let ((a 200)) (foo)) (foo)) => 100 100 ただし、a が defvar で宣言されている場合は lexical-binding を t にしてても強制的に dynamical binding (ようするに今までのと同じ)になる。 だから基本的には置き換えしてもそんなに影響はでないはず。
690 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 10:51:34.62 ] あと lexical-binding t にすると lambda が closure を返すようになるな。 バッファ内の未評価の defvar とかが評価結果に含まれててなんかすごく気持ち悪いけど。
691 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 10:57:03.63 ] バッククオート展開で無理やり変数埋め込みとかしなくてよくなるのは嬉しい
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 11:06:45.92 ] >>689 どっかで defvar してるシンボル名とバッティングしないような名前を使わなきゃいけないところは 変わらんってことか。 ネームスペースはよ
693 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 14:48:38.91 ] auto-completeでメジャーモードhoge-modeの補完候補を~/.emacs.d/ac-dict/hoge-modeの各行としたいです tabを押さずに自動的に補完候補を表示するスタイルにしたいと思います .emacsに (setq ac-auto-start t) (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") (add-to-list 'ac-modes 'hoge-mode) と書いてhoge-modeを~/.emacs.d/ac-dictに置いたのですが何にもなりません ac-dict/hoge-modeは改行(lf)区切りなのですが、それがいけないのでしょうか cx4a.org/software/auto-complete/manual.ja.html このマニュアルにはそういうことが書いていないのでよくわかりません
694 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 15:27:05.91 ] 当然だけど (require 'auto-complete-config) とか (ac-config-default) とかは普通に書いてあるんだよな?
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/13(金) 16:16:39.75 ] >>694 (require 'auto-complete-config) は書いていましたが (ac-config-default)が抜けていました。 ばっちり動きました!ありがとうございました。
696 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 10:09:51.35 ] anythingってupgradeするたびに動かなくなるね。ぽぽぽぽーん。。 すごいわ。修正された行数とかもすさまじいし。。 うんざり。
697 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 10:20:52.49 ] Semanticはちゃんと補完してくれてかなりいいんだけど、カーソルの下の 関数名の定義場所がエコーエリアに表示されているにもかかわらず、 そこに飛ぶ術がないという糞仕様。 そもそも使いづらいからAnything用のインターフェースでも作るかな…
698 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 10:27:57.09 ] あ、動いた。どうやらanything-match-plugin.elが必須になったぽいな。 そしてこのモッサリ感。鈍重すぎる。 もともと腐ってたのが白骨化した死骸のような感じになってきたな。
699 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 12:07:34.45 ] ごめん質問。ひさびさのEmacsで困ってる。 eshellでも(call-proccess ... )の出力をバッファに出しても 表示される日本語部分が化けてしまう。UTF-8なテキストファイル開くと化けない。 UTF-8環境なLinux上。Emacs23にて。 set-language-environment "Japanese"だし set-terminal-coding-systemもset-keyboard-coding-systemも set-buffer-file-coding-systemもdefault-buffer-file-coding-systemも 全部utf-8としたし、実際化けてるバッファでも左下はU:と表示されてるからutf-8に なってるはずなんだが。 なにか解決のヒントくれたらおいら嬉しいのでおねがいしまふ
700 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 12:14:26.08 ] default-coding-system は設定してある? 最近は個別にコーディングシステム設定しないで (prefer-coding-system 'utf-8-unix) とかするもんらしい。 バッファ/ファイル名からプロセスから何から何まで一発でやってくれるよ。
701 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 12:22:24.16 ] あわわ × default-coding-system ○ default-process-coding-system でした
702 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 12:24:27.36 ] >>697 anything と semantic で検索するとちらほら引っかかるけど それじゃだめなん?
703 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 12:34:23.81 ] >>699 process-filter-multibyte-p set-buffer-multibyte とかの multibyte 関係。
704 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 12:37:58.99 ] むしろ一旦何も設定しない状態で試したほうがいいと思うの
705 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 12:44:07.38 ] そもそも最近の emacs って LANG=ja_JP.UTF=8 とかしておけば特に何の設定もしなくても ちゃんと日本語でUTF-8な環境にセットアップしてくれるんだよな。
706 名前:名無しさん@お腹いっぱい。 [2012/01/14(土) 13:20:19.97 ] 編集中の文書のアウトライン表示させるためにsr-speedbarを試しています。 www.emacswiki.org/emacs/SrSpeedbar なかなかいい感じですが編集中ファイルと同じディレクトリに他のファイルが あると,speedbarにそれらのファイル以外も表示されてしまいます。編集中の ファイルだけをspeedbarに表示する方法があれば教えてください。
707 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 13:33:09.07 ] >>706 自分で新たに speedbar のモードを書くしかないと思う。 *SPEEDBAR* で b とか r を押せば開いているバッファが表示されるけれど、これは違うのだろうし。
708 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 13:48:41.17 ] speedbar-file-regexp を make-local-variable して バッファ名だかバッファファイル名だかだけ引っかかるような設定にすりゃいいんでないの。 これも悪くないな d.hatena.ne.jp/kitokitoki/20100517
709 名前:699 mailto:sage [2012/01/14(土) 14:06:07.65 ] >>700 (prefer-coding-system 'utf-8-unix) でいけました。ありがとー
710 名前:697 mailto:sage [2012/01/14(土) 14:10:38.94 ] >>702 ttp://dev.ariel-networks.com/Members/matsuyama/open-anything-emacs/ ここで目的のものが見つかった。 ただ、Anythingのソース作成方法を理解してないからよくわからん。 積読状態だった例の本をちゃんと読むか…
711 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 15:07:22.59 ] るびきちさんが叩かれてる理由がだんだん分かってきた。
712 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 15:08:20.51 ] 大部分が男のジェラシーですね
713 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 15:16:00.39 ] >>712 違うと思う。
714 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 15:39:05.52 ] ジェラシーとか嫉妬とか言うやつは一人しかいないわけで。 何もかも一人でやってるようなグラマにろくなのはいないっていう悪例だよ。
715 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 15:43:01.18 ] カーソル行の冒頭の空白の類いを取得したいです 正規表現は^[\t\s]+でカーソル行を取得するのは(thing-at-point 'line)でよいのですが 取り出した文字列を正規表現で検索する方法がわかりません 正規表現で検索というとre-search-forwardがありますが これではバッファ内の文字列を検索することになってしまいます どうすればいいでしょうか
716 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 15:48:26.55 ] string-match
717 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 15:57:07.69 ] \C-h f re-search-backward
718 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 16:24:06.55 ] >>716-717 ありがとうございます。調べた結果 string-matchでもre-search-backwardでもできました
719 名前:名無しさん@お腹いっぱい。 [2012/01/14(土) 16:39:21.50 ] >>707 >>708 ありがとうございます。 自分で設定する方法はわからないので,しばらくはimenu-treeと併用してみます。
720 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 19:31:25.59 ] マクロを使いたいけど以下のようにしたい場合はどうしたらいいのでしょう? ・コンパイル後は内容が展開されるのでマクロ自体は未定義になってほしい ・コンパイルしないで el のみのロードの場合は普通に定義されたままでよい eval-when-compile だと el のみのロードの場合にダメになっちゃいますよね・・・
721 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 19:35:53.07 ] >>720 describe-function eval-when-compile > In interpreted code, this is entirely equivalent to `progn'.
722 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 19:53:14.68 ] >>721 ありがとうございます。 eval-when-compile の中にマクロ定義を置く、で何ら問題なかったんですね。 しかし、eval-after-load みたいなコンパイルされない式の方だと実行時にマクロ定義がないとエラーになってしまいます。 これをコンパイル時にマクロ展開する方法はないのでしょうか?
723 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 20:26:35.83 ] (eval-when-compile (require 'cl)) (defun my-func () (loopとか)) (eval-after-load "library" '(my-func)) じゃだめなのけ?
724 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 20:36:30.14 ] >>723 みたいに関数化した方がバイトコンパイルもされるから実際一番いいと思う。 一応別解 (eval-when-compile (defmacro somemacro (x) (concat x "-ok"))) (eval-after-load "hogehoge" (eval-when-compile (macroexpand-all '(progn (setq hoge (somemacro "hoge")))))) eval-after-load から macroexpand-all までを eval-when-compile 内にマクロで置けば完璧 これなら el でロードしてもコンパイルしてもちゃんとマクロ展開される
725 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/15(日) 16:36:48.20 ] >>653 レジストリ書き換える方法で良ければ、scancode map でぐぐると見つかる。 XP以降はLoginユーザ別に設定できる。 windows server 2003 resource kitに入っている remapkey.exe というのでも 出来るけど。ユーザ個別設定は出来ないかもしれない。
726 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 18:42:59.64 ] たしかC-aやC-eを連続して押すとカーソルが行ったり来たり(?)する elispがどこかで公開されていた気がするのですが ご存じの方はいらっしゃいませんか これでカーソル移動がもっと快適になるとか書いてあったような気がします るびきち本とかどっちかと思いましたが見つかりませんでした
727 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 18:46:46.90 ] アドベントカレンダーで見た気がする
728 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 18:50:20.77 ] マジキチ先生のsequential-commandかな 他にも似たようなのあるかもしらんが
729 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 20:11:35.65 ] >>727-728 ありがとうございます。両方の情報とも関係がありそうだと検討をつけて探したら そのものずばりのページにたどり着けました emacs.g.hatena.ne.jp/k1LoW/20101211/1292046538 この図こそ記憶にあったものです 感謝です
730 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 20:25:39.60 ] gnupackのemacsで等幅フォント(migu 1m)を使っているはずなのに 微妙にずれてしまう気がします 対処策はあるのでしょうか
731 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 21:45:30.64 ] >>730 NTEmacsスレの方がストレートな解答が貰えるかもしれない。 Windowsだとフォント重ねあわせでボールド化するとかの設定有効にしてると ずれることがあるって聞いたことがあるな。変数名は忘れたが。
732 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 22:03:50.99 ] あれ、うちもだそれ。LinuxでGNU Emacs 23.3.1、Ricty 3.1.2 Rictyを使ってるんだけど例えば $ の幅が他の文字の 90% ぐらいになってる フォントの設定はなんか難しいから放置中
733 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 22:18:58.39 ] Rictyってたしか複数のフォントをマージした奴だったよね。 しかもライセンスの問題でバッチ処理で自分で結合処理するんだった記憶が。 幅あってないんじゃない?
734 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 22:31:27.69 ] いやRictyって幅を合わせたのが売りじゃなかったっけ?
735 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 22:40:43.46 ] C-u C-x = で $ と字を調べてみたら? 違うフォントや違うサイズが割り当てられてたりしない?
736 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/16(月) 23:02:15.92 ] ヒントどうもです。 差し当たり $ と 1 についての C-u C-x = の出力および init.el の関係ありそうな設定部分を貼っときます codepad.org/cN7neV2I ($) xft:-unknown-Ricty-normal-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x07) (1) xft:-unknown-Ricty-normal-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x14)
737 名前:730 mailto:sage [2012/01/17(火) 13:39:36.57 ] 解決策がわかりました フォントのサイズを3の倍数にすればよいだけでした >Emacs で等幅フォントの半角文字・全角文字の横幅比 1:2 を必ず達成するフォント設定 ttp://stickydiary.blog88.fc2.com/blog-entry-107.html
738 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 14:43:24.37 ] EmacsLisp勉強中です。自作の関数をさらしますので添削お願いします。 (defun random-string (length) (let ((i length) (s "0123456789abcdefghijklmnopqrstuvwxyz") (a '()) n c) (while (> i 0) (setq n (random 36)) (setq c (substring s n (+ n 1))) (setq a (cons c a)) (setq i (- i 1))) (string-join "" a)))
739 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 14:50:18.40 ] 動けばいいってこと? (defun random-string (length) (let ((i length) (s "0123456789abcdefghijklmnopqrstuvwxyz") (a '()) n c) (while (> i 0) (setq n (random 36)) (setq c (substring s n (1+ n))) (setq a (cons c a)) (setq i (- i 1))) (mapconcat 'identity a "")))
740 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 15:05:13.65 ] (defun random-string (length) (let ((s "0123456789abcdefghijklmnopqrstuvwxyz") a n) (while (> length 0) (setq n (random 36)) (setq a (concat a (substring s n (1+ n)))) (setq length (1- length))) a))
741 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 15:24:40.20 ] (defun random-string (length) (concat (loop with s = "0123456789abcdefghijklmnopqrstuvwxyz" repeat length collect (aref s (random 36)))))
742 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 15:40:14.13 ] (defun random-string (length) (let* ((offset (random 36)) (char (substring "0123456789abcdefghijklmnopqrstuvwxyz" offset (1+ offset)))) (if (> length 1) (concat char (random-string (1- length))) char)))
743 名前:名無しさん@お腹いっぱい。 [2012/01/17(火) 15:59:27.93 ] (defun random-string (length) (substring (shuffle-vector "0123456789abcdefghijklmnopqrstuvwxyz") 0 length))
744 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 16:08:57.86 ] (defun random-string (length) (loop with s = (make-string length 0) for i from 0 to (1- length) do (aset s i (aref "0123456789abcdefghijklmnopqrstuvwxyz" (random 36))) finally return s))
745 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 16:13:45.58 ] はい、そこまで。
746 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 16:33:07.71 ] アホ学生の課題か
747 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 17:17:27.28 ] random 36っていうのは何というかスマートじゃ無いな
748 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 17:26:31.48 ] 見る限り >>742 >>743 はトーシロだな。
749 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 17:29:19.73 ] >>748 なんで?
750 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 17:33:44.72 ] 関数への入力値を大きくしてみたまえ。
751 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 17:41:13.00 ] そんなデカい値で使うような関数か?
752 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 17:44:04.87 ] 負け犬プログラマーがここにも。こーゆーやつよくいるんだよね。ヽ(´▽`)ノ
753 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 17:47:45.79 ] 職場でやられると締め殺したくなるやつだな。w
754 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 17:58:40.75 ] elispだけで文字列をパスワードつけて暗号化できるパッケージないですか?
755 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 18:52:51.80 ] 七色に光るタッチキーボードかあ 好きな色にキーボード光らせるなら ctrとaltは目立つ色にしたいな
756 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 18:53:41.57 ] >>755 誤爆?
757 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 18:55:29.08 ] ax3s.blog54.fc2.com/blog-entry-345.html こいつでemacsとか最高じゃないか
758 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 18:58:37.67 ] キーボードの話はこっちでいいんじゃない。 Keyboard キーボード 3 toro.2ch.net/test/read.cgi/unix/1285489282/
759 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 19:17:47.77 ] >>757 テンキーレスってところがいいな。 英語配列ならなおよかったんだけど。
760 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 19:20:18.21 ] 「ハンファ」 なんかヤダ。
761 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 19:23:45.05 ] Emacsとなにも関係ない件
762 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 20:16:45.69 ] 自由にカスタマイズできるって言っても、C-cの後とかC-xの後に有効なキーだけ 色を変えるってのはできないんでしょう?
763 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 20:25:40.12 ] 色を変えるってキーボードの?ww
764 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 20:58:16.61 ] あんたインテリアこだわるの好きね。
765 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 21:42:54.57 ] Emacsにハマりそうで怖い。 論文書くのにWordだとだるい ↓ Emacs + LaTexってよさげ ↓ Tutorialをやってみる ↓ るびきち本を買ってくる ← いまここ 独特の操作系で敷居が高いと思っていたけれど、 これはこれでアリだと思う様になってきた。
766 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 21:44:16.70 ] >>765 LaTeX を使うなら他のエディタを選択することもできただろうに。
767 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 22:16:48.10 ] Emacsだけで色々完結するってのも惹かれた点。 しかしGoogle DocsやEvernoteなんかまで編集できるとは思わなかった。
768 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 22:21:42.98 ] >>762 でもブラインドタッチしてる以上あんまり色かわっても意味ないな。 無効なキーを押すと電流が走るとかなら教育効果があるかもしれん。
769 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 22:22:11.64 ] >>767 今ならまだ間に合う。引き返せ。 わりとマジで。
770 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 22:26:38.41 ] >>769 後悔してる理由教えて
771 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 22:28:11.82 ] >>769 後悔してる理由教えて
772 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/17(火) 22:39:33.15 ] 呪いが解けなくなるよ
773 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 01:28:50.52 ] >>739-744 たくさんの人に答えていただき、ありがどうございます。 けど、結局どう書くのがいいのかは、よみとれませんでした。 ・string-joinよりconcatのほうがいいの? ・loopとかつかったほうがいいの? ・for i from 0 to ... とか初めて見たけど、これって普通に使われているの? もうちょっと、EmacsLisp初心者向けにお願いしたいんですが、だめでしょうか。
774 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 02:47:01.89 ] どっから持って来たんだ、string-join って どうせ中身は mapconcat なんだろうけど
775 名前:名無しさん@お腹いっぱい。 [2012/01/18(水) 02:48:56.76 ] 半ページスクロールってできないっすか?
776 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 08:52:46.80 ] >>773 > ・string-joinよりconcatのほうがいいの? ・mapconcat は文字列のリストに作用するし、concat は char のリストに作 用すると覚えておけ。apply 使えるようになれば違いはほとんどない。 > ・loopとかつかったほうがいいの? とりあえず使うな。while と mapcar を覚えろ。 > ・for i from 0 to ... とか初めて見たけど、これって普通に使われているの? はい。loop に狂ってる連中は使う。ほとんどが上級者だな。 ここで質問する前に他の人のコードをひたすら読め。 elisp以前にプログラマの基本だ。
777 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 10:08:52.24 ] cl系使うのは抵抗あるな。
778 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 12:35:55.81 ] るびききの書いたelispのソースを見て気づいたんだけど 日付と履歴情報が自動的に更新されている気がする たとえば www.emacswiki.org/emacs/download/auto-install.el 日付の自動更新はtime-stamp.elでできるけど 履歴情報(changelog)の自動更新はどうやるのだろう
779 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 16:24:31.76 ] これバージョン管理が勝手に入れるやつじゃないの? elispファイルに履歴なんて書いても誰もみないから分離してほしいよな。 githubにでもリポジトリ公開すればいいのに。
780 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 16:31:22.63 ] Change log:のところにChangeLogを挿入してるんじゃないの? まあChangeLogはふつう別ファイルだから何かしら細工していると思うが $Id: の部分も別ファイルのChangeLogを挿入しているだけかと
781 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 17:06:37.54 ] なんで意固地になって読みづらいchangelogを挿入するのだろうか。
782 名前: 忍法帖【Lv=38,xxxPT】 mailto:sage [2012/01/18(水) 17:12:34.07 ] >>776 > とりあえず使うな。while と mapcar を覚えろ。 mapcもね
783 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 18:12:11.63 ] DAdams病
784 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 18:42:21.52 ] remove-if とか find-if が便利すぎて loop 覚える気がしない
785 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 20:53:48.69 ] cl の関数を使っちゃってるかどうか検査する方法って何があるかな コンパイルするしかない?
786 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 20:59:27.45 ] elintで検出できたっけ?
787 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/18(水) 22:51:29.37 ] 検出は知らんけどhighlight-clで目視できるようにはしてる
788 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 08:03:24.33 ] yasnippet が堂々と (require 'cl) しているのを見て なんかもうどうでもよくなった
789 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 08:36:10.64 ] 本体に取り込んでやるからその汚い(require 'cl)をどうにかしろ とか言われない限り取り除く気は無い
790 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 16:08:28.58 ] viのmコマンドに相当するのは、emacsでは何になりますか。 やりたいことは、現在のポジションを短い名前付きで覚えておき、あとからその名前を使ってジャンプすることです。 emacsを終了しても覚えておかなくていいです。
791 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 16:12:47.56 ] C-x r SPC で覚えて C-x r j でジャンプ。
792 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 17:28:51.63 ] >>791 ありがとうございます。
793 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 21:41:24.31 ] >>640 キツいhookだなぁ。
794 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 22:08:53.23 ] リージョンを指定して、その範囲内で正規表現にマッチしたものを集めてくる関数はどうやって書きますか。 Rubyで書くとこんな感じです。 arr = [] region.each_line do |line| if line =~ regexp arr << $1 end end リージョンを受け取るには (interactive "r") を指定するらしいところまではわかりましたが、 その先がさっぱりわかりません。だれか助けて。 (defun regexp-collect-matched-in-region (beg, end) (interactive "r") ;; どう書けばいいの? )
795 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 22:28:30.59 ] ものっそ丸投げだなw リージョンの開始位置までポイントを進めて、 リージョンの終了位置を検索の境界に指定して検索を進めればいい。 goto-char、re-search-forward と match-string とかを describe-function しなさい。 save-restriction とか save-excursion、save-match-data とかもぐぐるといいかもね。 単純に操作としてやりたいだけなら keep-lines とかはどうかね。
796 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 22:52:46.90 ] >>796 いいから解答教えろよ役にたたねえな
797 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/19(木) 22:56:09.09 ] 汚い無限再帰だなあ
798 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 00:07:41.12 ] >>795 ありがとうございます。 こんなかんじになりました。 (defun regexp-collect-matched-in-region (regexp index beg end) (let ((list '())) (save-excursion (goto-char beg) (while (re-search-forward regexp end t) (setq list (cons (match-string index) list)))) (reverse list))) どうでしょうか? なお796は別人ですので無視してください。
799 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 00:11:48.82 ] やるじゃん listって変数名は関数のlistとかぶってるから別の方がいいかも。特に動作上の弊害はないんだけど。 リストへの追加は push でもいいかもね。
800 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 00:20:11.57 ] listの書き換えか よく見るのはlis か lst かな
801 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 00:55:32.98 ] どうでもよすぎるつっこみおつかれさん。
802 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 02:47:45.08 ] 引数はむしろlistの方がいいな。 eldocとかで不必要におかしな名前で出てくるのは間が抜けた感じ。
803 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 08:31:17.14 ] >>798 reverse を nreverse にする そもそも (goto-char end) + (re-search-backward ...) を使うと、 reverse がいらなくなる loop 大好き (save-excursion (goto-char beg) (loop while (re-search-forward regexp end t) collect (match-string index)))
804 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 08:40:02.69 ] >>803 > そもそも (goto-char end) + (re-search-backward ...) を使うと、 > reverse がいらなくなる これやると正規表現の量指定子はどういう挙動をするの?
805 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 11:18:01.36 ] やっぱりloopは神だった
806 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 12:17:24.19 ] blog.kiftwi.net/2011/12/13/emacs%E3%81%AEjs2-mode%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88%E3%82%92%E6%AD%A3%E3%81%99/ これのインデントの関数の再設定を見て疑問に思ったのですが例えば (add-hook 'text-mode-hook (lambda () (setq indent-line-function (lambda () (insert " "))))) このように書くのと、 (add-hook 'text-mode-hook (lambda () (set (make-local-variable 'indent-line-function) (lambda () (insert " "))))) と書くのでは、一つ目の方ではtext-mode-hook以外にも適用されてしまうと 理解しているのですが、これでいいでしょうか それと、add-hook で他のモードに影響させないバッファローカルな関数を定義することは可能でしょうか (add-hook 'input-method-activate-hook (lambda() (set-cursor-color "yellow"))) この設定をelispモードのバッファにのみ適用させたいです
807 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 12:22:38.49 ] >>803 はたぶん意味を理解していない。
808 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 12:28:15.44 ] >>806 > と書くのでは、一つ目の方ではtext-mode-hook以外にも適用されてしまうと text-mode-hook が実行? されるバッファ以外にもだけれど、合ってる。 (add-hook 'emacs-lisp-mode-hook (lambda () (add-hook 'input-method-activate-hook (lambda() (set-cursor-color "yellow")) nil 'local)))
809 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 13:20:47.87 ] >>808 ありがとうございます。その例とadd-hookのdocを見て理解できました。
810 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 17:42:04.36 ] loop きもすぎる
811 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/20(金) 18:14:36.03 ] reddit にでてたけど、Emacs にも Achievement System あったら楽しそうだな。 www.reddit.com/r/emacs/comments/ook6a/does_something_like_this_exist_for_emacs/
812 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 00:58:51.83 ] 横レスだが>>808 でインデントが整って見えるのは何故だろう 2chでは連続した空白スペースが省略されると思うんだが
813 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 01:17:52.31 ] ==   !=  
814 名前:806 mailto:sage [2012/01/21(土) 01:39:34.48 ] set-face-foregroundの色やset-face-bold-pの有効・無効を 特定のモードのについてのみ変更できますか?
815 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 01:56:08.64 ] >>813 なるほどnbspですか 2ちゃんブラウザからスレを開いてコピペすると確かにそれがありました
816 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 02:11:56.20 ] >>814 出来ない。
817 名前:806 mailto:sage [2012/01/21(土) 02:14:14.19 ] >>816 ありがとうございます。 いろいろやってみましたが設定できなかったのでどこか間違っているのか 迷っていました
818 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 14:41:33.95 ] Emacsで、パターンに一致した行を見えなくすることはできますか。 (削除じゃなくて) たとえばソースコードで「//」で始まる行だけを一時的に隠したいとか、 「<!ーー ーー>」の行を隠したいとか。 自分で指定したパターンで隠してくれるのを望みます。 あと、行数もつけてくれたら最高。 10: foo 14: bar ← 11行目から13行目までが隠されていることがわかる 15: baz
819 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 15:02:20.11 ] hideshow は? 隠す部分の開始パターンと終了パターンが指定出来るよ。しかもEmacsに標準でついてくる。 describe-function hs-minor-mode ね。 あと、linum-mode で行表示しててもちゃんと隠された行はスキップされる。
820 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 15:03:38.80 ] ただ、隠したり表示したりのキーバインドが結構押しづらいから 自分で使いたい部分だけバインドしなおしたほうが便利だとは思う。 自分は表示/非表示切り替えの hs-toggle-hiding だけ C-c C-SPC にバインドしなおして それだけ使ってる。
821 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 15:28:21.01 ] >>819-828 ありがとうございます。ためしてみます。
822 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 23:21:55.04 ] emacs lisp テクニックバイブルの36ページに入力補完として completion-at-point(M-tab)が紹介されていますが anythingを導入したらその機能が置き換えられてしまいました 調べてみたらanything-complete.elのanything-lisp-complete-symbol-partial-matchとなったようです 具体的には入力補完の例として本で説明されている bu-f-naでbuffer-file-nameを補完したいです そこでM-tabだけはcompletion-at-pointの機能を復活させて それ以外はanything-completeを利用したいのですが どうすればよいでしょうか
823 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/21(土) 23:23:15.56 ] 著者に聞きなさい。
824 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/22(日) 10:34:28.62 ] anything を使ってないから詳しくはわからんけど、 anything-complete の中で define-key してるキーマップ名を探して (define-key キーマップ名 (kbd "<M-TAB>") nil) とでもして機能を殺せばいい。
825 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/23(月) 21:19:01.13 ] elcってバージョン間の互換性薄かったりするけど、 複数バージョンの emacs 使ってる人は ~/.emacs.d 以下の elc ファイルってどうやって共有させてるの?
826 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/23(月) 21:44:20.39 ] そもそもバイトコンパイルほとんどしてない。 というか互換性薄かったっけ? 暗号系のやつは遅いので仕方ないからコンパイルしてるけど互換性で問題になっ たことない。
827 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/23(月) 21:48:01.40 ] バージョン間の違いを吸収するときは バージョンごとに違うディレクトリを掘って、 ~/.emacs.d/22 ~/.emacs.d/23 それぞれに el ファイルとか elc 放り込んでる。 で (setq load-path (cons (format "~/.emacs.d/%s" emacs-major-version) load-path)) みたいなことをしてる。
828 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/23(月) 21:59:21.84 ] 軽くぐぐってみると emacs19とemacs20で非互換だったとか Meadowの1系と2系で非互換だったとかそんなぐらいだなぁ。 今emacs24でコンパイルしたのをemacs23で読み込ませても特にエラーにはならなかった。
829 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/23(月) 22:24:54.69 ] >>828 経験したパターンでは、emacs 本体で供給している macro の展開で NG とかある。個人的な感想では emacs23 と 24 の elc 共用は止めた方が 良い。読み込んだぐらいではエラーにならないけど、使っているうちに 理由の分からんエラーになる。知っている限りでは、Mew と emacs-w3m はこれに該当する。
830 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/23(月) 22:34:06.05 ] byte-compile-dest-file-function に version specific なディレクトリに elc 突っ込むような関数定義して load-path ではその ディレクトリが先頭に来るようにするってのはどうだろう。 el と elc が別ディレクトリだと describe-function とかした後に関数定義に飛べなかったような記憶があるけど・・・
831 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/23(月) 22:36:40.32 ] >>829 あー、なるほど。elcのフォーマットの問題ではなく、コンパイル時に展開されちゃう マクロの内容に差があった場合に問題になるってことか。
832 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:06:00.78 ] twitter.com/kazu_yamamoto/status/161620210237964288 > ELisp は Scheme より Common Lisp に近いため、Common Lisper がたくさん ELisp を書いていますが、ELisp っぽく書けてはいないので、require 'cl しているコードはお勧めできません。 さて、自称上級者はどういう反応をするか。
833 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:11:14.50 ] そういや昔、山本さんが誰か知らずにfletとは云々ってブログにコメントしてた人がいたな。
834 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:18:18.25 ] だから何?
835 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:20:55.37 ] >>832 自称上級者って有料メルマガの人とかか。 あの人はあくまで設定の事だけでLispの何たるかはわかってなさそう。
836 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:23:31.92 ] かずさんってEmacsアンチになってるもんだと勝手に勘違いしてたわ
837 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:25:49.15 ] アンチには違いないと思うけど。 真っ当なグラマならこんな古くさい言語を必死に宣伝したりしない。
838 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:26:55.34 ] そうするとツイッターアイコンが赤いEmacsアイコンなのはそういう意味なのか。
839 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:27:26.28 ] Haskellerになって久しいもんな。
840 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:27:49.92 ] あれはfiremacsのやつ。と思う。
841 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:28:58.55 ] あんな必死になって著書にまで (require 'cl) の有用性を書いてた人にとっ ては人格を否定されたも同然。でも、反論する度胸はないだろうな。(⊃д`) いい加減ああいううさん臭いのに騙されるのやめてほしいわ。
842 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:41:10.32 ] そもそもあの本売れたの?
843 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:42:20.69 ] 新人にEmacsの有用性を説く奴は信用ならん るびきちはもはや老害だろう
844 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:43:38.30 ] 卒論間際の大学生とか暇な院生の方がelispの生産性高いイメージがある。
845 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 13:45:13.51 ] ていうかあいつすでにelispまったく書いてないじゃん。家で何やってんだろ。 実はもうアンチに変わってるんじゃないか。
846 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 15:12:10.87 ] メルマガ書くのでいっぱいいっぱいになってるんとちがうの。 どんぐらいの密度の内容の文章書いてるのかはわからんけど。
847 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 16:07:20.83 ] common lispのreplのように scratchバッファでもs式のインデントを自動的に行いたいのですが (elispモードのように) どうすればよいのでしょう
848 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 16:15:12.98 ] (define-key lisp-interaction-mode-map (kbd "C-m") 'newline-and-indent)
849 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 17:20:35.10 ] .emacsに書いている設定をinit-loaderで分割するときには eval-when-compileをところどころ使わなくてはならないようですが、 eval-when-compile を使うのはdefmacroの設定が含まれているライブラリや defmacroを自分で書いたときだと理解しています それでいいでしょうか
850 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 18:13:50.57 ] それでいいです。
851 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 18:36:47.82 ] 本当ですか?嘘を嘘と見抜けないと 2ch 使えないので念のための確認です。
852 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 18:39:00.73 ] ほんとですよ。
853 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 18:53:17.11 ] >>848 ありがとうございます。うまくいきました。
854 名前:849 mailto:sage [2012/01/24(火) 19:27:55.67 ] >>850 どうも。 >>851 誰ですか?
855 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 19:34:23.85 ] \ / \ 丶 i. | / ./ / \ ヽ i. .| / / / \ ヽ i | / / / \ -‐ ー __ わ た し で す -- 二 / ̄\ = 二  ̄ | ^o^ |  ̄ -‐ \_/ ‐- / / ヽ \ / 丶 \ / / / | i, 丶 \ / / / | i, 丶 \
856 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 21:22:50.21 ] なんとなくなつかしさを覚えた。
857 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 22:39:23.06 ] とりあえずrbkt一派のパッケージは使わない方がいいということが分かった。 ソースも参考にしない方がよさそうだな。メルマガも解約するわ。
858 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 22:45:52.45 ] あの情報商材丸出しの紹介文読んだ上で契約してる時点ですでにどうかしてると思うよ。
859 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 22:53:17.03 ] 若いやつだろ。 よく大学でオタっぽい友達いないやつが宗教とか詐欺にひっかかってるだろ。
860 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/25(水) 14:49:11.77 ] 情報商材ワロタw
861 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 08:56:09.76 ] >>859 年配の方ですか?
862 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 09:19:20.64 ] 革命家rbkt釣れた。
863 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 09:40:35.21 ] 先生のアイデンティティが揺らいでいる。可哀そう…
864 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 13:33:55.60 ] 盛り上がってるところ申し訳ないのですが、質問させてください。 (add-to-list 'hoge '(fuga0 "piyo")) (add-to-list 'hoge '(fuga1 "piyopiyo")) みたいな記述を何度も書くのがアホらしいので、consとかappendとかを駆使して纏めてみようとしたのですが上手くいきません。 どうしたらいいのでしょう。
865 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 13:58:32.25 ] defmacroをどうぞ GNU Emacs Lispリファレンスマニュアル: 12. マクロ www.fan.gr.jp/~ring/doc/elisp_20/elisp_13.html
866 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 14:47:36.03 ] こういう事? (dolist (e '((fuga0 "piyo") (fuga1 "piyopiyo"))) (add-list 'hoge e))
867 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 15:34:48.39 ] >>865 マクロ…おいおい覚えていきます…。 >>866 (dolist (e '((fuga0 "piyo")) '((fuga1 "piyopiyo"))) (add-to-list 'hoge e)) としたらうまくいきました。ありがとうございます!
868 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 15:45:12.49 ] 何なのこのひと。。
869 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 15:46:51.63 ] >>867 訂正: (dolist (e '((fuga0 "piyo") (fuga1 "piyopiyo"))) (add-to-list 'hoge e)) です。
870 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 17:10:23.76 ] こうだと思ったのに……。 (dotimes (i 9) (add-to-list 'hoge (list (intern (format "fuga%d" i)) (let* ((length (length "piyo")) (str (make-string (* (1+ i) length) 0))) (dotimes (j (1+ i)) (store-substring str (* j length) "piyo")) str))))
871 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/26(木) 17:37:22.16 ] ウルセーバカ
872 名前:名無しさん@お腹いっぱい。 [2012/01/27(金) 00:30:35.18 ] >>818 2年位前、コメントアウト部分を見えなくするマイナーモードを書いたけど、 インデントや空白・tabのところで表示が崩れて断念したな・・・ もっかい作ってみようかな。 自分は「開始と終了」という考え方じゃなくて「文字のface」で考えました。
873 名前:名無しさん@お腹いっぱい。 [2012/01/27(金) 12:48:49.73 ] それって hilight が使ってるコメントの開始終了を hideshow に渡すのと比べて何が嬉しいの?
874 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/29(日) 00:03:22.47 ] FooBar()みたいな関数名をfoo_bar()に変えるにはどうすればいい? とりあえずM-%でやると、Foo_Bar()みたいになっちまう・・ そんでFoo_Barをfoo_barにしようとしても、やっぱりFoo_Barのまま。 一括置換でない方で頼む。
875 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/29(日) 01:13:55.45 ] 自決した。 foobarと検索してから置換してたらだった。ちゃんとFooBarで検索してから M-%で大丈夫だった。
876 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/29(日) 17:48:19.27 ] 腹切ったらしい