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

Emacs Part 44

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2013/12/14(土) 17:36:04.45
語り合いましょう。

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

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

前スレ
Emacs Part 43
http://toro.2ch.net/test/read.cgi/unix/1370754332/
0337名無しさん@お腹いっぱい。2014/01/19(日) 15:53:19.01
loop 覚える気皆無
0338名無しさん@お腹いっぱい。2014/01/19(日) 16:06:08.01
loopで書くよりletで束縛してdo形で繰り返したほうがすっきりした書き方になるな
0339名無しさん@お腹いっぱい。2014/01/19(日) 16:19:27.28
>>336
cl-loopとloopって違うの?
0340名無しさん@お腹いっぱい。2014/01/19(日) 16:37:54.02
cl- 三文字分長くなるだけでだるい。眠い。
0341名無しさん@お腹いっぱい。2014/01/19(日) 16:39:57.44
>>339
いっしょ。loop だとバイトコンパイラと RMS に怒られる。
0342名無しさん@お腹いっぱい。2014/01/19(日) 17:07:09.41
>>340-341
なるほど
0343名無しさん@お腹いっぱい。2014/01/20(月) 18:45:14.52
現在開いているファイルが含まれるディレクトリ内の指定した拡張子のファイルに対して文字列の置換をしたいです
置換処理はstring-replace関数を使うらしいことは分かったのですがどう書けばよいのでしょうか
0344名無しさん@お腹いっぱい。2014/01/20(月) 18:53:26.35
string-replaceって何ぞ。

M-x find-grep

find . -type f -name "*.java" -exec grep -nH -e '検索文字列' {} +

でひっかけてwgrepで置換すれば。
0345名無しさん@お腹いっぱい。2014/01/20(月) 18:58:12.95
すみませんreplace-stringのタイポです
>>344の方法でできました
ありがとうございました
0346名無しさん@お腹いっぱい。2014/01/20(月) 19:29:36.48
Diredを使う方法。

;; カレントディレクトリをDiredで開く。
C-x C-f RET

;; 正規表現でファイルをマーク。
% m \.拡張子$ RET

M-x dired-do-query-replace-regexp 又は Q。

後はミニバッファのプロンプトにしたがって検索正規表現と置換文字列を入力して、
y または n で一つずつ置換。または ! でマーク済みファイル全部を一気に置換。
0347名無しさん@お腹いっぱい。2014/01/20(月) 22:16:46.58
俺はwdired使うかも
0348名無しさん@お腹いっぱい。2014/01/20(月) 22:29:06.72
wdired ってファイルの内容じゃなくファイル名用じゃないの?
0349名無しさん@お腹いっぱい。2014/01/20(月) 22:46:35.92
>>344
find-dired で引っ掛けて >>346 でOK
0350名無しさん@お腹いっぱい。2014/01/21(火) 23:09:35.21
なんかすげえ無茶したゲームが出てきたな
http://www.fitzsim.org/blog/?p=132

確かに emacs 上に svg が出力出来るようになった以上、画面作ったりとかはしやすくなったとは思うけどさあ
0351名無しさん@お腹いっぱい。2014/01/21(火) 23:54:38.40
>>350
やってみたw
どうやってスライムやボールを1dot単位で動かしてるのか分からんが
ゲーム自体はもうちょっとなんとかならなかったのかというレベル
しかし画期的なゲームではある
0352名無しさん@お腹いっぱい。2014/01/22(水) 03:25:09.94
>>349
久し振りに elisp で笑ったわwww
0353名無しさん@お腹いっぱい。2014/01/22(水) 07:06:32.11
cl-libを使うのはいいけど、caddrとか入ってないのか。ありえねえ。
(require 'cl) するわ。
0354名無しさん@お腹いっぱい。2014/01/22(水) 10:26:21.89
cadr は subr に入ってるんだし caddr なんかも入れてやれよとは思う
0355名無しさん@お腹いっぱい。2014/01/22(水) 11:15:55.81
そんな文字の羅列なんかよりnthの方がましだと思う。
d数えるの大変じゃね?
0356名無しさん@お腹いっぱい。2014/01/22(水) 11:22:37.72
caadar とかはまあ nth 一つじゃ無理だけど
確かに可読性いいもんじゃないよな、このシリーズは。
subr に入ってるあたりが限度だろう。
0357名無しさん@お腹いっぱい。2014/01/22(水) 13:22:25.24
first second third...tenthを使ったほうが読みやすい
0358名無しさん@お腹いっぱい。2014/01/22(水) 17:06:54.19
書きづれーだろうがこのとんちきが。
0359名無しさん@お腹いっぱい。2014/01/22(水) 22:09:43.41
なんでもかんでもハッシュテーブル一択
0360名無しさん@お腹いっぱい。2014/01/22(水) 22:23:12.52
ハッシュはもっと使われてもいい気がする
0361名無しさん@お腹いっぱい。2014/01/22(水) 22:30:38.82
infoによると要素数が10以下の場合はalistが速いと書いてあるけど、
逆にいうと10以上は全部ハッシュテーブルでいいんだよね
別に10以下でも致命的に遅いわけでもないし
0362名無しさん@お腹いっぱい。2014/01/23(木) 07:38:46.95
nthだと不十分ってのは>>356も言ってるが、naiveにコードを書いてみるときに使う。
複雑になればdestructuring-bindとかの方が読みやすい場合も多いけど、データの構造を決め打ちできない場合は使えないし。
pcaseもあるけど普通にcond使った方が読みやすいこともある。

あとnthやfirst、secondとかは普通の人間的には読みやすいかもしれないけどプログラム読むモードでは読みにくく感じる。
再帰するときに (first x) (second x) (cddr x) が並んでるよりも (car x) (cadr x) (cddr x) の方がわかりやすい。
0363名無しさん@お腹いっぱい。2014/01/23(木) 11:52:58.66
>>362
おお、destructuring-bind とか pcase とか初めて知ったわ
0364名無しさん@お腹いっぱい。2014/01/23(木) 12:42:02.61
destructuring-bind いいなあ
0365名無しさん@お腹いっぱい。2014/01/23(木) 12:57:26.80
>>362
ここは君みたいに優秀な人が来るとこじゃないよ。
幼稚園の喧嘩に式守伊之助が仲裁に入るようなもの。
0366名無しさん@お腹いっぱい。2014/01/23(木) 13:35:52.93
木村庄之助ではないのか
0367名無しさん@お腹いっぱい。2014/01/23(木) 23:27:47.70
プログラミング等を全くの未経験なのですが、
そういった人でも分かるような
全くの初心者でも分かり易いEmacsの
入門書をご教示お願いいたします。
0368名無しさん@お腹いっぱい。2014/01/23(木) 23:29:32.46
プログラミング未経験なら先にやるべき事があります
それを自分で探して習得することが最初の課題です
0369名無しさん@お腹いっぱい。2014/01/23(木) 23:37:21.73
>>368
>プログラミング未経験なら先にやるべき事があります


「自分で探せ」じゃなく、せめて良著を教えてやれよ。
自分で探す能力無いから初心者。
自分で探せる能力がつくのはある程度知識を得てからだ。

私はEmacsを使ったこと無いので、どこまで予備知識が必要か分からないから
良著を教えることできないが。
0370名無しさん@お腹いっぱい。2014/01/23(木) 23:38:24.00
使ったこと無いない奴がなんでこんなとこ見てるんですかね
0371名無しさん@お腹いっぱい。2014/01/23(木) 23:42:55.32
るびきち先生の本一択だろ
0372名無しさん@お腹いっぱい。2014/01/23(木) 23:43:29.90
広瀬先生に教えてもらえばいいよ
0373名無しさん@お腹いっぱい。2014/01/23(木) 23:46:15.82
これからEmacsを学ぶってのは茨の道すぎる
時代が時代だし生半可な覚悟では挫折する
そういう意味では>>368の言うことは正しい

その上で「ボロクソ言われようが俺はEmacsを使いたいんで教えてくれ!」
くらいの根性が必要だと思う
0374名無しさん@お腹いっぱい。2014/01/23(木) 23:49:31.97
非プログラマで Emacs だの VIM だの覚えようってのは正直誰かに騙されてるとしか思えない
0375名無しさん@お腹いっぱい。2014/01/23(木) 23:50:53.85
感化されやすい年頃なんだよ
0376名無しさん@お腹いっぱい。2014/01/23(木) 23:51:56.70
最近はワナビ御用達は vim と相場が決まってるんだが
コミュニティの活発度でいってもあっちの方が初心者にやさしいと思うぞ
0377名無しさん@お腹いっぱい。2014/01/24(金) 00:42:45.27
よく見てみると>>369>>367と同一だな
句読点の使いかたや言葉遣いが同じだし内容も矛盾してない
0378名無しさん@お腹いっぱい。2014/01/24(金) 00:46:07.53
vm 使っていればこんなことも!
https://pbs.twimg.com/media/Beqrnn9CAAAiUAF.jpg
0379名無しさん@お腹いっぱい。2014/01/24(金) 00:48:47.75
マジレスすると「リスト遊び」かね
http://www.mew.org/~kazu/doc/book/list.html

個人的にはもう少しLispの深い世界で遊べる「続・リスト遊び」みたいなのが読みたい
0380名無しさん@お腹いっぱい。2014/01/24(金) 00:57:17.30
On Lisp 読もうぜ
0381名無しさん@お腹いっぱい。2014/01/24(金) 01:04:56.31
on lispってhtmlやpdfが公開されてるけど
本を買う価値あるかな?
0382名無しさん@お腹いっぱい。2014/01/24(金) 08:06:00.77
よく見てみると>>377>>368と同一だな
句読点の使いかたや言葉遣いが同じだし内容も矛盾してない
0383名無しさん@お腹いっぱい。2014/01/24(金) 10:10:07.31
初めてemacs使うなら本を読むより
まず最初に
man man
man info
man emacs
でemacs起動してチュートリアル
後は何とでもなるだろww
0384名無しさん@お腹いっぱい。2014/01/24(金) 10:24:03.70
「リスト遊び」はelisp の入門には良いが、emacs の入門には「Emacs 実践入門」
0385名無しさん@お腹いっぱい。2014/01/24(金) 13:06:13.52
emacsの入門とか馬鹿げてる
そんなことに時間使うくらいなら秀丸使ってたほうがいい
0386名無しさん@お腹いっぱい。2014/01/24(金) 13:10:43.92
秀丸はともかくそこら辺はおごちゃんも言ってたな
0387名無しさん@お腹いっぱい。2014/01/24(金) 13:41:41.69
若いうちは馬鹿げたこともやってみるもんだ。
0388名無しさん@お腹いっぱい。2014/01/24(金) 13:45:06.79
Emacsはともかく、Lispの活躍の場はまだまだあるぞ、
って話がこの辺でされるはず。
http://d.hatena.ne.jp/shi3z/20140123/1390429115
0389名無しさん@お腹いっぱい。2014/01/24(金) 13:50:51.85
emacs はともかく emacs lisp は lisp 勉強してると色々不満も出てくるって聞いた
0390名無しさん@お腹いっぱい。2014/01/24(金) 13:52:32.14
とっかかりとしてはelispでもいいんじゃね。
0391名無しさん@お腹いっぱい。2014/01/24(金) 14:14:26.71
emacs lispはcommon lispのサブセットっていうイメージ
0392名無しさん@お腹いっぱい。2014/01/24(金) 14:29:02.43
ansi-term とかのバッファで clone-buffer すると微妙に挙動がおかしくなるのはなんでなんだろう
軽くソース見た感じじゃプロセスのクローンも対応してるはずなんだが

emacs -q でやってもしばらく ls だの cd - だのしてるうちにどんどん反応がおかしくなっていく
0393名無しさん@お腹いっぱい。2014/01/24(金) 14:42:29.02
Kazu さんは Haskell にご執心っぽいし、もう書いてくれないだろうな。
そっち方面に期待か。
0394名無しさん@お腹いっぱい。2014/01/24(金) 15:28:23.04
emacslispの上で他の言語処理系を作ってemacslispの変わりに使うってどう思う?
やってみたいけどemacslisp特有の問題を知らないから腰が上がらない
0395名無しさん@お腹いっぱい。2014/01/24(金) 15:41:10.35
lispを使ってDSLを作り上げるってことがあるのだから
別段問題ないかと
0396名無しさん@お腹いっぱい。2014/01/24(金) 15:41:17.17
いいんじゃない?
試しにやってみ。
0397名無しさん@お腹いっぱい。2014/01/24(金) 15:53:37.03
js2-mode とか自前で javascript の構文解釈とかまじめにやってるらしいし
やってやれないことはないのでは。

意味があるないでいけばあんまり無い気もするけど。
dynamic load とか実装されてるあたり、RMS も弱腰になってる気がするし
FFI の実装支援でもしたほうが健全な気がするよ。
0398名無しさん@お腹いっぱい。2014/01/24(金) 18:15:53.37
>>384
それよりは、オライリの入門書の方が
初心者向けに丁寧に解説されていると思う
読者にプログラミング未経験者も念頭に置いているようだし
0399名無しさん@お腹いっぱい。2014/01/24(金) 18:17:33.18
>>398
なんて本?
0400名無しさん@お腹いっぱい。2014/01/24(金) 22:04:05.65
>>399
いや「本」の話をしてるんだしw
0401名無しさん@お腹いっぱい。2014/01/24(金) 22:13:58.24
>>367です。

>>379
>>384
>>398

ありがとうございます。
「Emacs 実践入門」やO'Reilly 「 入門 GNU Emacs 」は
は知人からにも勧められました。

windowsユーザーなのですが、その知人から
「gnupack」は更新が止まって今後更新の状況が不透明だから
たのものにした方がいいと言われたのですが、
windows用のEmacsは他にもよいのがあるのでしょうか?
gnupack以外にもお奨めのwindows用Emacsがあれば
ご教示お願いいたします。
0402名無しさん@お腹いっぱい。2014/01/24(金) 22:52:04.05
>>397

>dynamic load とか実装されてるあたり、RMS も弱腰になってる気がするし
>FFI の実装支援でもしたほうが健全な気がするよ。
ダイナミックロード実装されたの!?
バージョンいくつから??
0403名無しさん@お腹いっぱい。2014/01/24(金) 23:05:05.57
>>402
24 あたりじゃないっけ。ダイナミックリンクつってもシェアードライブラリ使うようになっただけで
好きなように dlopen 出来るようになったわけじゃないんだよな。

>>401
NTEmacs のことなら NTEmacs スレで聞いた方がいいと思うよ。
Google IME 使ってるなら GNU が配布してる素の NTEmacs でも問題ないかと。
0404名無しさん@お腹いっぱい。2014/01/24(金) 23:13:48.99
http://ftp.jaist.ac.jp/pub/GNU/emacs/windows/
ここの emacs-24.3-bin-i386.zip が一応公式のバイナリだけどね

ただ、これ使うと間違って[半/全]を押すとキー入力出来なくなって
ブチ切れる事になると思う。
(実際には裏で日本語入力モードになってるだけなんだが…)

こんな状況じゃ日本でEmacsが流行らないのも無理はない
ちなみに俺はSKKを使ってるが万人にお勧めは出来ない
0405名無しさん@お腹いっぱい。2014/01/24(金) 23:31:51.70
>>403
>>402
>24 あたりじゃないっけ。ダイナミックリンクつってもシェアードライブラリ使うようになっただけで
>好きなように dlopen 出来るようになったわけじゃないんだよな。
あ、そうなのね。
自分で作ったsoを、読めるようになったのかと思って歓喜きてしまった
0406名無しさん@お腹いっぱい。2014/01/25(土) 09:19:51.09
>>389
末尾再帰の最適化とmacroexpand-1がないのがなぁ.
そういうのもあってemacs lispはlispをちゃんと勉強しようとするのには向いてないと思う.

named letを実装してるのがあったけどいつの間にかなくなってるね. bugfixしたから報告しようかと思ってたのに.
0407名無しさん@お腹いっぱい。2014/01/25(土) 09:36:23.39
>>406

> named letを実装してるのがあったけどいつの間にかなくなってるね. bugfixしたから報告しようかと思ってたのに.

go to melpa!
0408名無しさん@お腹いっぱい。2014/01/25(土) 11:12:58.61
Lispは書けなくても、.emacsの設定くらいは書ける。
0409名無しさん@お腹いっぱい。2014/01/25(土) 11:17:51.33
まあ基本 setq の羅列だしな。
0410名無しさん@お腹いっぱい。2014/01/25(土) 11:19:10.80
深いことしようと思わなければ誰かが作った設定をそのままコピーしてパラメタだけカスタマイズ
でなんとかなるっちゃなるし
0411名無しさん@お腹いっぱい。2014/01/25(土) 11:56:04.38
おとなしく customize 使えよとも思うんだけどなんかダルいよねあれ。
あれがもっと普通の GUI っぽい(?) UI だったらもっと使われてたのかねえ。

あと折角多国語使えるんだし docstring の多国語化の仕組みでもありゃいいのにね。
取得してる所の関数で gettext もどきのことすればやってやれないことはないんだろうか。
0412名無しさん@お腹いっぱい。2014/01/25(土) 14:30:01.96
俺はcustomize派
なぜならsetqじゃ設定が反映されないものがあったから
それとsetqとrequireが同時に出来るから行数の節約にもなるよ
0413名無しさん@お腹いっぱい。2014/01/25(土) 15:42:49.71
よくわからないんだけれど
setqで反映されなくてcustomizeで反映されるのはなぜなの?
0414名無しさん@お腹いっぱい。2014/01/25(土) 15:51:43.17
customize というか custom-set-variables の場合だが
対象の変数が defcustom 時に :set で関数を設定してた場合、それも一緒に呼ばれるらしい。

値を変更したあとそれを反映させるのに何かしら後処理が必要なのの場合
setq だけだと足りなかったりする。
0415名無しさん@お腹いっぱい。2014/01/25(土) 15:52:51.51
ぐぐったらでてきたぞ
http://kawamuray.hatenablog.com/entry/2013/11/03/180543
04164132014/01/25(土) 16:55:34.76
なるほど。そうだったのね。
ありがとう
0417名無しさん@お腹いっぱい。2014/01/25(土) 17:03:56.52
customizeはもっと評価されてもいい機能
インターフェースはテキスト端末もサポートしないといけないから、
ダサいのもしょうがない
0418名無しさん@お腹いっぱい。2014/01/25(土) 17:42:11.32
customizeは評価するしインターフェースも好きだから日本語対応しておくれ
0419名無しさん@お腹いっぱい。2014/01/25(土) 18:00:20.91
customize の日本語対応 ≒ 各々の elisp の docstring の翻訳
0420名無しさん@お腹いっぱい。2014/01/25(土) 21:59:13.58
>>401です。


>>403
Googleってのが二の足を踏んでしまうので。
知人もgnupackの更新再開を望んでいるのですけどね。
0421名無しさん@お腹いっぱい。2014/01/25(土) 23:34:10.72
skk 使いなよ。
さもなくば Windows を窓から放り投げるか自分でコンパイルするか
emacs を諦めるかだ。
0422名無しさん@お腹いっぱい。2014/01/25(土) 23:36:44.89
>>421
お前がやれw
0423名無しさん@お腹いっぱい。2014/01/25(土) 23:47:29.64
やってるし。
0424名無しさん@お腹いっぱい。2014/01/26(日) 03:00:39.04
NTEmacsで可及的速やかにビルドしなきゃいけない不具合とかあったっけ
0425名無しさん@お腹いっぱい。2014/01/26(日) 06:16:49.53
ワナビがずっと騒いでるだけだよ
0426名無しさん@お腹いっぱい。2014/01/26(日) 09:30:17.66
>>424
>>425
NTEmacsを使用しても、
現状では大丈夫で問題無いってこと?
0427名無しさん@お腹いっぱい。2014/01/26(日) 10:11:01.76
NTEmacs スレにいけっつうの
0428名無しさん@お腹いっぱい。2014/01/26(日) 18:09:43.39
Emacs∈NTEmacs
0429名無しさん@お腹いっぱい。2014/01/26(日) 18:14:24.94
逆じゃね
0430名無しさん@お腹いっぱい。2014/01/27(月) 00:26:20.32
[無変換]が
NTEmacs → non-convert
Emacs → muhenkan
って統一されてないのも気になる
0431名無しさん@お腹いっぱい。2014/01/27(月) 00:26:49.75
NTEmacsの話題はこのスレでも構わない
0432名無しさん@お腹いっぱい。2014/01/27(月) 00:27:56.54
勝手にきめんなよ
0433名無しさん@お腹いっぱい。2014/01/27(月) 00:32:13.89
>>430
ソース見た感じそのまんま X と Windows API の違いみたいだけど
どうせ文字列で再定義してるんだし違い出ないように合わせてやれよとは思うな確かに。
0434名無しさん@お腹いっぱい。2014/01/27(月) 01:12:32.79
昨日からEmacsを使い始めております。
今日、tabbarというのをパッケージ経由でインストールし、
Emacsの[Options]->[Customize Emacs]->[Specific Option...]を選択後、tabbar-modeを入力後、
Tabbar ModeをONにして設定を保存しました。
その後、Emacsを再起動したら、
File error: Cannot open load file, tabbar
と表示されエラーでこけました。

init.elには
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(ansi-color-names-vector ["#2d3743" "#ff4242" "#74af68" "#dbdb95" "#34cae2" "#008b8b" "#00ede1" "#e1e1e0"])
'(column-number-mode t)
'(custom-enabled-themes (quote (tango-dark)))
'(tabbar-mode t nil (tabbar)))
という形で保存されております。

何が原因かわかりませんが、tabbarを起動時にONにする場合、Customize Emacs経由で設定をONにせずに、
直接init.elに
(when (require 'tabbar nil t) (tabbar-mode))
のようにしないといけないのでしょうか?
(ググったら上記の記述をinit.elに書いたらOKでした)
0435名無しさん@お腹いっぱい。2014/01/27(月) 01:32:54.47
Customize でいうところの Applications>>Package>>Package Enable At Startup を
On にしないとあかんのでは。
もしくは .emacs.d/init.el に (package-initialize) を入れておくか。
0436名無しさん@お腹いっぱい。2014/01/27(月) 01:59:21.53
>>435
一応、Package Enable At StartupはONでinit.elにも(package-initialize)は追加してます。
ただ、その順番?が問題だったりするんでしょうか?
今は、init.elが
(custom-set-variables
(略)
(package-initialize)
という感じになってます。
■ このスレッドは過去ログ倉庫に格納されています