Emacs Part 42
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。
2012/12/24(月) 12:26:20.01Emacs Part 41
http://toro.2ch.net/test/read.cgi/unix/1347009022/
0838名無しさん@お腹いっぱい。
2013/04/18(木) 21:56:30.70(defun hoge (args)
(when args
(print args)
)
)
とかいてしまいます
0839名無しさん@お腹いっぱい。
2013/04/18(木) 22:08:13.550840名無しさん@お腹いっぱい。
2013/04/18(木) 22:14:21.72よくあるスタイルに慣れとくと楽だよ。
0841名無しさん@お腹いっぱい。
2013/04/18(木) 22:22:37.68こういうスタイルは見る度にイラっとする。
0842名無しさん@お腹いっぱい。
2013/04/18(木) 22:24:00.60> のせないでソースをサラッと流し見したいときなどに困ってます。
これは何に困ってるの?
括弧の対応が間違っている、すなわちコンパイルが通らないようなのは論外でしょ。
0843名無しさん@お腹いっぱい。
2013/04/18(木) 22:43:29.60自分も最初はそうだったけど、インデントで読むようになってからは括弧は見なくなった
逆にCとかの括弧を }}}}} ってやりたくなる衝動にかられる
0844名無しさん@お腹いっぱい。
2013/04/18(木) 22:49:12.21全く持って同意だわ。最後の括弧がグラデーションになってないといらっとする。
0845838
2013/04/19(金) 09:20:25.99>括弧の対応が間違っている、すなわちコンパイルが通らないようなのは論外でしょ。
さすがにコンパイルがとおらないようなことはないです。
他人のソースを読むときの話です。
あと、括弧が改行されてないとめんどくさいと書いてて感じるときは、
let※の先頭に変数を入れたいときに行頭で改行インデントですぐ入力できず括弧まで移動しなければならなかったり、
whenや関数などの末尾行に新たに処理を記述したいときに
行末近くの括弧から改行させる必要があるからです。
ここら辺はエディタのサポートで簡略化できてたりしますか?
0846名無しさん@お腹いっぱい。
2013/04/19(金) 10:50:21.71> let※
これ何かと思ったら let* かよ。。
> 他人のソースを読むときの話です。
だから読むときの何に困ってるわけ?
さらっと流し読むときなら symbol 名である程度を把握するでしょ。
> めんどくさいと書いてて感じるときは、
んーなんだろう。sexp 移動系のコマンドかなぁ。C-M-f, C-M-b
0847名無しさん@お腹いっぱい。
2013/04/20(土) 13:44:28.55インデントは、indent-regionで整えているのですが、
function (a,b,c = 1) {
}
等となっているものを、一括で
function( a, b, c=1){
}
のように再整形したいです。
0848名無しさん@お腹いっぱい。
2013/04/20(土) 13:58:58.29emacsのphp-modeはかなりなんちゃってなんで無理じゃないかな?
C風の言語のmodeはcc-mode派生になってコード共通化してるけど、
php-modeは独自実装で凄く小さいelispなんで。
ぱっと見そんなコードは入ってない。
http://php-mode.svn.sourceforge.net/svnroot/php-mode/tags/php-mode-1.5.0/php-mode.el
0849名無しさん@お腹いっぱい。
2013/04/20(土) 14:36:54.580850名無しさん@お腹いっぱい。
2013/04/20(土) 14:44:36.120851名無しさん@お腹いっぱい。
2013/04/20(土) 18:47:06.050852名無しさん@お腹いっぱい。
2013/04/20(土) 19:37:24.42Emacsは??
0853名無しさん@お腹いっぱい。
2013/04/21(日) 02:43:08.72仕事にならない不具合が出てるんですけど
解決策はありますか?
0854名無しさん@お腹いっぱい。
2013/04/21(日) 08:17:04.78あんこくう゛ぃむおうみたいに。
Emacs にもそういう痛々しい人材は必要だ。
0855名無しさん@お腹いっぱい。
2013/04/21(日) 10:24:25.04それは仕様です
0856名無しさん@お腹いっぱい。
2013/04/21(日) 10:24:57.890857名無しさん@お腹いっぱい。
2013/04/21(日) 10:26:01.16経験上,5年ぐらいで飽きるからそれまで我慢しよう。
0858名無しさん@お腹いっぱい。
2013/04/21(日) 10:47:45.07さらに末尾再帰呼び出しの最適化でもやってくれれば、
10年以上遊べるものになりそうなんだがなあ
0859名無しさん@お腹いっぱい。
2013/04/21(日) 16:28:07.94仮想空間内のバーチャル PC みたいなので起動して
擬似的なペアプログラミング(最大で数百人まで対応)みたいな
凄まじい世界になってそうだ。
0860名無しさん@お腹いっぱい。
2013/04/22(月) 09:29:40.130861名無しさん@お腹いっぱい。
2013/04/22(月) 12:22:14.850862名無しさん@お腹いっぱい。
2013/04/23(火) 02:19:26.23ここ見るとGuile Emacsが着々と進行している
がんばって欲しいもんだ
0863名無しさん@お腹いっぱい。
2013/04/23(火) 08:30:30.070864名無しさん@お腹いっぱい。
2013/04/23(火) 09:40:29.000865名無しさん@お腹いっぱい。
2013/04/23(火) 12:29:24.120866名無しさん@お腹いっぱい。
2013/04/23(火) 12:34:50.81Emacsだけあっても、そもそもどうやって動かして、何に使うのよって話だから
0867名無しさん@お腹いっぱい。
2013/04/23(火) 15:30:23.57ネタにマジレスというネタだよな
0868名無しさん@お腹いっぱい。
2013/04/23(火) 15:36:14.31こういうおもしろくない返しするのはマジなんだろう。
0869名無しさん@お腹いっぱい。
2013/04/23(火) 16:06:29.370870名無しさん@お腹いっぱい。
2013/04/23(火) 16:30:15.32あとEmacsを始める初心者が使うと良いテンプレートのLipsはある?
0871名無しさん@お腹いっぱい。
2013/04/23(火) 17:01:03.51リップスリップス
0872名無しさん@お腹いっぱい。
2013/04/23(火) 17:16:41.59ありがとう。HP見てこれだよと思った。
0873名無しさん@お腹いっぱい。
2013/04/23(火) 21:47:29.82おまえ、Land of Lispの挿し絵見て出直してこいよ。
0874名無しさん@お腹いっぱい。
2013/04/23(火) 23:44:49.150875名無しさん@お腹いっぱい。
2013/04/24(水) 00:07:07.480876名無しさん@お腹いっぱい。
2013/04/24(水) 01:50:14.430877名無しさん@お腹いっぱい。
2013/04/24(水) 10:48:18.76それはよくないマックスだね。
0878名無しさん@お腹いっぱい。
2013/04/24(水) 12:26:25.38今を生きろ
0879名無しさん@お腹いっぱい。
2013/04/25(木) 18:11:53.690880名無しさん@お腹いっぱい。
2013/04/25(木) 20:14:49.370881名無しさん@お腹いっぱい。
2013/04/25(木) 21:25:30.960882名無しさん@お腹いっぱい。
2013/04/26(金) 09:55:48.660883名無しさん@お腹いっぱい。
2013/04/26(金) 12:11:53.030884名無しさん@お腹いっぱい。
2013/04/26(金) 20:33:47.540885名無しさん@お腹いっぱい。
2013/04/27(土) 02:45:09.75emacs使って開発してるのかemacsの開発してるのか分からなくなってきた
2:8くらいの比率になっちまってる
ほんとに5年で飽きるのかこれ
0886名無しさん@お腹いっぱい。
2013/04/27(土) 08:25:53.57っつーかネタ切れになった
っつーか俺の場合やりたいネタがelispの処理速度では現実的じゃなかった
0887名無しさん@お腹いっぱい。
2013/04/27(土) 09:02:41.13そのネタ晒せよ。
0888名無しさん@お腹いっぱい。
2013/04/27(土) 09:15:20.870889名無しさん@お腹いっぱい。
2013/04/27(土) 09:19:36.88あと議事録とかも書いてて楽しめるようになった。
中身はどうでもいいやw 大切なの歯Emacsで何を書くかではなく、Emacsを使って書くこと。
手段と目的とを混同しなくてはならない。
0890名無しさん@お腹いっぱい。
2013/04/27(土) 14:14:03.190891名無しさん@お腹いっぱい。
2013/04/27(土) 14:54:33.22EDITOR環境変数とか、(これは最近関係ないか)
Google ChromeのEdit with Emacsとか、
EclipseのEmacs pluginが命綱。
Eclipseの補完機能死んで意味ねえって周りは言ってるけど。
0892名無しさん@お腹いっぱい。
2013/04/27(土) 16:46:46.78やっぱりjdeeがいいのかな
malabar-modeなんてのもあるらしいけどググっても導入方法しか出てこなくて使ってる人いるのか疑問
0893名無しさん@お腹いっぱい。
2013/04/27(土) 22:25:37.90じゃあのさん来た!
421:以下、名無しにかわりましてVIPがお送りします[]
2013/04/27(土) 21:53:57.62 ID:qYDE1sEQ0
てか、すっかり野間ちゃんのこと忘れてたわwww
別件で色々あってなwwww
所詮その程度の存在なんだけどなwww野間ちゃんなんてwwww
じゃあ、今からやるかwww罰ゲームなwww
あーあwww野間のせいだwww野間が全部悪いwww
--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
http://hayabusa.2ch.net/test/read.cgi/news4vip/1366990405/
0894名無しさん@お腹いっぱい。
2013/04/28(日) 02:29:24.810895名無しさん@お腹いっぱい。
2013/04/29(月) 02:40:27.73複数のバッファをオープンしているとして、
バッファがウィンドウに表示された時と非表示になったときに実行されるようなhookはありませんか?
フレームに表示中だけそのバッファ付のプロセスを起動して、
非表示のときはプロセスをsleepかkillしたいのです。
0896名無しさん@お腹いっぱい。
2013/04/29(月) 02:41:35.37ただ、 defadviceとかで既存関数をいじる方向はナシで・・・。
0897名無しさん@お腹いっぱい。
2013/04/29(月) 07:04:31.39プロセスって何かプログラムを起動させるってこと?
そんなことできるの?
0898名無しさん@お腹いっぱい。
2013/04/29(月) 07:16:19.78つwindow-configuration-change-hook
0899名無しさん@お腹いっぱい。
2013/04/29(月) 13:25:20.77保存されないんですが、スタックの内容も保存する方法ってあります?
0900名無しさん@お腹いっぱい。
2013/04/29(月) 16:15:48.330901名無しさん@お腹いっぱい。
2013/04/29(月) 17:02:36.19start-processとか普通にあるやん
0902名無しさん@お腹いっぱい。
2013/04/29(月) 20:43:07.31emacsとプロセスとのデータのやりとりは?
特にプロセスからemacsにデータとかわたせるの?しかも非同期にとか
0903名無しさん@お腹いっぱい。
2013/04/29(月) 20:46:53.70http://www.gnu.org/software/emacs/manual/html_node/elisp/Processes.html
0904名無しさん@お腹いっぱい。
2013/04/29(月) 20:48:41.630905名無しさん@お腹いっぱい。
2013/04/29(月) 21:03:39.51同作者のemacs-epcとか使ってemacs外部と直接関数呼び出し、戻り値の形式でやり取りできたら面白そうと思ったけど
プロトコルがわからん
単に長さ付きのS式でやり取りしてるなっていうのはまぁわかるけど
0906名無しさん@お腹いっぱい。
2013/04/29(月) 21:15:02.680907名無しさん@お腹いっぱい。
2013/04/29(月) 21:32:08.60> >>901
> emacsとプロセスとのデータのやりとりは?
> 特にプロセスからemacsにデータとかわたせるの?しかも非同期にとか
立ち上げたプロセスと標準入出力でやり取りする。
send-process〜とかあるよ。
あとはset-process-filterとかsentinelとか使えばやりとりできます。
0908名無しさん@お腹いっぱい。
2013/04/29(月) 21:38:37.14非同期プロセス関連は長年メンテされてるelispでもバグだらけで
とても素人が使えるものじゃないって代物だわ
0909名無しさん@お腹いっぱい。
2013/04/29(月) 21:44:23.71> 非同期プロセス関連は長年メンテされてるelispでもバグだらけで
例えばどのelispだろう?そんなに酷くない気がするけど。
0910名無しさん@お腹いっぱい。
2013/04/29(月) 21:55:31.13ためしにこのエラーメッセージで検索したらひっかかるわひっかかるわ
ノンブロッキングIOなんて昔からバグの温床だしそんなもんといえばそんなもんか
0911名無しさん@お腹いっぱい。
2013/04/29(月) 22:05:59.36Emacsが対話環境も提供する以上、ある程度は仕方ない気がする。
0912名無しさん@お腹いっぱい。
2013/04/29(月) 22:52:47.50> それが面倒だからわざわざdbus.elとか使うんだよなぁ…
ん、dbus.elってなに?全然しんらないんだけど・・。
0913名無しさん@お腹いっぱい。
2013/04/30(火) 01:40:40.28あざーっす。
試してみます。
0914名無しさん@お腹いっぱい。
2013/05/01(水) 21:24:07.09以下のようなリストがあるとします。
(hoge '(("a" a) ("b" b) ("b" b) ("b" b) ("c" c) ("b" b) ("b" b) ("b" b)))
このなかでシンボルcを持つエレメントをみつけて削除したいのですが、すごくめんどくさくて困ってます。
hogeの中身が連想リストの場合は
(setq hoge (delete (rassq 'c hoge) hoge)
ですむのですが、
hogeが連想リストじゃないので、rassqが使えません。
なので do をつかって
(let* ((hoge '(("a" a)
("b" b)
("b" b)
("b" b)
("c" c)
("b" b)
("b" b)
("b" b)))
find)
(do ((cnt 0 (1+ cnt)) ) ((or find (null (nth cnt hoge))) )
(when (setq find (eq 'c (car (cdr (nth cnt hoge)))))
(setq hoge (delete (nth cnt hoge) hoge))))
hoge)
といったコードになってしまいます。
もっとシンプルにできる方法はないでしょうか?
0915名無しさん@お腹いっぱい。
2013/05/01(水) 21:47:13.65("c" c) って要は ("c" . (c)) のことなんだから
eq?じゃなくてequal?を使うrassocの方を使って
(setq hoge (delete (rassoc '(c) hoge) hoge)
でいいんじゃないの?
0916名無しさん@お腹いっぱい。
2013/05/01(水) 22:15:20.92あ、できました。
ありがとう。
というか、
>("c" c) って要は ("c" . (c)) のことなんだから
ここらへんの理解が適当でした。
0917名無しさん@お腹いっぱい。
2013/05/01(水) 23:20:24.970918名無しさん@お腹いっぱい。
2013/05/02(木) 00:07:02.47別にいいけど
0919名無しさん@お腹いっぱい。
2013/05/02(木) 08:35:44.29お前わかってねーな
0920名無しさん@お腹いっぱい。
2013/05/02(木) 13:47:07.210921名無しさん@お腹いっぱい。
2013/05/02(木) 20:10:49.30できました。ありがとう俺!
0922名無しさん@お腹いっぱい。
2013/05/02(木) 20:34:13.97ある既存関数の挙動を置き換えたいんですが方法ありますか?
defadviceとかだと、他のモードやバッファでの動作もかわっちゃいますよね。
0923名無しさん@お腹いっぱい。
2013/05/02(木) 20:44:49.31(defadvice hoge (around hoge-advice activate )
(if (eq major-mode 'huga-mode)
(なんか処理)
ad-do-it))
0924名無しさん@お腹いっぱい。
2013/05/02(木) 20:45:41.840925924
2013/05/02(木) 20:46:42.840927名無しさん@お腹いっぱい。
2013/05/02(木) 21:24:18.52built-inパッケージでもCEDETとかぐらいぽいし、
デメリットとかあるのかな?
0928名無しさん@お腹いっぱい。
2013/05/02(木) 22:55:31.310929名無しさん@お腹いっぱい。
2013/05/03(金) 04:01:57.42after-change-major-mode-hook とかでアドバイス自体を有効/無効にする
ってのはどうでしょ
ad-enable-regexp と ad-disable-regexp でまとめて切り替えられるし
0930名無しさん@お腹いっぱい。
2013/05/03(金) 08:02:43.18(my-minor-mode)
が呼ばれたときに、内部で条件判定を行ってモードをonにしたくないときってどうすればいいんでしょうか?
define-minor-modeのbody内部の記述だけでは無理?
0931名無しさん@お腹いっぱい。
2013/05/03(金) 20:34:15.36ファイルがある一定数以上になると
Creating pipe: too many open files
といわれてしまいどう対処すべきかわかりません。
パイプ数を増やそうとおもってulimit -pしてみたのですが変更できないみたいです。
デフォではパイプが8ぽいので、ファイルが8までは大丈夫でそれを超えると上記のメッセージがでます。
パイプ数を変更できない場合は、どのように対処したらよいでしょうか?
0932名無しさん@お腹いっぱい。
2013/05/03(金) 21:32:23.07define-globalized-minor-mode あたり使うといいかも。
auto-complete-mode-maybe が参考になるはず。
あるいは (my-minor-mode -1) して関数内で強制的に off にするとかかな?
>>931
concurrent.el あたりを使えばできそうな気はする。
dolist の中で待ちが発生していいなら start-process じゃなくて call-process を使うべき。
0933名無しさん@お腹いっぱい。
2013/05/03(金) 22:58:18.89ありがとうございます。
>define-globalized-minor-mode
調べてみます。
>concurrent.el
こんな便利なのがあるんですね。
deferredとかも。
いろいろ使えそうなので見てみます。
>dolist の中で待ちが発生していいなら start-process じゃなくて call-process を使うべき。
待たせたくないので↑の方法でいってみます。
0934名無しさん@お腹いっぱい。
2013/05/06(月) 06:47:39.55たとえば
(setq hoge 10)
(make-variable-buffer-local 'hoge)
(setq hoge 0)
(print hoge)
で 0 になり
(kill-local-variable 'hoge)
(print hoge)
10 になります。
しかしここで
(setq hoge 5)
を行うと、hogeはlocal-varになってしまうようです。
上のコードをdescrible-variableで確認すると
global > global + local > global > global + local
になっているようで、kill はあくまで現在の参照先をglobalにするだけで、
localの存在そのものを消しているわけではないような気がします。
これを完全に削除するにはどうしたらいいでしょうか?
0935934
2013/05/06(月) 06:52:54.57外部パッケージでsetqされている変数なのでその方法は使えない状態です。
0936名無しさん@お腹いっぱい。
2013/05/06(月) 11:27:00.330937名無しさん@お腹いっぱい。
2013/05/06(月) 13:17:32.14外部パッケージでmake-variable-buffer-localされているので無理な状態です。
初期化関数内でmake-variable-buffer-localされているなら
defadviceでおきかえてmake-local-variableを使うようにできますが
関数外なのでそれも無理です。
レス数が900を超えています。1000を超えると表示できなくなるよ。