のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,593,263人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレEmacs Part 43

emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
751 : 名無しさん@お腹 - 2013/11/05(火) 23:41:24.64 (+57,+29,-35)
さすがにそれはわざわざデバッグモードで起動せんでも
起動時にエラー出てるような気がするんだけど
752 : 名無しさん@お腹 - 2013/11/05(火) 23:55:55.90 (-1,-29,-38)
melpaにtuaregがあるから、packageを使ってインストールしたほうが楽なように思う。
けれどWindowsでpackage使うにはtarなどをインストールしないといけないかも。
753 : 730 - 2013/11/06(水) 05:24:58.76 (+7,-30,-53)
>> 731
時間が十分短い場合→全選択、少し空けば→a挿入、みたいなイメージ。

>> 732
ごめんなさい、C-a C-g a はよく判りませんでした。

>> 733 sequential-command だったかな。
おおお、C-a、C-aでバッファ先頭に飛ぶ例があるね。
これを使えば、C-a C-aで全選択もわけなさそう。

>> 734 C-x h を、覚える
知らんかった…。当座はこれでしのぎます。
754 : 名無しさん@お腹 - 2013/11/06(水) 07:53:57.23 (-1,-30,-20)
755 : 名無しさん@お腹 - 2013/11/06(水) 09:44:18.83 (-1,-29,-1)
taiyaki.org の人は今 google ime 作ってるんだよな
756 : 名無しさん@お腹 - 2013/11/06(水) 09:52:27.08 (+52,+29,+1)
うん、知ってる。
757 : 名無しさん@お腹 - 2013/11/06(水) 12:57:25.84 (-1,-29,-33)
help-echo プロパティで表示出来るツールチップをマウスオーバーではなく
関数で強制的に表示って出来ないですかね。
758 : 名無しさん@お腹 - 2013/11/06(水) 13:24:02.97 (+16,-30,-125)
既出かもしれないけど eval-after-load のフォームの中までバイトコンパイルさせる方法考えた。

(eval-after-load "hoge" `(funcall ,(lambda ()
(message "ここはコンパイルされるよ!")
))

もっとも eval-after-load 内にそんなごつい処理かかないだろうし、ロード時に一回しか走らないしで
大した違いが出るとは思えないけど。
759 : 名無しさん@お腹 - 2013/11/06(水) 21:49:23.91 (+95,+29,-15)
バイトコンパイルってファイルが小さくなるだけじゃないの?
速度変わらないんだったら大した意味ないんじゃない?
760 : 名無しさん@お腹 - 2013/11/06(水) 21:56:42.85 (+51,+23,+1)
バイトコンパイルしないとより遅くなるぞ。
761 : 名無しさん@お腹 - 2013/11/06(水) 22:08:47.81 (-1,-29,-17)
eval-after-loadまでコンパイルする必要はないだろう・・・・
762 : 名無しさん@お腹 - 2013/11/07(木) 01:57:20.77 (+70,+29,-5)
>>759
たかがサイズのためにどんだけまわりくどい手間かけてんだよ…
763 : 名無しさん@お腹 - 2013/11/07(木) 02:35:13.66 (+51,+28,+0)
たかがサイズ
されどサイズ
764 : 名無しさん@お腹 - 2013/11/07(木) 07:43:47.94 (+8,-14,-1)
ファジィな痛みー
765 : 名無しさん@お腹 - 2013/11/07(木) 08:01:14.52 (+10,-29,-38)
>>759
elispのバイトコンパイラはlisp専業だったlucidが手を入れた最適化コンパイラ
実行速度も向上する
766 : 名無しさん@お腹 - 2013/11/07(木) 09:02:32.14 (-1,-29,-19)
js2-modeとか最適化でかなり変わるね
767 : 名無しさん@お腹 - 2013/11/07(木) 10:27:50.93 (+4,-29,-101)
極力起動時の処理を軽くしようとして eval-after-load に関数定義とかまで押し込んでる場合は
>>758 は有効だと思う。

もっとも init.el に書く程度の内容だったらやっぱり誤差だろうな。
768 : 名無しさん@お腹 - 2013/11/07(木) 12:43:20.42 (+12,-29,-38)
org-modeのファイルを開くときに折り返しを有効にしている状態で開くにはどうすればよいですか?
今はファイルを開いた後に(toggle-truncate-lines)を手動で1回評価しています
769 : 名無しさん@お腹 - 2013/11/07(木) 13:13:02.22 (+2,-30,-24)
org-mode-hook に toggle-truncate-lines を追加してやればいいんじゃないかな
770 : 名無しさん@お腹 - 2013/11/07(木) 14:51:59.91 (-1,-29,-10)
>>768
以前探して見つけたのは、org-startup-truncated を NIL にしておく方法。
771 : 名無しさん@お腹 - 2013/11/07(木) 22:39:25.58 (-1,-29,-33)
X11のフォント設定に依存しない、直接ttfファイル等を指定して
フォントを設定することはできますか?
772 : 名無しさん@お腹 - 2013/11/08(金) 02:11:35.30 (+53,+25,-5)
今のところ OS に認識させないと無理だと思う。
773 : 名無しさん@お腹 - 2013/11/08(金) 12:40:42.05 (-1,-29,-24)
twittering-modeを使っているのですが
urlをクリックしたときに指定したブラウザでそのリンクを開くよう設定できますか
774 : 名無しさん@お腹 - 2013/11/08(金) 12:55:08.45 (+36,-30,-96)
browse-url を使ってるみたいだから、
browse-url-browser-function を browse-url-firefox とか好きなのに変更すればいい。
デフォルトで何が選べるかは browse-url の先頭のコメントのところに列挙されている。
そこにない場合は自分で適当に追加すればいい。

twittering-mode の url クリックの時だけ変更したいなら
twittering-click に包囲 advice でも追加してそこでだけ browse-url-browser-function を変更すればいい。
775 : 名無しさん@お腹 - 2013/11/08(金) 16:50:57.45 (+62,+29,-2)
>>774
できました!大変助かりました。感謝です。
776 : 768 - 2013/11/09(土) 01:24:53.69 (-1,-30,-22)
>>769-770
両方を参考にしてorg-mode-hookでorg-startup-truncatedをnilにすることにしました
ありがとうございました
777 : 名無しさん@お腹 - 2013/11/09(土) 22:33:14.63 (+16,-30,-124)
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が適用されます。
原因は何なのでしょうか?
778 : 名無しさん@お腹 - 2013/11/09(土) 22:48:15.90 (-1,-29,-17)
>設定ファイルにGithubに書かれているように書き込んだのですが
これのURLがないとなんとも
779 : 名無しさん@お腹 - 2013/11/10(日) 11:09:20.67 (+4,-30,-157)
>>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 : 名無しさん@お腹 - 2013/11/10(日) 11:19:21.48 (+9,-30,-154)
>>758
この話題、ちょっと前の gnu.emacs.devel でもあったね。
Emacs 24.4 では lexical-binding の機能を活かして、
コンパイル時に変数チェックまでしてくれるから、
eval-after-load の中もコンパイルすると、変数名のミスなどが見つかるので
有効。もっとも、読み込まないライブラリがあると逆にこれは鬱陶しいので、
ライブラリがない場合は、
(with-no-warnings) で囲むようなマクロを作っておけばさらに便利。

実は Emacs 24.4 には、すでに同じようなことをしてくれる
with-eval-after-load マクロが定義されている。。。
781 : 名無しさん@お腹 - 2013/11/10(日) 11:32:27.62 (+4,-30,-168)
>>777
勘で書くけど、
多分、init.el で、
(package-initialize)
を先頭の方で書いていないんじゃないかな。
これ書かないと、MELPA経由でインストールしたパッケージへの
アクセスが init.el でできない。
(package-initialize) は、init.el 読み込み完了後に
(もしinit.el で実行していないなら)自動的に行われるので
起動後は設定できるとか。
782 : 名無しさん@お腹 - 2013/11/10(日) 11:35:18.32 (+0,-29,-47)
>>780
>with-eval-after-load マクロが定義されている。。。
なんでいままでなかったんだレベルだな
783 : 名無しさん@お腹 - 2013/11/10(日) 11:37:23.74 (+3,-30,-140)
これか
(unless (fboundp 'with-eval-after-load)
(defmacro with-eval-after-load (file &rest body)
`(eval-after-load ,file
`(funcall (function ,(lambda () ,@body))))))

さっさか導入しちゃうのも悪くないな
784 : 名無しさん@お腹 - 2013/11/10(日) 12:29:19.02 (+68,+28,-10)
>>730
これも遅レスだけど、最近、一部で話題の領域選択ツール:
http://github.com/magnars/expand-region.el
rの連打でどんどん選択領域を広げてくれる。
785 : 名無しさん@お腹 - 2013/11/10(日) 13:04:05.71 (+0,+0,+0)
投下

auto-insert で挿入するテンプレートを yasnippet に処理させる
& ~/.emacs.d/template にモード名でファイルを放り込んでおけば勝手に auto-insert の対象にする

(add-hook 'find-file-hook 'auto-insert)

;; テンプレートファイルのフォルダ. モード名のファイルを配置する (java-mode.java や emacs-lisp-mode.el など)
(setq auto-insert-directory (locate-user-emacs-file "template"))

(defvar auto-insert-template-modtime nil "テンプレートディレクトリの更新時間.")

(defun auto-insert-yas-expand ()
"`auto-insert' するテンプレートを `yasnippet' のスニペットと見做して展開する."
(yas-expand-snippet (buffer-string) (point-min) (point-max)))

(defadvice auto-insert (before auto-insert-update-template activate)
"`auto-insert' 前にテンプレート一覧を更新する."
(let ((modtime (file-attributes auto-insert-directory)))
(unless (equal modtime auto-insert-template-modtime)
(setq auto-insert-template-modtime modtime)
(setq auto-insert-alist nil)
(dolist (template (directory-files auto-insert-directory nil "^[^.]"))
(add-to-list 'auto-insert-alist
(cons (intern (file-name-sans-extension template))
(vector template 'auto-insert-yas-expand))))
))
786 : 名無しさん@お腹 - 2013/11/10(日) 17:01:24.63 (+5,-30,-46)
>>777
theme は、普通の load-path とは、違う変数をたどるんだけど、
そこいらへんも、package system で、ちゃんと、面倒見てくれてるのかな?

custom-theme-directory
custom-theme-load-path

調べてみると、良いかもしれない。
787 : 名無しさん@お腹 - 2013/11/10(日) 18:20:01.75 (+13,-30,-160)
locate-file (locate-library とか executable-find) の実行結果をキャッシュするのを作った。
init.el なんかでパッケージの有無で分岐して設定変更なんかしてる場合にちょっとだけ起動が速くなる。

http://pastebin.com/hCAGBh6H

locate-file-cache.el で保存してなるべく早い位置で require する。
二回目以降の起動ではキャッシュを読むようになるのでディスクアクセスが発生しなくなって
ちょっとだけ速くなる。
788 : 名無しさん@お腹 - 2013/11/10(日) 18:26:48.25 (+0,-30,+0)
>>785
いいね。abbrev, dabbrev, skeleton, tempo, とか全部 yasnippet/auto-complete
に整理してるんで助かった。
(defadvice auto-insert (before auto-insert-update-template activate)
"`auto-insert' 前にテンプレート一覧を更新する."
(dolist (template (directory-files auto-insert-directory nil "-mode\\.[^~]+$"))
(let ((mode (intern (file-name-sans-extension template))))
(setq auto-insert-alist (assq-delete-all mode auto-insert-alist))
(add-to-list 'auto-insert-alist
(cons mode (vector template 'auto-insert-yas-expand))))))
snippet ですむのにわざわざ elisp で実装してドヤ顔している人ってなんなの?
と思わないことはない。
789 : 名無しさん@お腹 - 2013/11/10(日) 18:46:53.13 (+62,+27,-17)
SSD だとあんまり気にならなくない?
790 : 名無しさん@お腹 - 2013/11/10(日) 19:07:33.60 (+22,-30,-64)
>>789
普通のHDDでも誤差レベル。
自分ところは 37 回ぐらい executable-find とか locate-library してるけど
起動時間が 1.0 sec から 0.9 sec になった程度の差だった。
自己満足ではある。
791 : 名無しさん@お腹 - 2013/11/10(日) 20:34:49.57 (+57,+29,-47)
1万回起動すれば1000秒(約16分)の差になる。
メロスも16分遅れていたら約束を果たせなかったかもしれない。
人生の行方を決めるには十分な時間さ。
792 : 名無しさん@お腹 - 2013/11/10(日) 20:51:46.13 (+57,+29,-19)
一日2回起動するとしても16分稼ぐのに13年もかかるのか・・・
PCの性能があがると更に差は縮まるだろうしなかなか過酷な旅路になるな
793 : 名無しさん@お腹 - 2013/11/10(日) 21:17:59.12 (-1,-29,-36)
>>787
一時的なファイルチェックなんかに locate-file 使われると詰むから
init.el 内のみで機能するようにした方が無難だと思う。
794 : 名無しさん@お腹 - 2013/11/10(日) 21:29:59.18 (+9,-29,-52)
init.elc ファイル見てて思ったんだけど、advice 定義の中身ってコンパイルされてないのね。
上の方で eval-after-load の中身をコンパイルしてたけどこっちは出来ないんだろうか。
オプションに compile って付けてみたけど効果がよくわからない。
795 : 名無しさん@お腹 - 2013/11/10(日) 22:02:56.27 (+4,-29,-40)
>>794
適当にadviceした関数の定義をsymbol-functionで見てみるとどうやらコンパイルされてるっぽいから
特に何もしなくてもいいんじゃないのかね。defadviceしたタイミングでコンパイルされるんだろうきっと。
796 : 名無しさん@お腹 - 2013/11/10(日) 23:29:44.99 (+3,-29,-76)
そうすると init.el に advice 書きまくるとバイトコンパイルのせいでどんどん遅くなるんじゃないかって気がしてきた
実際 flet とか advice の中に書いとくと起動時に Compile-Log のバッファが出来てて warning が記録されてる・・
797 : 名無しさん@お腹 - 2013/11/10(日) 23:38:22.34 (-1,-29,-3)
adviceは(あんまり)使うべきではない
http://www.emacswiki.org/emacs/AdviceVsHooks
798 : 名無しさん@お腹 - 2013/11/10(日) 23:53:51.94 (+52,-14,-18)
>>790
37回という回数はどうやって計測するの?
799 : 名無しさん@お腹 - 2013/11/11(月) 00:04:03.16 (+101,+29,-33)
>>798
occur で数えたよ。ダサい答えでごめんなさい。
require した別のファイルの中でも呼んでたりするだろうから実際はもう少し多いかもね。
それこそ advice でも書いて数カウントでもしたほうがいいのかもしれない。
800 : 名無しさん@お腹 - 2013/11/12(火) 00:43:56.46 (+19,-30,-64)
流れぶった切るけど。文字列の最初の空白のみからなる行を削除するのってemacsではどう書くのがいい?

Gaucheだと
(regexp-replace #/^( *\n)*/ str "")
と書けるけど、emacsだと
(string-match "^\( *\n\)*" " \n\n \n hoge\n \n")
はnilになるので。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について