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

Emacs Part 40

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2012/02/11(土) 20:07:29.69
前スレ

Emacs Part 39
http://toro.2ch.net/test/read.cgi/unix/1322556644/
0712名無しさん@お腹いっぱい。2012/07/22(日) 07:59:59.39
ratpoison使ってたけどGIMPであきらめた
0713名無しさん@お腹いっぱい。2012/07/22(日) 08:27:08.54
やっぱり皆不満なのね。「それくらい脳をhackできなきゃemacsianとして云々」とか言うのかと思った。

>>711
M-x re-builder
改行含めて全ての文字にマッチする表現がぱっと書けないのもどうかと思うよ。
いまだになぜかうまく動かないやつあるし。
0714名無しさん@お腹いっぱい。2012/07/22(日) 08:48:27.26
re-builderはなぁ・・
今だったらミニバッファに正規表現入力中に勝手に re-builder が働くような感じだといいんだろうね。
0715名無しさん@お腹いっぱい。2012/07/22(日) 09:48:02.18
re-builderで作った正規表現をそのままoccurに入れて動かねーと
頭を抱えたのはいい思い出
0716名無しさん@お腹いっぱい。2012/07/22(日) 10:21:33.06
>>715
query-replace-regex がうまく動かなくて困ってるんだけどくわしく。
0717名無しさん@お腹いっぱい。2012/07/22(日) 15:28:47.25
正規表現で何かをパーズしてる人達がオールドタイプってことは分かる。
0718名無しさん@お腹いっぱい。2012/07/22(日) 16:21:10.79
ニュータイプはどうやってパーすするの?
0719名無しさん@お腹いっぱい。2012/07/22(日) 16:31:00.79
基本に立ち返って字句解析と構文解析するんじゃない?
0720名無しさん@お腹いっぱい。2012/07/22(日) 16:45:02.23
Javaなんかは1.4になって初めて正規表現をサポートした。
むしろこれからの技術でしょ。>正規表現
0721名無しさん@お腹いっぱい。2012/07/22(日) 16:56:37.04
これからもなにも・・・・
計算機科学黎明期のそれこそ字句解析構文解析とほぼ同時に生まれた概念だぞ
0722名無しさん@お腹いっぱい。2012/07/22(日) 18:38:52.11
そういえばelispに関数型parserの話なかったっけ。
くそ長い正規表現撲滅されるかも。
0723名無しさん@お腹いっぱい。2012/07/22(日) 18:49:57.81
>>721
それが後々まで使われ、新しい環境でも望まれている。
まだまだこれから、と言いたいわけだが。
つーかUNIX板で正規表現嫌いと聞くとは思わんかったよ。
0724名無しさん@お腹いっぱい。2012/07/22(日) 18:56:09.53
>>723
> それが後々まで使われ、新しい環境でも望まれている。
> まだまだこれから、と言いたいわけだが。

正規表現使い過ぎる人ってCOBOLerと同じ臭いがするんだよね。
0725名無しさん@お腹いっぱい。2012/07/22(日) 19:05:15.74
しったか君はとりあえずマ板に帰ろうか
0726名無しさん@お腹いっぱい。2012/07/22(日) 19:38:39.33
>>723
あんなメンテナンス性の悪いもの嫌って当然。
0727名無しさん@お腹いっぱい。2012/07/22(日) 19:42:15.08
まーまー。
Emacsの正規表現でのエスケープだらけへの愚痴大会を
正規表現そのものの悪口大会と勘違いした夏厨くんが
勇んで参加してしまっただけ。
よくある話だ。
0728名無しさん@お腹いっぱい。2012/07/22(日) 19:43:18.19
正規表現は利便性の高いものであることに疑問はないけど、
emacsで正規表現書く時はすごくストレスが溜まることはあるな。
バックスラッシュ4つ書くのが普通となるとやっぱり嫌だ。
0729名無しさん@お腹いっぱい。2012/07/22(日) 20:51:08.28
>>728
暫く書かないでいるとどれに何個エスケープしなきゃいけないか忘れるよね
0730名無しさん@お腹いっぱい。2012/07/22(日) 20:55:04.60
バックスラッシュが大量に入っちゃうのは何らかのパーズ処理だと思うが。
そういう処理に正規表現使わないのはそろそろ常識になってほしい。
0731名無しさん@お腹いっぱい。2012/07/22(日) 20:57:52.24
なにいってんだこいつ () 使うだけで \\(\\) なんだぞ?
0732名無しさん@お腹いっぱい。2012/07/22(日) 21:00:29.68
普通のバックスラッシュにマッチさせるだけで"\\\\"なんだよな。
0733名無しさん@お腹いっぱい。2012/07/22(日) 21:07:34.50
なんとかなんないもんなのかねぇ。
rx とか使ってるの見たことないわ。
0734名無しさん@お腹いっぱい。2012/07/22(日) 21:07:39.36
>>731
それだけでそこまで読みづらいのかな?いつごろからかハイライトされるよう
になってあんまり不満がなくなっちゃった
正規表現のバックスラッシュが一番数えづらいの正規表現の文字列リテラルにダ
ブクオートとか入ってきたときのような気がする。次に >>732
そういうのにマッチさせる正規表現は書かなければいいんじゃないかな。
0735名無しさん@お腹いっぱい。2012/07/22(日) 21:08:10.02
ついついrx使ってしまい糞elisp書くなゴルァって怒られてた
0736名無しさん@お腹いっぱい。2012/07/22(日) 21:12:00.49
>>734
君がそう思うならそれはそれで幸せなことだ。
別にみんながみんな使い辛いって思って欲しいわけじゃないし。
少なくとも俺と俺の周りの何人かは使ってて不便に思ってるってだけの話。
0737名無しさん@お腹いっぱい。2012/07/22(日) 21:23:11.46
>>736
くれぐれも巨大な正規表現は書かないように。馬鹿に見えるからね。
0738名無しさん@お腹いっぱい。2012/07/22(日) 21:26:23.78
Emacsはなんで正規表現リテラル導入しなかったんだろね。
長いの書く時まじでしんどいわ。
だいたい列挙するだけで \\(\\(\\(public\\|protected\\|private\\|const\\|...とか
あほやろwwww
0739名無しさん@お腹いっぱい。2012/07/22(日) 21:28:33.82
>>738
四の五の言わず、 regexp-opt 使いたまえ。
0740名無しさん@お腹いっぱい。2012/07/22(日) 21:29:11.76
どうせまたstallmanの趣味でリテラルの導入考えなかったんだろ。
抜けたことでダイナミックリンクも解禁されたし正規表現リテラルもそのうち実装されるんじゃねえの。
0741名無しさん@お腹いっぱい。2012/07/22(日) 21:37:04.01
replace-regexp の置換語のところに S 式書けるの今はじめて知ったわ
replace-regexp: \(\w+\) => \,(capitalize \1)
0742名無しさん@お腹いっぱい。2012/07/22(日) 21:47:00.18
rx使ってるライブラリって何かあるかなとおもって調べたら
python-modeが使ってたわ
標準配布なんだしもっと使えばいいのに
07437432012/07/23(月) 02:38:20.83
書かなくていいなら幸せだ。書かなきゃいけないんだよ。
0744名無しさん@お腹いっぱい。2012/07/23(月) 08:35:29.27
なんでわざわざ名前欄にレス番入れてんだ・・・?
こっから連レスする予定?
0745名無しさん@お腹いっぱい。2012/07/23(月) 09:05:09.00
すまん、なぜかわからん。自分で書いた覚えがない。
0746名無しさん@お腹いっぱい。2012/07/25(水) 02:30:08.61
\\の嵐に悩んでいる人は regexp-lock 使ってみたら?
個人的にはグルーピングに関する悩みは大体は解決した。
0747名無しさん@お腹いっぱい。2012/07/25(水) 08:29:30.29
軽くぐぐっても出てこないんだけどどこにあるの?
regexp-optの間違いじゃないよね?
0748名無しさん@お腹いっぱい。2012/07/25(水) 20:34:26.96
http://lists.gnu.org/archive/html/gnu-emacs-sources/2005-11/msg00004.html
これかな?
0749名無しさん@お腹いっぱい。2012/07/25(水) 20:43:28.61
>>748
これ面白いね。正規表現っぽい文字列コンテキストのとこに入ると
\\(\ab\(\\(cd\\)\\)\\) がハイライト付きで \1(ab\2(\3(cd\3)\2)\1) みたいに表示される
正規表現のグルーピングになってない()はハイライトされないから確かに一目瞭然だわ。
0750名無しさん@お腹いっぱい。2012/07/27(金) 12:49:38.46
質問です。
Emacsを使うとマウスまで手を伸ばさなくてもほとんどの作業ができるようですが、
本当にそうなのでしょうか?
例えばカーソルを合わせたりクリックするような作業も全てキーボードで行う事は可能なのですか?
0751名無しさん@お腹いっぱい。2012/07/27(金) 13:08:24.02
>>750
どこにカーソルを合わせること想定していますか?
バッファの中ならカーソル移動のキーバインドを調べてください。
クリックするとは、どのような機能を意味していますか?
カーソルの位置指定という意味に過ぎないのなら、
カーソルがそこに移動すれば、クリックは不要でしょう。
0752名無しさん@お腹いっぱい。2012/07/27(金) 13:35:07.17
ずばりそうでしょう。
0753名無しさん@お腹いっぱい。2012/07/27(金) 13:59:54.91
それにカーソルの位置合わせでマウスの方がはやいじゃんwwwとか思ったら
別に躊躇せずマウス使えばいいと思う
0754名無しさん@お腹いっぱい。2012/07/27(金) 21:19:20.49
ネタ振り

色設定とかフォント設定を環境毎に分けて書きたくないから
フォントとか色があればそれを使うって書き方にした。

;; フォント
(flet ((font-candidate (&rest font-list) (find-if (lambda (f) (find-font (font-spec :name f))) font-list)))
(set-fontset-font "fontset-custom" 'japanese-jisx0208 (font-candidate "MeiryoKe_Console" "VLゴシック" "MSゴシック"))
...
)

;; 色
(flet ((color-candidate (&rest colors) (find-if #'color-defined-p colors)))
(set-face-attribute 'region nil :foregreound (color-candidate "SystemHilightText" "White")
:background (color-candidate "SystemHilight" "Royal Blue"))
...
)
0755名無しさん@お腹いっぱい。2012/07/27(金) 21:35:25.42
フォントや色は.emacsじゃなくて.Xresourcesで設定するようにした。
そうすると.emacs引き回すときも環境のことあまり気にしなくてよいので
かなり気楽になったよ。
0756名無しさん@お腹いっぱい。2012/07/27(金) 21:41:15.92
>>755
どっちかっていうとNTEmacsとかのWindows環境との共存重視っす。
0757名無しさん@お腹いっぱい。2012/07/29(日) 09:49:45.82
Googleで調べたけどいまいちよくわからないので質問です。
最初にanything.elというパッケージをTamasPatrovicsという人が開発して、
その開発をいまは日本のるびきちさんが受け継いでいる。そしてそこから
フォークしたhelmというパッケージもあるって理解でOKですか?
0758名無しさん@お腹いっぱい。2012/07/29(日) 10:07:29.52
大体あってる。
フォークしたんでなくメンテナンス引き継いだんだったかな?
今は helm の方が開発活発だね
0759名無しさん@お腹いっぱい。2012/07/29(日) 10:12:46.34
レスありがとうございます。
0760名無しさん@お腹いっぱい。2012/07/29(日) 11:47:32.17
るびなんとかさんが作者みたいなふるまいをしてるから
作者なのかと思っていたわ
0761名無しさん@お腹いっぱい。2012/07/29(日) 12:36:58.25
yasnippet がいつの間にか動的ロードだかなんかするようになったせいなのか
起動時に有効化しても M-x emacs-init-time が1秒を切るようになって嬉しい
0762名無しさん@お腹いっぱい。2012/07/29(日) 13:10:29.41
俺様の新PCだとM-x emacs-init-time => 0.2です。
”一瞬”でエディタが立ち上がるという感覚って大事ですよね。
0763名無しさん@お腹いっぱい。2012/07/29(日) 13:25:56.44
うちも emacs -q なら M-x emacs-init-time > 0.1 だわ
0764名無しさん@お腹いっぱい。2012/07/29(日) 19:34:06.08
emacs -q でないなら、みんなどれくらいなの?
俺は無駄にいろいろ書いてるので 3.6seconds だった。。。
0765名無しさん@お腹いっぱい。2012/07/29(日) 19:46:46.33
4.4 seconds
0766名無しさん@お腹いっぱい。2012/07/29(日) 19:48:30.79
うちは 0.9 seconds だわ
eval-after-load とかに結構追い出したからなぁ
0767名無しさん@お腹いっぱい。2012/07/29(日) 21:14:22.25
>>766
そうか。。。俺も整理が必要だな。
0768名無しさん@お腹いっぱい。2012/07/29(日) 21:18:32.42
どう考えてももうこれ使わんだろ的な require なくすだけでも軽くなってくけど
そんなに頻繁に立ちあげたり落したりしないなら数秒の差とか気にしなくてもよいだろうけどね。

dump すれば凄まじく早くなるらしいが・・・
http://dev.ariel-networks.com/Members/matsuyama/dump-emacs/
0769名無しさん@お腹いっぱい。2012/07/29(日) 21:45:00.95
このコマンド初めて知った
3.4 sec
0770名無しさん@お腹いっぱい。2012/07/29(日) 22:01:40.21
0.4~0.6だった
みんなどれだけ複雑な.emacsなんだ
0771名無しさん@お腹いっぱい。2012/07/29(日) 22:20:54.81
どこが重いかまでプロファイリングできれば面白いね
0772名無しさん@お腹いっぱい。2012/07/29(日) 22:23:53.37
25.9 secondsだった。
0773名無しさん@お腹いっぱい。2012/07/29(日) 22:27:27.75
それはさすがにマシンの方に問題ありだろw
0774名無しさん@お腹いっぱい。2012/07/29(日) 22:32:47.58
emacs 23 の時でちょっと古い yasnippet 使ってた時は 15 seconds だったけど
同じPCで emacs 24 と最新の yasnippet にしたら 0.9 seconds まで下がった
07757722012/07/29(日) 22:36:02.32
Intel(R) Atom(TM) CPU N455 @ 1.66GHz
memory 1G
のネットブックなんだ。

あとemacs-w3m初回起動時に、3秒ぐらいかかる。
0776名無しさん@お腹いっぱい。2012/07/30(月) 12:21:16.20
executable-find とかを大量に書いてる場合で環境がそんなに変わらないなら
結果をキャッシュするとかすれば速くなりそうだ
0777名無しさん@お腹いっぱい。2012/07/30(月) 13:47:03.70
SSD なノートだと 0.2 sec やな。
0778名無しさん@お腹いっぱい。2012/07/30(月) 13:49:24.53
ディスクアクセスがネックになってるってのはあるだろなあ
0779名無しさん@お腹いっぱい。2012/07/30(月) 14:11:25.30
いったん、ディスクにキャッシュが効けば、早くなりますな。
0780名無しさん@お腹いっぱい。2012/07/31(火) 05:38:10.28
i7 3960 で5〜7sec
i7 920 で5sec
あんまりかわらんな・・・。
0781名無しさん@お腹いっぱい。2012/07/31(火) 07:28:29.04
ディスクアクセスとメモリアクセスがほとんどだろ。
0782名無しさん@お腹いっぱい。2012/07/31(火) 07:57:58.62
GNU Emacs24.1をWindowsで使い始めたんだけど、
日本語入力時のキーバインディングが独特でとまどっています。
あと変換候補もなんかWindowsの標準IMEよりすこしバカというか…
これはこんなもんだとあきらめて適応したほうが幸せですか?
0783名無しさん@お腹いっぱい。2012/07/31(火) 07:58:42.46
あ、ここUnix板だったか、場違いだったら失礼しました。
0784名無しさん@お腹いっぱい。2012/07/31(火) 08:04:27.65
MS-IMEかATOKを使えばいいじゃないの。
0785名無しさん@お腹いっぱい。2012/07/31(火) 08:33:04.60
オリジナルの NTEmacs だと IME パッチとかが適用されていないから
gnupack とかのパッチ適用済みのバイナリを使ったほうがいいかもね。
そっちなら Windows 本来の IME が使える。

標準で入ってる leim はどんな言語も入力出来る優れたシステムではあるんだけど
日本語入力部分の元となった skk が特殊な上辞書とかほぼ入ってない状態に近いから
最新の skk を入れるか他の漢字変換システム使ったほうが賢明だとは思う。
これは Win も Unix も同じ。
0786名無しさん@お腹いっぱい。2012/07/31(火) 08:57:11.24
レスありがとうございます。調べてみます。
0787名無しさん@お腹いっぱい。2012/07/31(火) 12:05:27.51
NTEmacs スレは良スレ
ここはるびきっちゃんアンチが常駐、多分結構なおっさん
0788名無しさん@お腹いっぱい。2012/07/31(火) 12:08:31.12
そういうこと言わんでよろしい。
0789名無しさん@お腹いっぱい。2012/07/31(火) 15:19:22.57
るびきちも結構なおっさんなんじゃないの?
0790名無しさん@お腹いっぱい。2012/07/31(火) 15:29:26.88
るびきちの話はこっちで。

るびきちスレ
http://toro.2ch.net/test/read.cgi/unix/1342582441/
0791名無しさん@お腹いっぱい。2012/07/31(火) 20:38:26.75
うむ。普通にEmacsの話してるぶんには荒れないもんな。今は。
0792名無しさん@お腹いっぱい。2012/07/31(火) 23:25:08.45
cygwin版emacsをmintty上で動かしMS-IME使ってる。
なかなか24.1になってくれなかったけど。
0793名無しさん@お腹いっぱい。2012/07/31(火) 23:42:31.54
リストを返り値にする関数があって、そのリストのそれぞれの値を特定の変数に代入したい場合って簡単にやる方法あります?
(hoge) ; => '(1 2 3 4 5)

;; 最初の3つを a b c にそれぞれ代入
(setq result (hoge))
(setq a (car result))
(setq b (cadr result))
(setq c (caddr result))

高々3個だからループにするまでもないし、何か他にうまい書き方があればご教授願いたいです。
0794名無しさん@お腹いっぱい。2012/07/31(火) 23:53:49.28
(multiple-value-setq (a b c) (hoge))
0795名無しさん@お腹いっぱい。2012/07/31(火) 23:55:25.66
おおお、そのものずばりのものがあるんですね。cl 便利だなあ。
ありがとうございました。
0796名無しさん@お腹いっぱい。2012/08/01(水) 09:19:29.60
reddit にあがってたけど、Emacs利用者調査だってさ。
結果がまだでてないけどおっさん率高そうな予感。

http://www.reddit.com/r/emacs/comments/xg9hh/emacs_demographics_survey/
https://docs.google.com/spreadsheet/viewform?formkey=dGpiRWZSdHMyVDhwczQxMnh2R0VNbEE6MQ
0797名無しさん@お腹いっぱい。2012/08/01(水) 20:07:47.74
elispのネイティブコンパイルとかいう無茶なプロジェクトが。
http://www.mundell.ukfsn.org/native/
0798名無しさん@お腹いっぱい。2012/08/01(水) 21:30:26.01
死ぬほど誤差レベルだけど
(setq a 10 b 20...) より (setq a 10) (setq b 20)... の方が早いのな

(defun a ()
(setq a 10
b 11
c 12
d 13
e 14
f 15))

(defun b ()
(setq a 10)
(setq b 11)
(setq c 12)
(setq d 13)
(setq e 14)
(setq f 15))

(elp-instrument-function 'a)
(elp-instrument-function 'b)

(dotimes (v 100000) (a))
(dotimes (v 100000) (b))

(elp-results)
0799名無しさん@お腹いっぱい。2012/08/04(土) 04:14:38.02
>>797
elispをマクロでschemeにすればgambitとかでnativeにできると思うよ
cl2scm
とかいうマクロ集があったはず
0800名無しさん@お腹いっぱい。2012/08/04(土) 04:22:49.86
makeを
C-c c
に割り当てたら
間違ってC-x C-cになってemacs閉じてしまう事故が頻発するようになった
なにかもっといいKey bindないものか

閉じる前に確認の窓だせないものか
0801名無しさん@お腹いっぱい。2012/08/04(土) 05:03:49.80
>>800
kill-emacs-query-functions に適当な関数追加するのがいいと思うよ。
0802名無しさん@お腹いっぱい。2012/08/04(土) 08:55:11.88
C-x C-c を解除しちゃうのも手ではある。
一時期 C-c C-x C-c にしてた。
0803名無しさん@お腹いっぱい。2012/08/04(土) 09:47:43.52
C-l時にredrow-displayを同時に処理したいんですが、どう設定するのでしょうか?
0804名無しさん@お腹いっぱい。2012/08/04(土) 10:04:42.98
recenter-redisplay を t にすればいいんじゃないかな
0805名無しさん@お腹いっぱい。2012/08/04(土) 10:07:41.23
diredでディレクトリを移動した時に直前のソート状態を適用することは出来ませんか?
移動前に日付順で表示していたら、移動後に最初から日付順で表示するといった具合です。
0806名無しさん@お腹いっぱい。2012/08/04(土) 10:19:30.97
自分ところでは移動前にバッファローカルな dired-actual-switches を覚えといて
バッファ移動後に dired-sort-other でソートさせてる。
移動時に前のバッファを削除する&popwin対応も入ってるから適当に削ってくれ。

(dolist (f '(dired-find-file dired-up-directory))
(eval `(defadvice ,f (around ,(intern
(format "ad-%s-and-kill" f))
activate compile)
"移動前のディレクトリバッファ削除およびソート順序保持."
(let ((prev-buffer (current-buffer))
(switch dired-actual-switches))
ad-do-it
(if (and (not (eq prev-buffer (current-buffer)))
(eq major-mode 'dired-mode))
(progn
;; popwin 管理下の場合はバッファの差し替えを通知する
(if (and (boundp 'popwin:popup-buffer)
(eq popwin:popup-buffer prev-buffer))
(setq popwin:popup-buffer (current-buffer)))
(kill-buffer prev-buffer)
(dired-sort-other (setq dired-actual-switches switch))))))
))
0807名無しさん@お腹いっぱい。2012/08/04(土) 10:47:14.77
>>806
頂きました。
ありがとうございます。
08088032012/08/04(土) 21:11:56.01
>>804
なるほど!最高です!
ありがとうございました。
0809名無しさん@お腹いっぱい。2012/08/06(月) 13:41:16.88
APELの行方を探しています

リンク切れ↓
http://kanji.zinbun.kyoto-u.ac.jp/~tomo/lemi/dist/apel/apel-10.8.tar.gz

これがないとwlも入れられません
0810名無しさん@お腹いっぱい。2012/08/06(月) 13:45:47.91
http://core.ring.gr.jp/pub/elisp/apel/apel-10.8.tar.gz
ftp://ftp.ring.gr.jp/pub/elisp/apel/apel-10.8.tar.gz
0811名無しさん@お腹いっぱい。2012/08/06(月) 14:12:38.14
wl をいまだ使っているやつがいるとわ
■ このスレッドは過去ログ倉庫に格納されています