トップページunix
994コメント303KB

Emacs Part 47 [転載禁止]©5ch.net

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

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

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

前スレ
Emacs Part 46
http://peace.2ch.net/test/read.cgi/unix/1403458934/
0618名無しさん@お腹いっぱい。2015/03/06(金) 15:30:34.91
>>569
みたいなの書いてるのがLispを語るのがEmacsスレだもんね。
そりゃ廃れるはずだよ。
0619名無しさん@お腹いっぱい。2015/03/06(金) 15:31:22.66
if 文がスペシャルフォームだってのを知ってんのかなこの人
0620名無しさん@お腹いっぱい。2015/03/06(金) 15:32:23.91
>>611
単に Lisp が好きだからで済ませりゃいいところを引くに引けなくなったんだとおもうわw
0621名無しさん@お腹いっぱい。2015/03/06(金) 15:34:31.86
>>618
ゲームでの実例を挙げただけでLisp語るとか言われちゃったよ
0622名無しさん@お腹いっぱい。2015/03/06(金) 15:35:02.45
lispのいいところ全然説明できてなくてワロタ
恥ずかしいからemacsスレから出てこないでね。
0623名無しさん@お腹いっぱい。2015/03/06(金) 15:35:11.44
>>619
知ってるよ
0624名無しさん@お腹いっぱい。2015/03/06(金) 15:36:43.56
>>622
実例を述べただけだからしょうがない
じゃぁいいところを説明してみてよ
多分分かりきったことしか言わないだろうけど
0625名無しさん@お腹いっぱい。2015/03/06(金) 15:36:50.05
例文で関数使ってない時点でお察しだろう
0626名無しさん@お腹いっぱい。2015/03/06(金) 15:38:47.03
フルボッコわろた
Lisp 語るのも命がけだな
0627名無しさん@お腹いっぱい。2015/03/06(金) 15:39:05.27
>>625
例文を全部挙げろってのかよw
Lispの利点って関数かよw
0628名無しさん@お腹いっぱい。2015/03/06(金) 15:41:40.00
>>627
何言ってんだ…Lispの利点は関数が第一級オブジェクトであることだぞ。
0629名無しさん@お腹いっぱい。2015/03/06(金) 15:43:29.69
この人多分 elisp しか書いたこと無いんだと思う。
だから発想が C 的なんだろうね。フォーマットが利点とか無いから。
0630名無しさん@お腹いっぱい。2015/03/06(金) 15:44:14.18
>>628
え?それを言い始めたらJavaScriptとか他の言語でもそうだぞ
なんでmrubyを使わないんだとか言うんだろ

結局そういうレベルの奴が叩いてんだな…
0631名無しさん@お腹いっぱい。2015/03/06(金) 15:45:50.42
>>629
> フォーマットが利点とか無いから。
それはゲームスクリプト→Lispへの変換で利点がある
やってみれば分かる
結局こういう実例は理解されない→叩くっていう典型例だったんだな…
0632名無しさん@お腹いっぱい。2015/03/06(金) 15:45:56.48
>>630
つまり、Lispの関数型言語部分はどうでもいいってこと?
0633名無しさん@お腹いっぱい。2015/03/06(金) 15:47:52.95
>>631
脳内利点はどうでもいいですよ。やったこと無いくせに。
0634名無しさん@お腹いっぱい。2015/03/06(金) 15:48:52.50
>>627
lispの利点は関数にきまってるじゃない
他に何があるのさ
0635名無しさん@お腹いっぱい。2015/03/06(金) 15:50:31.17
>>622
正直 emacs lisp スレでやってほしいわ
0636名無しさん@お腹いっぱい。2015/03/06(金) 15:50:53.00
>>632
どうでもいいなんて言ってない
関数型言語なんてLisp以外でも幾らでもある
Lispじゃなきゃ駄目だという理由は何だと散々聞かれたから今まで返答してたんだ
0637名無しさん@お腹いっぱい。2015/03/06(金) 15:54:30.35
>>636
そこで一生懸命考えだした理由がフォーマット(笑)
0638名無しさん@お腹いっぱい。2015/03/06(金) 15:56:01.61
>>633
あるから言ってるだろ
もちろん完全なLispなんて実装してないよ
defunは実装してなくて、AtomとC++で実装された関数とオブジェクトとifのようなスペシャルフォームだ
スペシャルフォームもマクロなんて実装してないから、インタプリタ内で決め打ちだ
これでちゃんと使えた
0639名無しさん@お腹いっぱい。2015/03/06(金) 15:56:46.56
>>637
> そこで一生懸命考えだした理由がフォーマット(笑)
それはゲームスクリプト→Lispへの変換で利点がある
やってみれば分かる
0640名無しさん@お腹いっぱい。2015/03/06(金) 15:57:23.74
・選択権を持った人がlisp使い
・DSLでやる
これだけで、lispになるだろうし、ocaml使いだったらocamlになるんじゃないかな

Realm of Racketを読んで、schemeでゲームは書きやすいと感じたけど、
land of lispはつまらなかった
0641名無しさん@お腹いっぱい。2015/03/06(金) 15:57:49.70
>>638
それでlispを語っちゃうわけ?
0642名無しさん@お腹いっぱい。2015/03/06(金) 15:58:29.10
lisp の定義ってなんだっけ
0643名無しさん@お腹いっぱい。2015/03/06(金) 15:59:07.11
>>641
Lispを語ってない
ゲームでの実例を述べただけだ
0644名無しさん@お腹いっぱい。2015/03/06(金) 15:59:23.05
>>639
変換自体そもそも不要だろそれ
0645名無しさん@お腹いっぱい。2015/03/06(金) 16:00:34.28
>>642
それぞれの心の中に。わりとマジで。
0646名無しさん@お腹いっぱい。2015/03/06(金) 16:02:15.71
俺々Lisp実装してみましたっていいたいだけちゃうん
0647名無しさん@お腹いっぱい。2015/03/06(金) 16:04:12.22
命令列挙して if で分岐するだけでも本人が lisp だって言いはればそれも lisp だよ
0648名無しさん@お腹いっぱい。2015/03/06(金) 16:55:49.14
バカが口論してるとイミフすぎて
外野席から煽る楽しみすらないっていう
0649名無しさん@お腹いっぱい。2015/03/06(金) 17:00:55.66
質問です。
eval-when-compile の使いどころはわかったのですが、(事前計算による置き換えとかコンパイル後にコードを消し去るとか)
eval-and-compile はどういうシチュエーションで使えばいいんでしょうか?
0650名無しさん@お腹いっぱい。2015/03/06(金) 17:24:34.24
ほんで結論は?
0651名無しさん@お腹いっぱい。2015/03/06(金) 17:29:54.79
結論: ここは似非Lisperしかいない
0652名無しさん@お腹いっぱい。2015/03/06(金) 18:18:59.83
64 の頃まんま lisp っぽいデータがあった気がする。
今作ってるのは cond っぽい分岐持ってる。中身は全然 lisp じゃないけど。
0653名無しさん@お腹いっぱい。2015/03/06(金) 20:30:27.41
横から口挟むけど
おれもゲームでスクリプト実装する必要がうまれて
オレオレ言語かいてたら、あれこれLISPじゃね?ってなって
LISPの真似したら、めちゃめちゃ強力なスクリプトが短時間で実装できたことあるよ

だから「うんうん」とかおもって聞いてたけど
なんでこんな叩かれてんの
0654名無しさん@お腹いっぱい。2015/03/06(金) 20:59:58.87
代わりに君がまともに説明してはどうだろう?
先の人はダメすぎた
0655名無しさん@お腹いっぱい。2015/03/06(金) 21:00:55.94
>>649
defvar とか defun とかの自分で定義したものを eval-when-compile の中で参照したい場合、
eval-and-compile で括ってやる必要があったと思う。
普通に定義文かいただけじゃコンパイル時に評価はされないので。

(defconst value-a (format "*%d*" (expt 9 9)))
(defconst value-b (format "[%s]" value-a))

これの値部分をコンパイル時に計算しようとして eval-when-compile で囲んでも
value-a が void だって怒られるので

(eval-and-compile
(defconst value-a (eval-when-compile (format "*%d*" (expt 9 9)))))
(defconst value-b (eval-when-compile (format "[%s]" value-a)))

ってやって、コンパイル時にも value-a が定義されるようにしないといけない。
0656名無しさん@お腹いっぱい。2015/03/06(金) 21:10:01.11
githubからeval-and-compileで検索すると結構ひっかかるな
おんなじファイルとかどっかからコピーしたようなコードが多いから重複多数だが
https://github.com/search?utf8=%E2%9C%93&;q=eval-and-compile+language%3A%22Emacs+Lisp%22&type=Code&ref=searchresults
0657名無しさん@お腹いっぱい。2015/03/07(土) 01:12:29.83
>>653
lispは実装が簡単な上に強力だからプログラマには好まれる

その反面、ゲームスクリプトと言われてぱっと思い浮かぶような言語ではないと思うが
>>569みたいな例だったらLuaみたいなのを思い浮かべる人の方が多いのではないかと
0658名無しさん@お腹いっぱい。2015/03/07(土) 02:08:05.89
パーサが極小レベルのフットプリントで済むうえ
s式は構文木だから構文木に落とせるプログラムは必ず書ける

というわけで組み込み言語にlispを選ぶなんて
ウンコ漏れるくらいの常識

てかおまえらのいるスレは何スレだっつーんだよ
ばかばっかでウンコ漏れるっつーの
0659名無しさん@お腹いっぱい。2015/03/07(土) 05:21:24.10
どこの常識だよ。
例挙げてから常識を語れよ。
0660名無しさん@お腹いっぱい。2015/03/07(土) 05:45:14.09
どこの常識っていうか
普通に考えてLISPがミニマムな言語ってだけで
そうなるのは自然な流れだと思うんだけど
0661名無しさん@お腹いっぱい。2015/03/07(土) 05:48:01.56
だから具体的な例を挙げろって。
自然な流れならそこら中に沢山プロダクト転がってんだろ?
0662名無しさん@お腹いっぱい。2015/03/07(土) 06:02:24.84
http://emacs-users.jp
このドメイン取ったバカはさっさと更新しろや
0663名無しさん@お腹いっぱい。2015/03/07(土) 06:26:28.23
FFとかバンディクーがそうだってさっき出てたとおもうけど
とりあえず鼻息荒くするの止めようよ
0664名無しさん@お腹いっぱい。2015/03/07(土) 06:27:57.86
たったそれだけで常識にしちゃうのか。
0665名無しさん@お腹いっぱい。2015/03/07(土) 06:35:25.92
うん
0666名無しさん@お腹いっぱい。2015/03/07(土) 08:58:28.13
(move (if (search B) C D))
0667名無しさん@お腹いっぱい。2015/03/07(土) 12:31:14.55
>>655
ありがとうございました。
0668名無しさん@お腹いっぱい。2015/03/07(土) 13:57:00.77
最近 Emacs 立ち上げるのは init.el を点検するときだけになっちゃった
非プログラマになっちゃったから仕方ない気もするんだけど

非プログラミング用途で Emacs 使ってる人ってここにどんだけいるんだろう?
開発用途には一ミリも使ってないって人は流石にいないんだろうか
0669名無しさん@お腹いっぱい。2015/03/07(土) 14:14:52.15
latex書いたりgnuplot-modeの為ってのはプログラミングに入りますか?
0670名無しさん@お腹いっぱい。2015/03/07(土) 14:17:27.90
理系の論文書きだとプログラム一歩手前な感じもするよね。
必要であればコードも書くだろうし。
0671名無しさん@お腹いっぱい。2015/03/07(土) 14:17:57.06
>>668

w3m-emacs, eshell, multiterm(zsh), remember_org, scrach_buffer
0672名無しさん@お腹いっぱい。2015/03/07(土) 14:18:05.02
多言語使えるってことから翻訳に使ってる人とかいそう
0673名無しさん@お腹いっぱい。2015/03/07(土) 14:30:26.73
>>668
init.el を点検するときだけ Emacs を立ち上げる…?
じゃあ init.el は何のために点検してるの?
0674名無しさん@お腹いっぱい。2015/03/07(土) 14:40:32.95
ワロタw
0675名無しさん@お腹いっぱい。2015/03/07(土) 14:42:41.47
>>668
Emacsって書き物に便利だから、著述業のユーザもわりといる気がする
ワープロよりもテキストエディタで原稿を書いた方が圧倒的にはやいしね。
0676名無しさん@お腹いっぱい。2015/03/07(土) 15:00:34.07
>>673
設定みてホクホクするためですよ
0677名無しさん@お腹いっぱい。2015/03/07(土) 18:29:41.44
設定見てホクホクといえば今日は Lingr で init.el 読書会ですよ
22時からやってるんで良かったら見に来てね

http://lingr.com/room/emacs/
0678名無しさん@お腹いっぱい。2015/03/07(土) 19:59:09.65
ほう
なかなか良いことをやってるな
0679名無しさん@お腹いっぱい。2015/03/08(日) 00:05:04.12
読書会やってなかったじゃん
ワイルドで刺激的なHack! とかの画像がはられてたけど
0680名無しさん@お腹いっぱい。2015/03/08(日) 12:45:51.13
http://i.imgur.com/PZpDfj7.jpg
0681名無しさん@お腹いっぱい。2015/03/09(月) 02:35:06.63
なにこの流れ楽しい
navi2chで書くのも最後だから盛り上がってんのか
0682名無しさん@お腹いっぱい。2015/03/09(月) 10:40:51.74
今日の二時だっけ
eww に被せるガワでもつくるしかないのか
0683名無しさん@お腹いっぱい。2015/03/09(月) 10:43:41.43
>>682
二時に何があるの?
0684名無しさん@お腹いっぱい。2015/03/09(月) 10:54:43.85
>>683
今日の2時でdat取れなくなるようになるって噂だよ
0685名無しさん@お腹いっぱい。2015/03/09(月) 10:56:10.59
>>684
ソースある?
0686名無しさん@お腹いっぱい。2015/03/09(月) 11:15:37.00
>>685
競馬板の名無しのソースがある
0687名無しさん@お腹いっぱい。2015/03/09(月) 11:49:11.72
>>686
それはソースではなくて、ただの噂。
0688名無しさん@お腹いっぱい。2015/03/09(月) 11:57:19.89
チラシの裏。

Cygwin の Emacsで find-names-dired でファイルが開けなくなっていた。
ぐぐって directory-listing-before-filename-regexp という変数を知る。

Dired claims that no file is on this line - GNU Emacs FAQ
http://www.gnu.org/software/emacs/manual/html_node/efaq/Dired-claims-that-no-file-is-on-this-line.html
673文字もの長さにビビって放置。そんな長い正規表現、人間に読めるかよ。

今日、re-builderの存在を思い出して、正規表現をあちこち1文字改変したり
して試行錯誤すると30分ぐらいで修正できた。こりゃ便利だな。
0689名無しさん@お腹いっぱい。2015/03/09(月) 12:39:22.60
未だにそんなデグレ起きてんのかよ
emacsェ…
0690名無しさん@お腹いっぱい。2015/03/09(月) 12:53:47.17
(setq dired-listing-switches (concat "--time-style=long-iso " dired-listing-switches))
で解決する話だったりしない?それ。
0691名無しさん@お腹いっぱい。2015/03/09(月) 14:11:47.54
まだいけるじゃねえか
0692名無しさん@お腹いっぱい。2015/03/09(月) 14:59:06.61
gnupack 11.00 で、
GNU Emacs 24.2.1 (i386-mingw-nt6.2.9200) of 2012-12-08 on GNUPACK
を使ってるんだけど、helm-swoop を実行しようとすると、
> helm-swoop--keep-nearest-position: Symbol's value as variable is void: --cl---cl-var--51405--
って、エラーがミニバッファに表示されて helm-swoop が使えない。

ただ、カーソルが日本語の部分とかにあると、なぜか helm-swoop が起動する。

なんか情報無いっすか?
0693名無しさん@お腹いっぱい。2015/03/09(月) 15:02:50.63
>>682>>684>>686
今後は話の出所をちゃんと確認しろよ
0694名無しさん@お腹いっぱい。2015/03/09(月) 16:04:05.38
>>686
競馬板のどのスレ?
0695名無しさん@お腹いっぱい。2015/03/09(月) 16:13:53.18
>>694
▼とるに足らないニュースの為のスレッド653▼ [転載禁止]©2ch.net
http://yomogi.2ch.net/test/read.cgi/keiba/1425351674/672
672 名無しさん@実況で競馬板アウト sage 2015/03/08(日) 13:12:38.41 ID:YE6gLG3X0
API非対応の2chブラウザ
明日の14時に使えなくなる模様
0696名無しさん@お腹いっぱい。2015/03/09(月) 16:17:29.47
うわー
使えない

あっはい
0697名無しさん@お腹いっぱい。2015/03/09(月) 16:20:58.44
>>695
なんでこんなの信じるんだろ・・・
0698名無しさん@お腹いっぱい。2015/03/09(月) 16:21:27.14
>>692
> なんか情報無いっすか?

http://rubikitch.com/2014/12/25/helm-swoop/
rubikitch@ruby-lang.org にメールしろってよ
0699名無しさん@お腹いっぱい。2015/03/09(月) 16:25:59.66
裏情報入手してないのか?
俺ソースだと3/13が切り替え日だ
0700名無しさん@お腹いっぱい。2015/03/09(月) 16:31:13.43
>>699
どこソースか出さなきゃ信用してもらえないよ
0701名無しさん@お腹いっぱい。2015/03/09(月) 16:36:08.72
俺ソースだとdat廃止はポシャったそうだ
0702名無しさん@お腹いっぱい。2015/03/09(月) 16:41:56.59
俺しょうゆ
0703名無しさん@お腹いっぱい。2015/03/09(月) 20:44:58.05
僕のスキルでは無理ですが、

1. EmacsをRuby or mrubyで実装しなおす(Rmax??)
2. rmaxコマンドで~/rmax.d/ 以下のディレクトリ階層と設定ファイルの雛形を自動生成
3. Rubyで設定・拡張できるようにする
4. ビルドツールにはRakeを使う

みたいなことができるとEmacsが一気に今風な感じになって面白いのになぁと思うんですけど… まあ、僕のスキルでは無理なんですけど…
0704名無しさん@お腹いっぱい。2015/03/09(月) 21:06:57.02
emacsをrubyで実装し直すってぶん殴りたくなる遅さかもしれない
何を実装するのか知らんけど
0705名無しさん@お腹いっぱい。2015/03/09(月) 21:16:07.04
そういや測定したこと無いんだけど emacs lisp 自体の速度って速いんだろうか
0706名無しさん@お腹いっぱい。2015/03/09(月) 21:29:40.65
>>689
まあCygwin版だから。バグは多いけれどバージョンアップは早い。
GNU Emacs 24.4.1 (x86_64-unknown-cygwin) of 2015-02-13 on desktop-new

>>690
それだと解決しなかった。残念。
こちらの現象は、1-9月だと月名と日の間に半角スペースが3個入ってしまうのが
原因で、正規表現の途中に " ?" を入れたら動くようになった。

しかしNavi2chが使えなくなったら、こんな気軽に書き込みはできなくなるなあ。
0707名無しさん@お腹いっぱい。2015/03/09(月) 21:38:22.70
>>706
ああ、ごめん。
標準だと find-ls-option の方見に行っちゃうからそっちの方に --time-sytle=long-iso を入れないとダメだわ。

自分ところはこんなふうにしてた。
find の -ls だと日付のフォーマット違いで開けないことがあったから直接 ls 呼ぶようにしたんだった。

(setq find-ls-option (cons (format "-exec ls %sd --time-style=long-iso {} +"
dired-listing-switches)
(format "%sd" dired-listing-switches)))
0708名無しさん@お腹いっぱい。2015/03/09(月) 23:20:32.94
(setenv "LC_TIME" "C") とか?
0709名無しさん@お腹いっぱい。2015/03/10(火) 14:09:42.47
指定したバッファでのみ permanent-local になるバッファローカル変数を作る方法はありませんかね?
普通に make-local-variable とかでバッファローカル変数を作ってもメジャーモード変更とかで
kill-all-local-variables が走ると消えちゃうし、
permanent-local フラグを立てちゃうとこんどは逆にどのバッファでも消えなくなってしまうし。
0710名無しさん@お腹いっぱい。2015/03/10(火) 16:00:24.68
>>575
if の使い方を見ると、大抵その人が Lisp に浸っているかどうかが分かる。
手続型言語から見ると if は「制御文」であり、処理の流れを切り替えるために 使う。たとえばこんな風。

(if need-hogehoge
(setq foo "hogehoge")
(setq foo "fugafuga"))

ああ、もったいない。if もやっぱり関数(厳密にはスペシャルフォーム)なのだ。
ifは第一引数の値 に応じて第二引数を返すか、第三引数以後の最後のものを返すかするという関数 である。

(setq foo (if need-hogehog "hogehoge" "fugafuga"))
これで、ifが返してくれる値を捨てることなくsetqに拾わせることができる。
とにかくLispは値が命。無駄に値を捨てない。もったいないお化けを出さない。
0711名無しさん@お腹いっぱい。2015/03/10(火) 22:19:24.83
何か面白いパッケージ無いかなあ
設定し尽くして飽きてきた
0712名無しさん@お腹いっぱい。2015/03/10(火) 22:36:26.86
>>710
cの三項演算子でそれよく使う。
0713名無しさん@お腹いっぱい。2015/03/10(火) 22:48:49.28
三項演算子は分かりづらくなるケースがあるからなんとも
人に説明するときは手続き型言語方式の方が分かりやすいし
0714名無しさん@お腹いっぱい。2015/03/10(火) 23:10:49.73
その発想が既にlisp的でないんだよなぁ
0715名無しさん@お腹いっぱい。2015/03/10(火) 23:12:09.39
暗黙の了解をぶち破らないと見えない世界がある
0716名無しさん@お腹いっぱい。2015/03/10(火) 23:13:24.93
モードラインに最大行数を常に表示したいんだけどどうやったらいいんだろう
0717名無しさん@お腹いっぱい。2015/03/10(火) 23:39:32.46
>>707-708
ありがとう。とりあえず今は動いているからいいわ。
また動かなくなったらその時考える。
ただ、LC_TIME=C はちょっと表示が寂しいかも。
0718名無しさん@お腹いっぱい。2015/03/11(水) 05:08:57.54
>716
(column-number-mode t)
で現在位置と最大行数が(100/200)みたいな感じで表示されたよん
■ このスレッドは過去ログ倉庫に格納されています