1 名前:名無しさん@お腹いっぱい。 [2011/11/29(火) 17:50:44.24 ] 前スレ Emacs Part 38 hibari.2ch.net/test/read.cgi/unix/1308635178/
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 ] 腹切ったらしい