トップページunix
1001コメント315KB

Emacs Part 43

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。2013/06/09(日) 14:05:32.09
語り合いましょう。

GNU Emacs - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/software/emacs/

EmacsWiki: サイトマップ
http://www.emacswiki.org/emacs/

Emacsのトラノマキ | 検索結果: | ありえるえりあ
http://dev.ariel-networks.com/wp/?s=Emacs%E3%81%AE%E3%83%88%E3%83%A9%E3%83%8E%E3%83%9E%E3%82%AD

前スレ
EmacsPart42
http://toro.2ch.net/test/read.cgi/unix/1356319580/
0863名無しさん@お腹いっぱい。2013/11/21(木) 15:05:26.93
>>862
なるほど、マクロの理解が足りてませんでした。
評価結果で置換されるわけだから外側の let は置換後の結果にあらわれてこないと。
(defmacro foo1 () (bar)) と (defmacro foo2 () '(bar)) の違いということですね。
いまいちなんでマクロ本体にシングルクォートを置くのかわからず使っていました。

ありがとうございます。
0864名無しさん@お腹いっぱい。2013/11/21(木) 15:16:24.70
もう一つ質問です。
intern-soft で非 nil が返ってくるのに obarray の中にシンボルが見つからないということはありうるのでしょうか。
emacs -q で起動した emacs に対して以下を評価しました:

(require 'cl-lib)
(intern-soft "cl-find") ; => cl-find
(cl-find (lambda (sym) (string-match "^cl-find" (symbol-name sym))) obarray) ; => nil

intern-soft では cl-find が定義されてるように返ってくるのですが、
cl-find で検索した結果は nil となってしまいました。
実際に obarray を展開してインクリメンタルサーチしても実際中に入っていないように見えます。
0865名無しさん@お腹いっぱい。2013/11/21(木) 15:45:04.87
mapatoms で vector (obarray) をお探しくだせぇ

参考

(let ((vec (make-vector 1 nil)))
(intern "a" vec)
(intern "b" vec)
(list
(intern-soft "a" vec)
(intern-soft "b" vec)
(intern-soft "c" vec)))
0866名無しさん@お腹いっぱい。2013/11/21(木) 15:50:00.99
obarray より cl-find の使い方からだな
0867名無しさん@お腹いっぱい。2013/11/21(木) 16:02:45.34
>>865
ありがとうございます。
mapatoms で探索させたところ見つかりました。

(require 'cl-lib)
(let ((found nil))
(mapatoms (lambda (sym) (when (string-match "^cl-find" (symbol-name sym))
(setq found t))))
found) ;; => t

vector ⊂ sequence だと思っていたのですが必ずしもそういうわけでもないってことなんでしょうかね
(pp obarray) させた結果にも cl-find が出てきませんでしたし。
もうすこし vector について勉強してみます。
0868名無しさん@お腹いっぱい。2013/11/21(木) 16:13:23.22
(length obarray) と mapatoms で数えた要素数が異なるのもなんでかわからない・・・

(let ((count 0))
(mapatoms (lambda (sym) (setq count (1+ count))))
count) ;; length の結果とかなり異なる (ex 1511 vs 22728 など)

length のドキュメントを見る限り普通に vector にも使えそうな感じではあるのですが。
0869名無しさん@お腹いっぱい。2013/11/21(木) 16:20:27.07
自己解決しました。
obarray は vector ではあるが、中身は hash 構造になっているので mapatoms 以外での探索は出来ないとのこと。
ちゃんと obarray の説明の所に書いてありますね。length での値が異なるのも納得できました。

http://www.gnu.org/software/emacs/manual/html_node/elisp/Creating-Symbols.html
0870名無しさん@お腹いっぱい。2013/11/21(木) 16:21:05.35
解決したらしいけどおまけ。

http://www.mew.org/~kazu/doc/elisp/hash.html
0871名無しさん@お腹いっぱい。2013/11/21(木) 16:22:27.85
mapatomsのドキュメントを読んだ感じだと
http://www.geocities.co.jp/SiliconValley-Bay/9285/ELISP-JA/elisp_103.html

obarrayがフラット(?)なvectorじゃないだけじゃない?
emacs lispを余り知らないからはっきりと言えないけど
vector ⊂ sequence は正しいんじゃない?
0872名無しさん@お腹いっぱい。2013/11/21(木) 19:05:20.92
imaximaのgnuplot連携ですが外部のgnuplotを呼び出さずにインラインで描画させる方法有りませんか? ( ; ; )誰か助けてorz
0873名無しさん@お腹いっぱい。2013/11/21(木) 19:22:24.33
呼び出さないってのは gnuplot の window に描画させるんでなく、emacs の window 内に表示させたいってことだよね?
gnuplot がない環境でも動くようにって話ならそりゃ無理じゃねえの?としか。
0874名無しさん@お腹いっぱい。2013/11/21(木) 19:42:55.65
rskkservはruby 1.9に対応してないようですが、
これは簡単には動きませんか?
0875名無しさん@お腹いっぱい。2013/11/21(木) 19:53:42.68
>>873
gnuplot自体は有ってgnuplot-modeでプロセス作ってコマンド入れればインラインで描いてくれます。
imaximaで使うgnuplotをemacs外部のプロセスじゃなくemacs内のプロセスでインラインにならないかと。
0876名無しさん@お腹いっぱい。2013/11/21(木) 20:00:30.54
>>872
Imaximaのサイトやブログに書いてあったよ。

Tutorial of Imaxima inline graph
sites.google.com/site/imaximaimath/tutorial-of-imaxima/tutorial-of-imaxima-inline-graph

draw関数によるグラフのプロット 入門編 - Maximaでつづる数学の旅
d.hatena.ne.jp/jurupapa/20110613/1307977715
> imaximaではグラフをEmacsのバッファの中にインラインで表示することができ
> るのですが、そのために、draw2d()の代わりにwxdraw2d()関数を使用します。
> 引数などの書式は両者とも全く同じです。
0877名無しさん@お腹いっぱい。2013/11/21(木) 20:33:40.54
>>876
おおおお、(≧∇≦)
ありがとうございます(^o^)/
0878名無しさん@お腹いっぱい。2013/11/24(日) 06:56:36.40
今更ながら24.3にしてみたですけど、
Warning: function `map' from cl package called at runtime
これはどうすれば黙らせられます?
0879名無しさん@お腹いっぱい。2013/11/24(日) 10:19:50.70
byte-compile-warnings から cl-functions を抜けばいい。
cl-functions だけ外してずらずら列挙するか、'(not cl-functions) とか設定するとか。
0880名無しさん@お腹いっぱい。2013/11/24(日) 10:22:34.51
あと正攻法でいくならで cl-map に置き換えるとか。
直接書き換えないんでも バージョンみて defalias して上げりゃいいと思う

ただ cl-flet なんかは flet と挙動自体が変わってて cl-letf にしないとダメな場合もあるから
単純に defalias すればいいってわけでもなかったりするのもある
0881名無しさん@お腹いっぱい。2013/11/25(月) 11:31:24.63
C++/CLI を semantic が理解できるようにする方法があったら教えてくださいませ。
c++-modeで開いてみたときの印象からは、 ^ を *, & と同じように扱えれば何とかなりそうなんだけど、
どこをどうすればいいのかがわからなくて。

Doxgenタイプのコメントをつけたいのだけれど、いちいち手で作るのは勘弁してほしいというだけなんで、
semantic使わないで、関数のコメントのテンプレートを生成する方法があれば、そちらもよろしく。
0882名無しさん@お腹いっぱい。2013/11/25(月) 12:05:42.27
自分で調べろクソが
0883名無しさん@お腹いっぱい。2013/11/25(月) 16:33:52.79
そこら辺はもう MS の VC 使うとかの方が健全な解な気がしてる
0884名無しさん@お腹いっぱい。2013/11/25(月) 17:54:53.59
C# なら /// でコメントのテンプレート吐いてくれるからいいんだけれど、
C++ だと吐いてくれないから Semantic で何とかならないかと
もしかして、最近のVCではできたりするのかな?
2013 Express インストールしてみる
0885名無しさん@お腹いっぱい。2013/11/25(月) 21:35:52.50
/usr/share/emacs/lisp/cedet/semantic/bovine/c.el ぐらいを改造してC++に対応させる、のは無理か。
テンプレートだけなら /usr/share/emacs/etc/srecode/cpp.srt に加筆。
0886名無しさん@お腹いっぱい。2013/11/25(月) 23:57:40.26
正規表現をつかって検索した単語にmultiple-cursorsすることってできますか??
0887名無しさん@お腹いっぱい。2013/11/26(火) 00:27:18.08
繰り返しが含まれる正規表現なんかだとなんかあやしい結果になりそうだなそれ
a*b みたいなのだと aaaaaaaaab とか aab に同時にカーソルが現れて欲しいってことでしょ?
0888名無しさん@お腹いっぱい。2013/11/27(水) 13:41:39.57
windowsのgnupackでemacsを使っています
twittering-mode.elでmaster passwordを使ってタイムラインを開こうとすると
パスワードを入力してenterを押したとたん
"the authorized token is loaded"
というメッセージがエコー欄に表示されてEmacs自体が完全に固まることがあります
そのときは強制終了させなければいけません
正常にタイムラインが表示されることがほとんどなのですが、エラーの結果が重大なので気がかりです
どのような原因が考えられるのでしょうか
0889名無しさん@お腹いっぱい。2013/11/27(水) 16:29:10.23
リンク可能なテキストの作成について質問します
テキスト,ファイル名,行番号からなるリストが複数あります
'(("test text1" "~/foo/test1" 3)
("test text2" "~/foo/test2" 5))
これをもとにテキストの文字列全体にファイル名のその行番号を紐付けてリンクして
文字列として返すようにしたいのですがどうすればいいのでしょうか
http://www.gnu.org/software/emacs/manual/html_node/elisp/Changing-Properties.html
これのset-text-propertyを使うとは思うのですが、propをどういじればリンクできるかが分かりませんでした
どうぞよろしくお願いします
0890名無しさん@お腹いっぱい。2013/11/27(水) 16:34:45.14
>>888
NTEmacs 固有っぽい気がする
http://anago.2ch.net/test/read.cgi/software/1325573999/
0891名無しさん@お腹いっぱい。2013/11/27(水) 16:35:57.32
>>889
返すってのはツールチップみたいに表示したいってこと?
0892名無しさん@お腹いっぱい。2013/11/27(水) 20:57:59.73
>>891
889です
すみません言葉足らずでした
ツールチップの表示ではなくてリンクを埋め込んだテキストを普通に表示する、という意味です
org-modeでurlを書くと自動的にクリッカブルな文字列になりますが
あのようなものをorg-mode以外でも使いたいのです
0893名無しさん@お腹いっぱい。2013/11/27(水) 21:04:29.97
普通に表示するってのは、マウスクリックでそのテキストにリンクしてるファイルを find-file して
リンクしてる行までジャンプして表示する、ってことでいいのかな。

http://www.gnu.org/software/emacs/manual/html_node/elisp/Clickable-Text.html#Clickable-Text
クリッカブルな文字列のプロパティの作り方はここでよさそう。
find-file して forward-line する関数をくっつけてやればいいんじゃないのかな。
0894名無しさん@お腹いっぱい。2013/11/27(水) 21:44:57.26
ありがとうございます。やってみます。
08958782013/11/28(木) 02:04:03.37
>>879>>880
すみません遅くなりましたが、ありがとうございましたm(_ _)m
とりあえず byte-compile-warnings にしてみます
0896名無しさん@お腹いっぱい。2013/11/28(木) 14:31:41.55
>>890
ありがとうございます。NTEmacsスレで聞いてみます
0897名無しさん@お腹いっぱい。2013/11/28(木) 14:32:48.49
emacsスレからこちらに誘導されてきました
windowsのgnupackでemacsを使っています
twittering-mode.elでmaster passwordを使ってタイムラインを開こうとすると
パスワードを入力してenterを押したとたん
"the authorized token is loaded"
というメッセージがエコー欄に表示されてEmacs自体が完全に固まることがあります
そのときは強制終了させなければいけません
正常にタイムラインが表示されることがほとんどなのですが、エラーの結果が重大なので気がかりです
どのような原因が考えられるのでしょうか
0898名無しさん@お腹いっぱい。2013/11/28(木) 14:59:23.62
出戻ってんじゃねえかw
0899名無しさん@お腹いっぱい。2013/11/28(木) 15:46:22.94
すみません
素で間違えてしまいました
0900名無しさん@お腹いっぱい。2013/11/28(木) 16:16:24.53
>>897
やべー少しウケたw
0901名無しさん@お腹いっぱい。2013/11/28(木) 21:43:45.34
微笑ましい
0902名無しさん@お腹いっぱい。2013/11/29(金) 05:31:41.64
evil使ってるとforward-sexpが行末で止まってしまうんですが、これはevil-move-cursor-backをnilにする以外では避けようがないんですかね
0903名無しさん@お腹いっぱい。2013/11/30(土) 02:53:35.49
>>902
それ、evil 関係なくない?

うちでは、普通に動いてるっぽいけど。
0904名無しさん@お腹いっぱい。2013/11/30(土) 09:09:31.90
anything-c-moccor-occur-by-moccorを
あらかじめキーワードを指定した状態で呼び出したいです。
ミニバッファに
patter:キーワード
↑キーワードがすでに打ち込まれた状態でキーバインドから呼び出したいのですが、
わかる方いらっしゃいますか?
0905名無しさん@お腹いっぱい。2013/11/30(土) 09:50:04.68
>>904
これかな。
(anything-c-moccur-occur-by-moccur-base "キーワード")
0906名無しさん@お腹いっぱい。2013/11/30(土) 10:56:30.83
>>905
実行できました。
ありがとうございます!!
0907名無しさん@お腹いっぱい。2013/11/30(土) 14:51:51.78
>>903
あんまりEmacsに慣れてないからよくわかんないんだけど

・閉じ括弧でC-M-f(forward-sexp)を呼ぶと、モード・位置関係なく Scan error: "Containing expression ends prematurely" と出てカーソルは移動しない
・それ以外の場合はEmacsモードでは普通に動作する
・evilのnormalステートだとカーソルが行の最後の要素の一番後ろの文字の上に乗った状態で引っかかる。閉じ括弧じゃないならエラーメッセージは出ないけどやっぱり動かない
・evil-move-cursor-backをnilにするか、行末にスペースがあるとちゃんと次の要素に飛んでくれる

っていう状態です
誰か助けて

ちなみに
GNU Emacs 24.3.1 (i386-mingw-nt6.0.6002)で
evilのバージョンは1.0.8です
0908名無しさん@お腹いっぱい。2013/11/30(土) 14:55:22.09
vimに移るかevilを捨てるか選んで
0909名無しさん@お腹いっぱい。2013/11/30(土) 17:21:04.87
evilのメリットってctrlを使わないでカーソル移動ができることなのかな
そうだとするならばモード移動の切り替えも面倒な気がするけれど
慣れてしまったせいかemacsのctrl+n, ctrl+pの方がモードを気にせず楽だと思うけれどね
0910名無しさん@お腹いっぱい。2013/11/30(土) 17:47:39.09
>>907 は、 cursor 位置の emacs と、vi 系の違いを理解していない。と思う。

試しに、forward-sexp を、evil の insert state や emacs state で、やってみ。

normal mode のbox cursor と、 emacs での box cursor の位置の解釈の仕方が、
違うんだ。

行末での cursor 位置の違いを emacs state と normal state で
見比べてみると、一個ずれてるのに気づくと思うけど。

ちなみに、エラーメッセージの意味は、閉じカッコの手前で forward に進もうとするから、進めねーよ(意訳)ってことだろう?

対策としては、advice とか使って、ちょっと、手を加えるとかになるんじゃないんかな。

おれは、insert state で使ってすましてる。
0911名無しさん@お腹いっぱい。2013/11/30(土) 19:15:09.87
変更されているバッファを一度にすべて保存するコマンドはありますか?
今はemacs終了時に変更されているバッファを保存するかどうか聞かれるのでyを何度も押しています
0912名無しさん@お腹いっぱい。2013/11/30(土) 19:19:09.40
>>911
save-some-buffers に universal-argument を付けて実行。
C-u C-x s かな。

buffer-save-without-query を t にしておけば C-x s で問答無用で保存してくれるようになる。
そのかわり終了時にも聞かれなくなるかもしれない。
0913名無しさん@お腹いっぱい。2013/11/30(土) 21:16:51.36
>>912
ありがとうございます
0914名無しさん@お腹いっぱい。2013/11/30(土) 23:10:44.15
>>910
ほんとだ、insertステートだと問題なく動く
多分、normalステートだと行末の改行にカーソルが乗らずに一文字戻るって仕様なんだね
理屈は分かったから後はこっちで色々いじってみるよ
どうもありがとう
0915名無しさん@お腹いっぱい。2013/12/01(日) 13:14:05.85
smart-compile とか flymake とか quickrun ってなんか上手に統合出来そうな気もするんだけど
すでにそういうパッケージってあったりするんだろうか
0916名無しさん@お腹いっぱい。2013/12/03(火) 12:17:55.72
そう思うなら自分で探してみたらいーんじゃないでしょうかね
0917名無しさん@お腹いっぱい。2013/12/04(水) 08:41:44.37
(interactive "s表示用テキスト : ")

ミニバッファ側
表示用テキスト : 「」

「」に初期値を入れておきたいのですが、やりかたが見つからず。
C-x C-fのようなかんじです。
よろしくおねがいします。
0918名無しさん@お腹いっぱい。2013/12/04(水) 11:28:06.67
それこそその find-file を見てみりゃわかると思うけど
単に自前でプロンプト出す関数を使ってるだけの話だね。

(defun with-default-input (text)
(interactive (list (read-input "Text: " "hello, world")))
(message "Input text: %s" text))
0919名無しさん@お腹いっぱい。2013/12/05(木) 00:14:15.27
>>918
ありがとうございます。
できました。
lisp全体にですが理解が浅いので助かります。
read-inputってはじめて知りましたw
0920名無しさん@お腹いっぱい。2013/12/05(木) 02:34:57.31
popup-select-windowの表示方法でバッファ一覧を確認できないのでしょうか?
http://d.hatena.ne.jp/khiker/20100924/popup_select_window のスクリーンショットが一番わかりやすいです。
0921名無しさん@お腹いっぱい。2013/12/05(木) 11:05:36.28
説明読んだがどういう動きするのかよくわからなかった・・・
3つ以上に分割してる時に選んだ先のウィンドウをわかりやすく表示するってこと?
0922名無しさん@お腹いっぱい。2013/12/05(木) 12:40:22.02
使ったらすぐ分かった。ウィンドウが 3つ以上の時に popup で選択先を選べて
かつ選ぶウィンドウをわかりやすく色付けするって拡張だったのか。

バッファ選択の場合、iswitchb なんかだと↓付けることで
現在選ぼうとしてるバッファがリアルタイムで表示されてちょっとはわかりやすくなるんじゃないかな
popup.el で表示させたいんだったら自分でなんか書かないとだめじゃないかね。

(require 'cl-lib)

(defadvice iswitchb-exhibit
(after ad-iswitchb-exhibit-with-display-buffer activate)
"選択しているバッファをウィンドウに表示する."
(when (and (eq iswitchb-method iswitchb-default-method)
iswitchb-matches)
(let ((iswitchb-method 'samewindow)
(selected (get-buffer-window
(cl-find-if-not 'minibufferp (buffer-list)))))
(when selected
(select-window selected)
(iswitchb-visit-buffer
(get-buffer (car iswitchb-matches)))
(select-window (minibuffer-window))))
))
0923名無しさん@お腹いっぱい。2013/12/05(木) 12:56:33.94
popupで表示して選ぶだけならこれでいける
(switch-to-buffer
(popup-menu* (mapcar
(lambda (b) (popup-make-item (buffer-name b) :value b))
(cl-remove-if (lambda (b)
(string-match "^ " (buffer-name b)))
(buffer-list)
))))
0924名無しさん@お腹いっぱい。2013/12/05(木) 13:03:36.67
>>923
delq はもっと使われていい。

(switch-to-buffer
(popup-menu*
(delq nil (mapcar
(lambda (buf)
(unless (string-match "^ " (buffer-name buf))
(popup-make-item (buffer-name b) :value buf)))
(buffer-list)))))
0925名無しさん@お腹いっぱい。2013/12/05(木) 16:29:41.76
smartrep.elでenterキーにコマンドを割り当てたいです
keyboard-quitを割り当てたいのですが("<enter>" . 'keyboard-quit)と書いても何も起きませんでした
0926名無しさん@お腹いっぱい。2013/12/05(木) 19:46:43.05
<return> じゃないの?
0927名無しさん@お腹いっぱい。2013/12/05(木) 22:33:13.02
>>926
そうでした...
0928名無しさん@お腹いっぱい。2013/12/06(金) 01:23:33.45
えんたあああああああああああああああああああいああああああああああああ!!!!


魔がさした。反省はしてない
0929名無しさん@お腹いっぱい。2013/12/06(金) 09:23:32.56
entire?
0930名無しさん@お腹いっぱい。2013/12/06(金) 10:10:44.44
しかしキーボードにはEnterって書いてあるのに、Returnキーとはこれいかに
昔の名残か
0931名無しさん@お腹いっぱい。2013/12/06(金) 13:36:03.15
enterは電算端末
returnはタイプライター、パンチカードの名残り
押すとキャリッジがリターンしたから
0932名無しさん@お腹いっぱい。2013/12/06(金) 14:47:30.59
元々はリターンキーだったろ。エンターなんて最近。PC-98もリターンキーだったろ?
0933名無しさん@お腹いっぱい。2013/12/06(金) 15:11:35.54
大昔から「入力」「送信」なんて表記もあったよ
0934名無しさん@お腹いっぱい。2013/12/06(金) 17:15:48.23
>>933
キーボードに?
0935名無しさん@お腹いっぱい。2013/12/06(金) 18:04:31.55
送信キーは何かで見たな。
大学の図書館にあった検索端末だったかな。
0936名無しさん@お腹いっぱい。2013/12/06(金) 18:43:51.63
Macのjisキーボードには
enter / return両方刻印されてるな。
0937名無しさん@お腹いっぱい。2013/12/06(金) 22:53:20.42
compile について質問です。
エラーが発生するまで *compilation* ウィンドウを開かない方法はないでしょうか?
0938名無しさん@お腹いっぱい。2013/12/06(金) 23:14:15.73
http://yohshiy.blog.fc2.com/blog-entry-132.html
ここにそれっぽい事が書いてある
0939名無しさん@お腹いっぱい。2013/12/06(金) 23:38:05.74
>>938
ありがとうございます。正常なら開かないのではなく正常なら閉じる、しかなさそうな感じですね。
gcc とかだとコンパイルエラーでも終了時のステータスが 0 だったので face で判断するのを書いてみました。

(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(unless (with-current-buffer buffer
(let ((cur (point-min)) found)
(while (and cur (not found))
(setq found
(let ((face (get-text-property cur 'face)))
(memq 'compilation-error
(if (listp face)
face
(cons face nil)))))
(setq cur (next-property-change cur)))
found))
(when (get-buffer-window buffer)
(delete-window (get-buffer-window buffer))))))
0940名無しさん@お腹いっぱい。2013/12/07(土) 00:31:47.18
>>939
compilation-messageの方使うともうちょい短くなるな。
(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(when (and (not (with-current-buffer buffer
(text-property-not-all (point-min) (point-max)
'compilation-message nil)))
(get-buffer-window buffer))
(delete-window (get-buffer-window buffer)))))
0941名無しさん@お腹いっぱい。2013/12/07(土) 12:33:27.07
compilation buffer を最初から表示させないのを作ってみた。エラーの時だけ表示される。

font-lock のとこもうちょっとなんとかならんのかしら。
エラーが起きたかどうかをテキストプロパティから判別してるんだけど、
font-lock が遅延評価かなんかしてるせいか display-buffer しないとプロパティが設定されない。
fontify-buffer は font-lock-mode だと機能してくれなくて 一旦 font-lock-mode 解除とか間抜けなことするはめに。

(defadvice compilation-start (around compile-silently activate)
"コンパイル時にバッファを表示しない."
(cl-letf (((symbol-function 'display-buffer) 'ignore))
ad-do-it))

;; コンパイルエラー時のみ *compilation* バッファ表示
(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(with-current-buffer buffer
(font-lock-mode -1)
(font-lock-fontify-buffer)
(font-lock-mode 1)
(when
(text-property-not-all (point-min) (point-max)
'compilation-message nil)
(display-buffer buffer))))
)
0942名無しさん@お腹いっぱい。2013/12/07(土) 12:56:08.08
きたねーコード貼るな
日記にでも書いてろ
0943名無しさん@お腹いっぱい。2013/12/07(土) 12:56:19.26
なにも表示させたくないならflymakeとかも検討してみたら?
0944名無しさん@お腹いっぱい。2013/12/07(土) 14:06:43.00
emacs 上でテストを書く時にサポートしてくれるようなパッケージってありますでしょうか?
具体的には本体とテストを簡単に行き来出来るようなパッケージを探しています。
0945名無しさん@お腹いっぱい。2013/12/07(土) 17:25:01.89
そんなものありません
0946名無しさん@お腹いっぱい。2013/12/07(土) 22:57:48.90
>>944
`ff-find-other-file' を使えば出来る気がする。
そう思ってググったらCofeeScript用の設定例が見つかった。
https://github.com/yasuyk/coffee-fof/blob/master/coffee-fof.el
0947名無しさん@お腹いっぱい。2013/12/08(日) 09:04:29.88
direx でディレクトリを先に表示するようなのを書いた

(defadvice direx:node-children (around sort-files activate)
"direx でディレクトリを最初に表示する."
(let ((org-directory-files (symbol-function 'directory-files)))
(cl-letf (((symbol-function 'directory-files)
(lambda (directory &optional full match nosort)
(if nosort
(funcall org-directory-files directory full match nosort)
(sort (funcall org-directory-files directory full match)
(lambda (a b)
(let ((dir-a (file-directory-p a))
(dir-b (file-directory-p b)))
(if (eq dir-a dir-b)
(string-lessp a b)
(if dir-a t)))))))))
ad-do-it)))
0948名無しさん@お腹いっぱい。2013/12/08(日) 10:37:49.54
設定ファイル内で、
コンパイル時にライブラリが存在してるかどうかチェックして require したり
実行ファイルが存在するかチェックして設定したり、なんてのがよくありますが、
Cのプリプロセッサみたいにコンパイル時にチェックを済ませてしまうことって出来ないんでしょうか?

(if (executable-find "ruby") (setq hoge "aaa"))
みたいなのがあった場合、コンパイル時に executable-find を実行、if の条件判断までやってしまって
ruby がない場合は elc ファイル内になにも残らず、存在する場合は setq だけ残したいです。
0949名無しさん@お腹いっぱい。2013/12/08(日) 11:03:21.40
マクロを使え
(defmacro if-on-compile (cond &rest form)
(when cond `(progn ,@form)))
0950名無しさん@お腹いっぱい。2013/12/08(日) 11:17:07.24
common lispなら
(if #.(executable-find "ruby") (setq hoge "aaa"))
でいけると思う。
emacs lispでも#.は使えるみたいだけど狙った結果になるかわからん
0951名無しさん@お腹いっぱい。2013/12/08(日) 11:21:30.61
すまん#.使えないやん
0952名無しさん@お腹いっぱい。2013/12/08(日) 12:06:16.44
>>949
それだと cond が評価されない気がする
(defmacro if-on-compile (cond &rest form)
(when (eval cond) `(progn ,@form)))
0953名無しさん@お腹いっぱい。2013/12/08(日) 12:37:34.71
(when (locate... をそれに全部置き換えて eval-when-compile を駆使しまくった結果・・・・
emacs-init-time が 0.9 から 0.8 になった

すげえ虚しい
修正に10分くらいはかかってそうだから 6000回 は emacs を起動しないと元が取れない
0954名無しさん@お腹いっぱい。2013/12/08(日) 13:30:22.30
emacsの起動時間が0.5秒を超えている奴は起動するたびに人生を無駄使いしていると悟るべき。
0955名無しさん@お腹いっぱい。2013/12/08(日) 15:27:05.37
emacsなんて一週間以上そのまま使い続けたりするし
0956名無しさん@お腹いっぱい。2013/12/08(日) 15:36:26.12
俺も再起動は滅多にしないな
するとしたらOSをリブートしたときとかinit.el関連を書き換えたときくらいかな
強制終了するまでは起動しっぱなしだわ
0957名無しさん@お腹いっぱい。2013/12/08(日) 16:02:39.75
navi2ch とか wanderlust とか twittering-mode を使わなくなったら
わりと頻繁に終了させるようになった。
0958名無しさん@お腹いっぱい。2013/12/08(日) 16:29:26.42
shell-mode が快適すぎて終了させる気にならない
0959名無しさん@お腹いっぱい。2013/12/08(日) 16:49:43.64
がんがん再起動するけど
0960名無しさん@お腹いっぱい。2013/12/08(日) 16:55:47.17
>>953
君にとっては小さな0.1秒でも、
1000年後、2000年後の子孫にとっては貴重な100時間になるかもしれない。
これこそが俺達がパフォーマンスチューニングをする最大の理由なんだ。
0961名無しさん@お腹いっぱい。2013/12/08(日) 17:06:54.96
emacs-uptime が 8時間こえたことない。たぶん。
0962名無しさん@お腹いっぱい。2013/12/08(日) 17:08:10.01
self-insert-command の処理時間短縮に成功したなら誇っていい
レス数が950を超えています。1000を超えると書き込みができなくなります。