元スレEmacs Part 43
emacs覧 / PC版 /みんなの評価 :
751 = :
さすがにそれはわざわざデバッグモードで起動せんでも
起動時にエラー出てるような気がするんだけど
753 = :
>> 731
時間が十分短い場合→全選択、少し空けば→a挿入、みたいなイメージ。
>> 732
ごめんなさい、C-a C-g a はよく判りませんでした。
>> 733 sequential-command だったかな。
おおお、C-a、C-aでバッファ先頭に飛ぶ例があるね。
これを使えば、C-a C-aで全選択もわけなさそう。
>> 734 C-x h を、覚える
知らんかった…。当座はこれでしのぎます。
756 = :
うん、知ってる。
758 = :
既出かもしれないけど eval-after-load のフォームの中までバイトコンパイルさせる方法考えた。
(eval-after-load "hoge" `(funcall ,(lambda ()
(message "ここはコンパイルされるよ!")
))
もっとも eval-after-load 内にそんなごつい処理かかないだろうし、ロード時に一回しか走らないしで
大した違いが出るとは思えないけど。
759 = :
バイトコンパイルってファイルが小さくなるだけじゃないの?
速度変わらないんだったら大した意味ないんじゃない?
760 = :
バイトコンパイルしないとより遅くなるぞ。
762 = :
>>759
たかがサイズのためにどんだけまわりくどい手間かけてんだよ…
763 = :
たかがサイズ
されどサイズ
764 = :
ファジィな痛みー
765 = :
>>759
elispのバイトコンパイラはlisp専業だったlucidが手を入れた最適化コンパイラ
実行速度も向上する
767 = :
極力起動時の処理を軽くしようとして eval-after-load に関数定義とかまで押し込んでる場合は
>>758 は有効だと思う。
もっとも init.el に書く程度の内容だったらやっぱり誤差だろうな。
768 = :
org-modeのファイルを開くときに折り返しを有効にしている状態で開くにはどうすればよいですか?
今はファイルを開いた後に(toggle-truncate-lines)を手動で1回評価しています
769 = :
org-mode-hook に toggle-truncate-lines を追加してやればいいんじゃないかな
772 = :
今のところ OS に認識させないと無理だと思う。
774 = :
browse-url を使ってるみたいだから、
browse-url-browser-function を browse-url-firefox とか好きなのに変更すればいい。
デフォルトで何が選べるかは browse-url の先頭のコメントのところに列挙されている。
そこにない場合は自分で適当に追加すればいい。
twittering-mode の url クリックの時だけ変更したいなら
twittering-click に包囲 advice でも追加してそこでだけ browse-url-browser-function を変更すればいい。
775 = :
>>774
できました!大変助かりました。感謝です。
777 = :
package で color-theme のSolarizedをインストールして
設定ファイルにGithubに書かれているように書き込んだのですが
Emacsを起動する際に
Unable to find theme file for `solarized-dark'と出て、適用されない状態で起動されます。
Pathを確認したところしっかりとPackageでインストールされたものが
はいるディレクトリは通っていますし、
M-x load-file RET ~/.emacs.d/init.el
とするとエラーは出ずにしっかりとSolarizedのColorthemeが適用されます。
原因は何なのでしょうか?
779 = :
>>750
遅レスだけど、これは caml.el の作者のバグっぽいね。
c-toggle-auto-state は、cc-cmds.elを読み込まないと定義されないけど
きっと作者の環境の .emacs には、これをどこかで読み込ませる設定でも
あって、これを require するのを忘れたんだろう…
対処するならば、
(eval-after-load 'caml
'(require cc-cmds))
という方法もある。
というか、ocaml 使うなら MELPA から tuareg 入れておいたら、
autoload設定も auto-mode-alist の追加も不要なはずなんだけどなぁ。
**
780 = :
>>758
この話題、ちょっと前の gnu.emacs.devel でもあったね。
Emacs 24.4 では lexical-binding の機能を活かして、
コンパイル時に変数チェックまでしてくれるから、
eval-after-load の中もコンパイルすると、変数名のミスなどが見つかるので
有効。もっとも、読み込まないライブラリがあると逆にこれは鬱陶しいので、
ライブラリがない場合は、
(with-no-warnings) で囲むようなマクロを作っておけばさらに便利。
実は Emacs 24.4 には、すでに同じようなことをしてくれる
with-eval-after-load マクロが定義されている。。。
781 = :
>>777
勘で書くけど、
多分、init.el で、
(package-initialize)
を先頭の方で書いていないんじゃないかな。
これ書かないと、MELPA経由でインストールしたパッケージへの
アクセスが init.el でできない。
(package-initialize) は、init.el 読み込み完了後に
(もしinit.el で実行していないなら)自動的に行われるので
起動後は設定できるとか。
783 = :
これか
(unless (fboundp 'with-eval-after-load)
(defmacro with-eval-after-load (file &rest body)
`(eval-after-load ,file
`(funcall (function ,(lambda () ,@body))))))
さっさか導入しちゃうのも悪くないな
784 = :
>>730
これも遅レスだけど、最近、一部で話題の領域選択ツール:
http://github.com/magnars/expand-region.el
rの連打でどんどん選択領域を広げてくれる。
786 = :
>>777
theme は、普通の load-path とは、違う変数をたどるんだけど、
そこいらへんも、package system で、ちゃんと、面倒見てくれてるのかな?
custom-theme-directory
custom-theme-load-path
調べてみると、良いかもしれない。
787 = :
locate-file (locate-library とか executable-find) の実行結果をキャッシュするのを作った。
init.el なんかでパッケージの有無で分岐して設定変更なんかしてる場合にちょっとだけ起動が速くなる。
http://pastebin.com/hCAGBh6H
locate-file-cache.el で保存してなるべく早い位置で require する。
二回目以降の起動ではキャッシュを読むようになるのでディスクアクセスが発生しなくなって
ちょっとだけ速くなる。
789 = :
SSD だとあんまり気にならなくない?
790 = :
>>789
普通のHDDでも誤差レベル。
自分ところは 37 回ぐらい executable-find とか locate-library してるけど
起動時間が 1.0 sec から 0.9 sec になった程度の差だった。
自己満足ではある。
791 = :
1万回起動すれば1000秒(約16分)の差になる。
メロスも16分遅れていたら約束を果たせなかったかもしれない。
人生の行方を決めるには十分な時間さ。
792 = :
一日2回起動するとしても16分稼ぐのに13年もかかるのか・・・
PCの性能があがると更に差は縮まるだろうしなかなか過酷な旅路になるな
794 = :
init.elc ファイル見てて思ったんだけど、advice 定義の中身ってコンパイルされてないのね。
上の方で eval-after-load の中身をコンパイルしてたけどこっちは出来ないんだろうか。
オプションに compile って付けてみたけど効果がよくわからない。
795 = :
>>794
適当にadviceした関数の定義をsymbol-functionで見てみるとどうやらコンパイルされてるっぽいから
特に何もしなくてもいいんじゃないのかね。defadviceしたタイミングでコンパイルされるんだろうきっと。
796 = :
そうすると init.el に advice 書きまくるとバイトコンパイルのせいでどんどん遅くなるんじゃないかって気がしてきた
実際 flet とか advice の中に書いとくと起動時に Compile-Log のバッファが出来てて warning が記録されてる・・
798 = :
>>790
37回という回数はどうやって計測するの?
799 = :
>>798
occur で数えたよ。ダサい答えでごめんなさい。
require した別のファイルの中でも呼んでたりするだろうから実際はもう少し多いかもね。
それこそ advice でも書いて数カウントでもしたほうがいいのかもしれない。
800 = :
流れぶった切るけど。文字列の最初の空白のみからなる行を削除するのってemacsではどう書くのがいい?
Gaucheだと
(regexp-replace #/^( *\n)*/ str "")
と書けるけど、emacsだと
(string-match "^\( *\n\)*" " \n\n \n hoge\n \n")
はnilになるので。
みんなの評価 :
類似してるかもしれないスレッド
- Emacs Part 40 (1001) - [92%] - 2012/9/7 0:30
- Emacs Part 47 (995) - [92%] - 2015/4/19 13:01
- Emacs Part 42 (1001) - [92%] - 2013/6/9 5:15 △
- Emacs Part 44 (1001) - [92%] - 2014/2/8 8:01 △
- Emacs Part 53 (989) - [92%] - 2022/12/5 12:45
- Emacs Part 46 (984) - [92%] - 2014/12/24 14:15
- Emacs Part 45 (1001) - [92%] - 2014/6/23 9:45
- Emacs Part 48 (997) - [92%] - 2015/12/9 15:15
- Emacs Part 49 (974) - [92%] - 2016/12/7 9:45
- Emacs Part 33 (1001) - [92%] - 2010/3/9 20:01 ○
- Emacs Part 41 (1001) - [92%] - 2012/12/24 4:15
- Emacs Part 32 (1001) - [84%] - 2009/12/20 2:04 ○
- Emacs Part 31 (1001) - [84%] - 2009/10/23 10:31 ○
- Emacs part 23 (1001) - [84%] - 2008/2/8 0:04 ☆
トップメニューへ / →のくす牧場書庫について