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

Emacs part 18

■ このスレッドは過去ログ倉庫に格納されています
0001フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/03/02(木) 23:19:32
Emacs環境について語れ

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

emacs - SCM: CVS Repositories [Savannah]
http://savannah.gnu.org/cvs/?group=emacs

EmacsWiki
http://www.emacswiki.org/

Emacs 電子書棚
http://www.bookshelf.jp/
0527名無しさん@お腹いっぱい。2006/04/11(火) 23:53:21
>>512
MewはMH-Eの代替品だからああいう形になっているのかと思っていた。
そういえば、最近のMewのInfoからはMH-Eの悪口消えたのね。
0528名無しさん@お腹いっぱい。2006/04/12(水) 00:42:42
>>515
emacs-w3mはw3の二の舞になってるね。

>>526
EmacsLispが増えるとその反面、全体像が見えづらくなってカスタマイズが困難だけど。
いっそのことEmacsLispを1000行前後に抑えてあとは全部外部コマンドまかせにしてくれ。

>>527
なつかしい、俺がLinux駆け出しだったころ悪口書いてあったな。
0529名無しさん@お腹いっぱい。2006/04/12(水) 00:47:19
>>526
Pen4の3GHzだけど遅く感じることがあるんだけど。
0530名無しさん@お腹いっぱい。2006/04/12(水) 00:48:24
そもそもemacsをCに「移植」しようという試みは過去に何度あったのでしょうか?
0531名無しさん@お腹いっぱい。2006/04/12(水) 00:49:50
はぁ?もともとCで書かれてるだろうが。
0532名無しさん@お腹いっぱい。2006/04/12(水) 01:30:08
lisp 部分が遅いのはダイナミックスコープと関係ある?
0533名無しさん@お腹いっぱい。2006/04/12(水) 01:36:57
vimはほとんどCで実装されていて高機能な割に高速なエディターだけど、
ソースはとんでもなく読み辛くて汚い。

Emacsをソースから入れている人は、知らない関数とかをhelpで調べて、
そっからlisp、Cに限らずソースに直接飛んだりしてると思うけど、
vimとかそれが出来ないんだよ?

どんなに単純そうな処理ですら、キーを押した後なにが起きてるのか
わからんのは、どうかと思うよ。

外部コマンドなんかにしたら、なおさらブラックボックス化してくよ。
0534名無しさん@お腹いっぱい。2006/04/12(水) 01:42:38
いろんなプラットホームで使ってると、
外部コマンドに依存するのはいやだなぁ。
0535名無しさん@お腹いっぱい。2006/04/12(水) 01:44:03
なぜ?
0536名無しさん@お腹いっぱい。2006/04/12(水) 01:52:57
EmacsLispは遅いんだから結局外部コマンドに頼るしかないのが現状なんだよ。
rmsは高速化する気まったくないようだから。
インストールが面倒とか言う厨房はかえれ。
0537名無しさん@お腹いっぱい。2006/04/12(水) 01:55:47
まあまあ、議論して結論を出そうとしてもしょうがないのだから。
「主張して実践する」ことで示すしかないのだし。

ここはそれぞれの方法の利点欠点をリストアップして、
インプリメントの一助にするのが建設的。
0538名無しさん@お腹いっぱい。2006/04/12(水) 02:08:50
>>487
も言ってるけど、primitive不足ってのが最大の理由だろう。
0539名無しさん@お腹いっぱい。2006/04/12(水) 02:25:50
しかし、開発陣はそれを認めようとしないんだよね
かといってdynamic linkも本家に取り込んでくれない
だから高速化したければ外部プロセスに追い出すのが現実的
0540名無しさん@お腹いっぱい。2006/04/12(水) 02:30:40
Rubyは実行速度の遅さを拡張ライブラリでカバーしているからこそ成功している。
Emacsもそうしてもらいたいものだね。
0541名無しさん@お腹いっぱい。2006/04/12(水) 07:15:40
確かに e-lisp が遅いと感じる人もいるだろうし、
外部プロセスに渡して幸せになりたいのも判るけど、
自分は現状で満足な訳で。

まぁつまり、ぐだぐだ言うより外部プロセスをかっこよく使って
高速に動くソフトをいっぱい書いて布教した方が建設的じゃね?
0542名無しさん@お腹いっぱい。2006/04/12(水) 08:12:26
>>541
> 高速に動くソフトをいっぱい書いて布教した方が建設的じゃね?

そうしましょう、そうしましょう。
0543名無しさん@お腹いっぱい。2006/04/12(水) 08:46:25
>>515
痛々しい箇所の具体例きぼん
0544名無しさん@お腹いっぱい。2006/04/12(水) 15:51:16
>>543
多すぎて書ききれない。
テキスト処理を黙々とやらせてるところ。
EmacsLispはテキスト処理苦手なんだってば。

3GHzマシンなのにnavi2chでスレを開くとき10秒前後待たされる。
emacswikiのindexを開くのに何十秒も待たされる。
0545名無しさん@お腹いっぱい。2006/04/12(水) 15:53:42
全部挙げろとは誰も言ってないから多すぎても別に困らんでしょ。
多すぎるならためしに2つ3つ挙げてみてよ。
0546名無しさん@お腹いっぱい。2006/04/12(水) 17:30:03
Meadow(emacs21.4)でshell-command-on-regionの文字化けにつき
困っております。
utf-8のファイルの一部にperl(cygwin)のコマンドをかけて
整形したいのですが、perlスクリプト自体は、正常にutf-8の
コードを吐きますので問題ないはずなのに、emacsのバッファには
こんな変な文字が出ちゃいます。

1. 壤壤壤「壤「↓壤壤壤「壤「∂壤壤壤「壤「∀壤壤壤「壤カ∪壤壤壤「壤ウ 壤壤壤「壤」E壤壤壤「壤」B壤壤壤「壤。[壤壤壤「壤」壤壤壤「壤ウ壤壤壤「壤「∇懼ャタ壤壤壤「壤ュs壤壤壤「壤「ュ壤壤壤「壤「⇔壤壤壤「壤。H

文字コード関係の設定を変えてるんですが、どうも臭いと思われる
以下の2番目の奴を変更する関数がないようです。
set-buffer-file-coding-system
だと一番目のしか変わらないのですが、何で変えられるのでしょうか。

Coding system for saving this buffer:
u -- utf-8-dos
Default coding system (for new files):
S -- japanese-shift-jis-dos
0547名無しさん@お腹いっぱい。2006/04/12(水) 19:23:38
set-default-coding-systems
0548名無しさん@お腹いっぱい。2006/04/12(水) 19:25:33
set-process-coding-system
0549名無しさん@お腹いっぱい。2006/04/12(水) 19:41:31
C-x RET c
0550名無しさん@お腹いっぱい。2006/04/12(水) 20:52:55
>>545
馬鹿を追い詰めなさんな。
05515462006/04/12(水) 21:48:55
>>547-549
ありがとうございます。
set-default-coding-systemって、version21にはないようです。
以前はあったのは知ってます。(19だったか20)
set-buffer-process-coding-systemやると、outputのコードを
聞かれてutf-8とやるまではいいのですが、inputのをutf-8で
答えると、no processとかのメッセージが帰ってくる。
無視してやってみるも、やはり>>546みたいに文字化けします。
さんざんググりもしましたが情報がないので、たぶん、
cygwin、Meadowという環境では無理なのかとも思っています。
0552名無しさん@お腹いっぱい。2006/04/12(水) 21:54:42
GNU Emacs 21.4ならあるけど
0553名無しさん@お腹いっぱい。2006/04/12(水) 21:55:15
意見を述べた人を馬鹿呼ばわりとは、しょせん2chか
05545462006/04/12(水) 22:02:24
>>552
Meadow固有ですかね。こんな作りのネットインストール版です。
GNU Emacs 21.4.1 (i386-mingw-nt5.1.2600) of 2005-08-28 on CUBE
0555名無しさん@お腹いっぱい。2006/04/12(水) 22:09:00
lispの下探ってみろよ。
0556名無しさん@お腹いっぱい。2006/04/12(水) 22:56:52
M-x apropos set.+coding-system
してみろ
0557名無しさん@お腹いっぱい。2006/04/13(木) 01:24:07
>>546
俺なら、
shell-command-on-region で、リダイレクトしちゃって、
delete-region
insert-file
で逃げる。
0558名無しさん@お腹いっぱい。2006/04/13(木) 02:11:30
flymakeとか、文法チェックまで外部プロセスに追い出してるね。
Cのようなマクロを含む言語はelispでパースしきれないから、このアプローチも頷ける。

動かすの少々大変だけど、誰か改良してくれないかな。
05595462006/04/13(木) 03:03:36
>>555
私に言ってるんですよね、どうもです。
grepしたら、
/cygdrive/d/Meadow/lisp$ grep set-default-coding-system language/*.el
language/japan-util.el: (set-default-coding-systems 'japanese-shift-jis-dos)
こんなんあったんで、.emacsに、(require 'japan-util)って書いて
再起動してやってみたんですが、だめでした。
05605462006/04/13(木) 03:39:07
>>556
ありがとうございます。
M-xで出てこないようなコマンドは.emacsで設定しなければいけないんですか。
>>557
やってみたんですが、ファイル自体はちゃんとutf-8でできてるんですが、
insertすると日本語はいいんですがlat-1の文字が変な文字になっちゃいます。
それで、after-insert-file-set-buffer-file-coding-systemら辺だろうと
思うのですが、M-xでその関数は呼べない。.emacsに設定すると(まだ
やってみてないんですが)、普段もutf-8ばっかり使わなきゃならなくなるの
も困るんです。
0561名無しさん@お腹いっぱい。2006/04/13(木) 04:18:34
M-xで呼べない関数は内部利用のための関数だ。
その程度の常識すらわからないんだったら、あきらめろ。
今のおまいに多言語を扱うのははやすぎる。
常識から勉強するこったな。
0562名無しさん@お腹いっぱい。2006/04/13(木) 04:31:51
>>516 には基本的に同意するけど、
emacs ユーザは elisp の構造が理解できてて当たり前ってのも
すごい常識だよな。
0563名無しさん@お腹いっぱい。2006/04/13(木) 04:40:49
interactiveな関数しかM-xで呼べないなんてEmacs使いの間では常識でしょ
0564名無しさん@お腹いっぱい。2006/04/13(木) 05:35:01
そもそもEmacsは玄人向けのツール。Emacsユーザにとってemacs-lispの初歩な
ど一般教養レベル。自分から学ぼうとする気のない人が使うべきものではない。
そういう人はワードかメモ帳でも使ってなさいな。
0565名無しさん@お腹いっぱい。2006/04/13(木) 05:46:30
>>558
> Cのようなマクロを含む言語はelispでパースしきれないから、このアプローチも頷ける。

そんなことはないだろ。elispだってプログラミング言語だ。
0566名無しさん@お腹いっぱい。2006/04/13(木) 06:40:11
だが、遅い!遅すぎるー!!
0567名無しさん@お腹いっぱい。2006/04/13(木) 06:49:11
>>566
> だが、遅い!遅すぎるー!!

そうだな。
でもわめいても速くならないぞ。
0568名無しさん@お腹いっぱい。2006/04/13(木) 06:56:19
そこで外部コマンドですよ(以下無限ループ
0569名無しさん@お腹いっぱい。2006/04/13(木) 07:03:14
行動あるのみ!!
0570名無しさん@お腹いっぱい。2006/04/13(木) 08:05:21
>>544
> 3GHzマシンなのにnavi2chでスレを開くとき10秒前後待たされる。

XP,PenM1.7Gで3秒程度だから単に回線が重いとかメモリがないとかの
問題じゃないのか?
05715442006/04/13(木) 08:12:30
メモリは1.5GB。回線速度の問題を避けるためoffline。
これだけのスペックがあるならそもそも1秒以上かかるのがおかしいんだよね。
0572名無しさん@お腹いっぱい。2006/04/13(木) 08:17:42
>>571
痛々しい箇所の具体例きぼん
0573名無しさん@お腹いっぱい。2006/04/13(木) 08:20:30
>>544
設定すらまともにできないあほがw
0574名無しさん@お腹いっぱい。2006/04/13(木) 08:20:57
>>566
個人的な不満点。
auto-revert-modeとか設定しているとファイルを
開けば開くほど重くなる。
(auto-revert-intervalを増やすことで回避)

jit-lock-modeは巨大なファイルには重い。
fast-lockでキャッシュしたほうがはじめに開くのが遅いが
その後は速い。だがauto-revertと相性が悪い。

フォントの色変えぐらいはネイティブにならないかなぁ
05755442006/04/13(木) 08:29:31
>>573
俺のemacs設定ファイルは1万行を超えますが?
>>572
w3m-fontifyなどわざわざ遅い言語で黙々とテキストをパースしているところ
おかげで待たされる待たされる
0576名無しさん@お腹いっぱい。2006/04/13(木) 08:33:10
行数の多さはまともさと関係ないだろ。
0577名無しさん@お腹いっぱい。2006/04/13(木) 08:34:49
>>571
offlineということは一度開いているファイルを開くんだろ。
キャッシュバッファを消して試したが1秒もかからん。
おまいの環境が悪いだけだ。
05785442006/04/13(木) 08:35:07
しょうがないから最新50記事のみ表示するようnavi2chを設定している。短気なんでな。
05795442006/04/13(木) 08:39:15
そりゃあ短いスレなら1秒もかからんだろうが。
0580名無しさん@お腹いっぱい。2006/04/13(木) 08:48:46
>>578
そんな設定しなくても速いよ、普通は。
おまいの環境が悪いと言っているだろう。
もう一度見直せ。elispのせいにすんじゃねぇ
0581名無しさん@お腹いっぱい。2006/04/13(木) 08:49:30
こいつ頭悪すぎて話しにならねぇなw
0582名無しさん@お腹いっぱい。2006/04/13(木) 09:31:57
バイトコンパイルしてないってオチだったりして。
それからelispのパフォーマンスはEmacs自体のコンパイル時の最適化オプションで結構変わる。
きつめに最適化した方がEmacs自体のコンパイルには時間がかかるが、make bootstrap全体ではむしろ速かったりする。
0583名無しさん@お腹いっぱい。2006/04/13(木) 09:55:54
w3m-fontify が遅いって人が定期的に沸くんですが〜
糞コテの人ですか?
0584名無しさん@お腹いっぱい。2006/04/13(木) 09:57:51
>>575
w3m-fontifyをどう改良すればいいと思う?
0585名無しさん@お腹いっぱい。2006/04/13(木) 10:01:17
>>582
ほうほう。体感できるほど影響あるすか?

蛇足だけど bootstrap (= byte compile) の処理時間と elisp の実行速度って
直結しないような気がするんだけどそうでもないのかね。
0586キング2006/04/13(木) 10:54:24

最速の emacs を組み立てた者には褒美をさしあげよう
もちろんウィンドウズ版な
0587名無しさん@お腹いっぱい。2006/04/13(木) 11:59:30
>>585
春やなぁ。バイトコンパイルもやらずに遅い遅いと言っていたのか・・・
0588名無しさん@お腹いっぱい。2006/04/13(木) 12:35:00
せっかく 2 回コンパイルするんだから profile を使った最適化をするよう、
こんな感じにすればかなり (手元では 10% 以上) elisp 周りが速くなる。

Index: Makefile.in
@@ -782,8 +782,8 @@
bootstrap-build: FRC
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-prepare)
- (cd src; $(MAKE) $(MFLAGS) bootstrap)
+ (cd src; $(MAKE) $(MFLAGS) bootstrap CC='$(CC) -fprofile-generate' )
(cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT})
(cd src; $(MAKE) $(MFLAGS) mostlyclean)
- $(MAKE) $(MFLAGS) all
+ $(MAKE) $(MFLAGS) CC='$(CC) -fprofile-use' all
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-after)
0589名無しさん@お腹いっぱい。2006/04/13(木) 12:37:29
>>587
あ、すまん、585 != 544 ね。
影響ってのはコンパイルオプションのほうの話ね。
05905822006/04/13(木) 15:01:00
さっき試したら-O2より-O3の方がmake bootstrap全体で時間がかかってた orz -Oなしよりは早く終わったけど。
CFLAGSで-I...や-D...を指定する際、下手をするとデフォルトの-O2を潰してしまうので注意が必要。

> bootstrap (= byte compile) の処理時間と elisp の実行速度って直結しないような気がするんだけど
バイトコンパイラもelispで書かれているので、基本的なデータ処理のベンチマークにはなる。
もちろん、本当に速くしたいものとバイトコンパイラとで処理の内容が違うということはあるかもしれないが。
0591名無しさん@お腹いっぱい。2006/04/13(木) 17:25:58
話題を変えよう。RMSのMって何かな?
0592名無しさん@お腹いっぱい。2006/04/13(木) 17:31:02
>>591
http://ja.wikipedia.org/wiki/RMS
0593名無しさん@お腹いっぱい。2006/04/13(木) 17:58:37
うお、サンクス。昔から疑問が解けますた。
Richard Matthew Stallmanだったのか。
0594名無しさん@お腹いっぱい。2006/04/13(木) 19:57:18
所詮 EmacsLisp など glue language なのさ
0595名無しさん@お腹いっぱい。2006/04/13(木) 19:58:16
あいたん・・・
0596名無しさん@お腹いっぱい。2006/04/14(金) 00:31:49
日本語変換(input method)のjapaneseを使って
どうやってカタカナに変換したらよいですか?
japanese-katakanaを使うしかないですか?
wnn,skkなどの導入はできないものとします。
05975962006/04/14(金) 00:46:36
自己解決しました。
0598596(本物)2006/04/14(金) 00:50:51
自己解決していません。
0599596(本物)2006/04/14(金) 00:53:53
たった今自己解決しました。
0600596 ◆tsGpSwX8mo 2006/04/14(金) 00:56:51
自己解決していません。
0601596(本当に本物)2006/04/14(金) 00:59:51
>> 599
実は自己解決してるのか? そうなのか?
06025962006/04/14(金) 18:56:32
自己啓発しました。
0603名無しさん@お腹いっぱい。2006/04/14(金) 19:12:35
ワロス
0604名無しさん@お腹いっぱい。2006/04/16(日) 00:03:17
はよ本家にdynamic loading patch入れてくれ、まじたのむ
それさえあれば最大の欠点である動作速度を改善できるんだ
0605名無しさん@お腹いっぱい。2006/04/16(日) 00:41:19
うるせー馬鹿
0606名無しさん@お腹いっぱい。2006/04/16(日) 01:57:52
それよりも、根本的なとこで質問。

EmacsのUndoって変じゃね?
普通のエディタとは違うよね。

普通のエディタはUndoとRedoを好きなだけ行ったり来たりできるけど、
EmacsはUndoしたあと、適当に見回してまたUndoしようとするとUndoには
ならなくて、以前のUndoを取り消すいわゆるRedoになるよね?
Undoしたあと、さらにUndoしたいんだ俺は。

とりあえず、不満点は今んところこれだけだな。
0607名無しさん@お腹いっぱい。2006/04/16(日) 02:26:24
とりあえずundo-stack.elを調べてね。
0608名無しさん@お腹いっぱい。2006/04/16(日) 02:37:00
redo.el
0609名無しさん@お腹いっぱい。2006/04/16(日) 02:56:03
>>607
これって、xemacsのじゃない?なんか、いまいちわからんかった。

>>608
これは目にしたことあったけど、なぜか使ったことなかった。
ちょっと使ってみるよ。どうもありがとう。
0610名無しさん@お腹いっぱい。2006/04/16(日) 05:12:48
xyzzyは最強

xyzzy > emacs > xemacs > vi ってとこか
0611名無しさん@お腹いっぱい。2006/04/16(日) 05:16:55
おはようxyzzy厨。
ひよっこエディタの分際でemacsと比べるなんて片腹痛い。
emacsには歴史の厚みがある。
0612名無しさん@お腹いっぱい。2006/04/16(日) 05:21:03
>>611
おはよう、emacs厨君。

いや、実のところ俺も内心では 「emacs かなー」
と思ってるんだけど、なんか RMS が最近うざくてさー。
彼がいなくなったらかなり emacs は進化が早まると思うよ。
emacs には Rockbox みたいな開発進行を見習ってほしいよね
0613名無しさん@お腹いっぱい。2006/04/16(日) 05:46:57
RMS神を罵る不届き者はかえれ
勝手にforkしてore-emacsでも作ってろ
0614名無しさん@お腹いっぱい。2006/04/16(日) 05:56:29
rms尊師がいなくなったらフリーソフトウェア衰退の悪寒。
尊師はかなりお年を召されている。
尊師ほどのカリスマ性やスキルを持った人はいるのだろうか。
FSFはどうなってしまうのか。
0615名無しさん@お腹いっぱい。2006/04/16(日) 06:37:14
俺はemacs毎日使ってるけど、emacsが改善されるのなら
正直rmsの存在/非存在はどうでもいいよ
0616名無しさん@お腹いっぱい。2006/04/16(日) 06:41:04
尊師を尊敬しない人は勝手にXEmacsでも使ってなさい。
0617名無しさん@お腹いっぱい。2006/04/16(日) 07:55:40
あーまー、common lisp系なのはかなり羨ましい。
だけど、コンソールで使えないのは著しい欠点。

とはいえ使える環境では使ってるよ。便利だよね。
0618名無しさん@お腹いっぱい。2006/04/16(日) 08:06:50
CommonLispEmacs
EmacsCommonLisp
0619名無しさん@お腹いっぱい。2006/04/16(日) 08:11:20
schemeなら羨ましいけど、CommonLispじゃあな。
0620名無しさん@お腹いっぱい。2006/04/16(日) 10:45:09
>>619
俺はエディタの拡張言語なら Scheme より Common Lisp のほうがいいな…
いい加減 packageprefix-foo はウザイ。
0621名無しさん@お腹いっぱい。2006/04/16(日) 11:13:14
R6RSでmodule system入ります。
少し前はChez Scheme風のCore Languageに入ることに。
0622名無しさん@お腹いっぱい。2006/04/16(日) 11:16:05
風の→風のヤツが
0623名無しさん@お腹いっぱい。2006/04/16(日) 12:57:27
>>610
俺もxyzzy使ってるけど慎もうじゃないか。clispもそんなに早くないし。
Winコンポネにべったりだから多言語処理も中途半端。パッケージもすくないから、elispを
わざわざ変換してつかってる。
0624名無しさん@お腹いっぱい。2006/04/16(日) 14:18:12
xyzzyは歴史がない分ライブラリが豊富じゃない。
たとえ性能的にemacsの上をいってるとしても、超えられない壁がある。
0625名無しさん@お腹いっぱい。2006/04/16(日) 16:43:23
>>623
素直にmeadow使えばいいのに、御苦労なこったな
0626名無しさん@お腹いっぱい。2006/04/16(日) 17:18:40
Meadow なんかではなく NTEmacs 使え
■ このスレッドは過去ログ倉庫に格納されています