Emacs Part 47 [転載禁止]©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2014/12/20(土) 16:17:19.14GNU 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/
0637名無しさん@お腹いっぱい。
2015/03/06(金) 15:54:30.35そこで一生懸命考えだした理由がフォーマット(笑)
0638名無しさん@お腹いっぱい。
2015/03/06(金) 15:56:01.61あるから言ってるだろ
もちろん完全なLispなんて実装してないよ
defunは実装してなくて、AtomとC++で実装された関数とオブジェクトとifのようなスペシャルフォームだ
スペシャルフォームもマクロなんて実装してないから、インタプリタ内で決め打ちだ
これでちゃんと使えた
0639名無しさん@お腹いっぱい。
2015/03/06(金) 15:56:46.56> そこで一生懸命考えだした理由がフォーマット(笑)
それはゲームスクリプト→Lispへの変換で利点がある
やってみれば分かる
0640名無しさん@お腹いっぱい。
2015/03/06(金) 15:57:23.74・DSLでやる
これだけで、lispになるだろうし、ocaml使いだったらocamlになるんじゃないかな
Realm of Racketを読んで、schemeでゲームは書きやすいと感じたけど、
land of lispはつまらなかった
0641名無しさん@お腹いっぱい。
2015/03/06(金) 15:57:49.70それでlispを語っちゃうわけ?
0642名無しさん@お腹いっぱい。
2015/03/06(金) 15:58:29.100643名無しさん@お腹いっぱい。
2015/03/06(金) 15:59:07.11Lispを語ってない
ゲームでの実例を述べただけだ
0644名無しさん@お腹いっぱい。
2015/03/06(金) 15:59:23.05変換自体そもそも不要だろそれ
0645名無しさん@お腹いっぱい。
2015/03/06(金) 16:00:34.28それぞれの心の中に。わりとマジで。
0646名無しさん@お腹いっぱい。
2015/03/06(金) 16:02:15.710647名無しさん@お腹いっぱい。
2015/03/06(金) 16:04:12.220648名無しさん@お腹いっぱい。
2015/03/06(金) 16:55:49.14外野席から煽る楽しみすらないっていう
0649名無しさん@お腹いっぱい。
2015/03/06(金) 17:00:55.66eval-when-compile の使いどころはわかったのですが、(事前計算による置き換えとかコンパイル後にコードを消し去るとか)
eval-and-compile はどういうシチュエーションで使えばいいんでしょうか?
0650名無しさん@お腹いっぱい。
2015/03/06(金) 17:24:34.240651名無しさん@お腹いっぱい。
2015/03/06(金) 17:29:54.790652名無しさん@お腹いっぱい。
2015/03/06(金) 18:18:59.83今作ってるのは 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.94defvar とか 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おんなじファイルとかどっかからコピーしたようなコードが多いから重複多数だが
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.83lispは実装が簡単な上に強力だからプログラマには好まれる
その反面、ゲームスクリプトと言われてぱっと思い浮かぶような言語ではないと思うが
>>569みたいな例だったらLuaみたいなのを思い浮かべる人の方が多いのではないかと
0658名無しさん@お腹いっぱい。
2015/03/07(土) 02:08:05.89s式は構文木だから構文木に落とせるプログラムは必ず書ける
というわけで組み込み言語に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このドメイン取ったバカはさっさと更新しろや
0663名無しさん@お腹いっぱい。
2015/03/07(土) 06:26:28.23とりあえず鼻息荒くするの止めようよ
0664名無しさん@お腹いっぱい。
2015/03/07(土) 06:27:57.860665名無しさん@お腹いっぱい。
2015/03/07(土) 06:35:25.920666名無しさん@お腹いっぱい。
2015/03/07(土) 08:58:28.130667名無しさん@お腹いっぱい。
2015/03/07(土) 12:31:14.55ありがとうございました。
0668名無しさん@お腹いっぱい。
2015/03/07(土) 13:57:00.77非プログラマになっちゃったから仕方ない気もするんだけど
非プログラミング用途で Emacs 使ってる人ってここにどんだけいるんだろう?
開発用途には一ミリも使ってないって人は流石にいないんだろうか
0669名無しさん@お腹いっぱい。
2015/03/07(土) 14:14:52.150670名無しさん@お腹いっぱい。
2015/03/07(土) 14:17:27.90必要であればコードも書くだろうし。
0671名無しさん@お腹いっぱい。
2015/03/07(土) 14:17:57.06ノ
w3m-emacs, eshell, multiterm(zsh), remember_org, scrach_buffer
0672名無しさん@お腹いっぱい。
2015/03/07(土) 14:18:05.020673名無しさん@お腹いっぱい。
2015/03/07(土) 14:30:26.73init.el を点検するときだけ Emacs を立ち上げる…?
じゃあ init.el は何のために点検してるの?
0674名無しさん@お腹いっぱい。
2015/03/07(土) 14:40:32.950675名無しさん@お腹いっぱい。
2015/03/07(土) 14:42:41.47Emacsって書き物に便利だから、著述業のユーザもわりといる気がする
ワープロよりもテキストエディタで原稿を書いた方が圧倒的にはやいしね。
0676名無しさん@お腹いっぱい。
2015/03/07(土) 15:00:34.07設定みてホクホクするためですよ
0677名無しさん@お腹いっぱい。
2015/03/07(土) 18:29:41.4422時からやってるんで良かったら見に来てね
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.130681名無しさん@お腹いっぱい。
2015/03/09(月) 02:35:06.63navi2chで書くのも最後だから盛り上がってんのか
0682名無しさん@お腹いっぱい。
2015/03/09(月) 10:40:51.74eww に被せるガワでもつくるしかないのか
0683名無しさん@お腹いっぱい。
2015/03/09(月) 10:43:41.43二時に何があるの?
0684名無しさん@お腹いっぱい。
2015/03/09(月) 10:54:43.85今日の2時でdat取れなくなるようになるって噂だよ
0685名無しさん@お腹いっぱい。
2015/03/09(月) 10:56:10.59ソースある?
0686名無しさん@お腹いっぱい。
2015/03/09(月) 11:15:37.00競馬板の名無しのソースがある
0687名無しさん@お腹いっぱい。
2015/03/09(月) 11:49:11.72それはソースではなくて、ただの噂。
0688名無しさん@お腹いっぱい。
2015/03/09(月) 11:57:19.89Cygwin の 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.60emacsェ…
0690名無しさん@お腹いっぱい。
2015/03/09(月) 12:53:47.17で解決する話だったりしない?それ。
0691名無しさん@お腹いっぱい。
2015/03/09(月) 14:11:47.540692名無しさん@お腹いっぱい。
2015/03/09(月) 14:59:06.61GNU 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今後は話の出所をちゃんと確認しろよ
0694名無しさん@お腹いっぱい。
2015/03/09(月) 16:04:05.38競馬板のどのスレ?
0695名無しさん@お腹いっぱい。
2015/03/09(月) 16:13:53.18▼とるに足らないニュースの為のスレッド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なんでこんなの信じるんだろ・・・
0698名無しさん@お腹いっぱい。
2015/03/09(月) 16:21:27.14> なんか情報無いっすか?
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どこソースか出さなきゃ信用してもらえないよ
0701名無しさん@お腹いっぱい。
2015/03/09(月) 16:36:08.720702名無しさん@お腹いっぱい。
2015/03/09(月) 16:41:56.590703名無しさん@お腹いっぱい。
2015/03/09(月) 20:44:58.051. EmacsをRuby or mrubyで実装しなおす(Rmax??)
2. rmaxコマンドで~/rmax.d/ 以下のディレクトリ階層と設定ファイルの雛形を自動生成
3. Rubyで設定・拡張できるようにする
4. ビルドツールにはRakeを使う
みたいなことができるとEmacsが一気に今風な感じになって面白いのになぁと思うんですけど… まあ、僕のスキルでは無理なんですけど…
0704名無しさん@お腹いっぱい。
2015/03/09(月) 21:06:57.02何を実装するのか知らんけど
0705名無しさん@お腹いっぱい。
2015/03/09(月) 21:16:07.040706名無しさん@お腹いっぱい。
2015/03/09(月) 21:29:40.65まあ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ああ、ごめん。
標準だと 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.940709名無しさん@お腹いっぱい。
2015/03/10(火) 14:09:42.47普通に make-local-variable とかでバッファローカル変数を作ってもメジャーモード変更とかで
kill-all-local-variables が走ると消えちゃうし、
permanent-local フラグを立てちゃうとこんどは逆にどのバッファでも消えなくなってしまうし。
0710名無しさん@お腹いっぱい。
2015/03/10(火) 16:00:24.68if の使い方を見ると、大抵その人が 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.86cの三項演算子でそれよく使う。
0713名無しさん@お腹いっぱい。
2015/03/10(火) 22:48:49.28人に説明するときは手続き型言語方式の方が分かりやすいし
0714名無しさん@お腹いっぱい。
2015/03/10(火) 23:10:49.730715名無しさん@お腹いっぱい。
2015/03/10(火) 23:12:09.390716名無しさん@お腹いっぱい。
2015/03/10(火) 23:13:24.930717名無しさん@お腹いっぱい。
2015/03/10(火) 23:39:32.46ありがとう。とりあえず今は動いているからいいわ。
また動かなくなったらその時考える。
ただ、LC_TIME=C はちょっと表示が寂しいかも。
0718名無しさん@お腹いっぱい。
2015/03/11(水) 05:08:57.54(column-number-mode t)
で現在位置と最大行数が(100/200)みたいな感じで表示されたよん
0719名無しさん@お腹いっぱい。
2015/03/11(水) 12:38:06.68column-number-mode は桁数の表示
line-number-mode と両方有効な時は (100,0) という風に (行数,桁数) が表示されるけど
総行数の表示機能は無かったはず
0720名無しさん@お腹いっぱい。
2015/03/11(水) 12:38:48.16;; `line-number-mode' と `colmun-number-mode' のモード行書式設定(変数
;; `mode-line-position' の第三要素)を、総行数を共に表示する書式に置き
;; 換える。
(rplaca (cddr mode-line-position)
'(line-number-mode
((column-number-mode
;; `line-number-mode' と `column-number-mode' 両方有効な場合:
;; " (現在行数/総行数,現在桁数)"
(:eval (format " (%%l/%d,%%c)" (1+ (count-lines (point-min) (point-max)))))
;; `line-number-mode' のみ有効な場合: " L現在行数/総行数"
(:eval (format " L%%l/%d" (1+ (count-lines (point-min) (point-max)))))))
;; `column-number-mode' のみ有効な場合: " C現在桁数"
((column-number-mode " C%c "))))
*参考にしたページ
Mode Line Data - GNU Emacs Lisp Reference Manual
https://www.gnu.org/software/emacs/manual/html_node/elisp/Mode-Line-Data.html
"(:eval form)" と "(symbol then else)"
%-Constructs - GNU Emacs Lisp Reference Manual
https://www.gnu.org/software/emacs/manual/html_node/elisp/_0025_002dConstructs.html
"%l" が現在行数、"%c" が現在桁数
上記コードではformat関数に解釈されないようエスケープしているので "%%l" となっている
Emacsのモードラインにページの総行数をきれいに表示する方法 - 三等兵
http://d.hatena.ne.jp/sandai/20120307/p1
`mode-line-position' の中身の解説
0721名無しさん@お腹いっぱい。
2015/03/11(水) 12:55:56.48ありがとうございます!綺麗に表示されるようになりました!
0722名無しさん@お腹いっぱい。
2015/03/11(水) 19:54:59.56微妙に気に入らないフォントでも修正かけられるのはありがたい
;; 0にスラッシュ入ってないフォントで0にスラッシュを入れる
(font-lock-add-keywords nil '(("0" 0
(compose-region
(match-beginning 0) (match-end 0)
(compose-string "0/")
'decompose-region))))
0723名無しさん@お腹いっぱい。
2015/03/11(水) 20:00:09.84他の事例もあればjpg頼む
0724名無しさん@お腹いっぱい。
2015/03/11(水) 20:26:42.29http://i.imgur.com/ia0NtfE.png
こんな感じ
0725名無しさん@お腹いっぱい。
2015/03/11(水) 23:31:25.36どのようにすれば回避できるのでしょうか?
(define-key calculator-mode-map
(kbd "C-c C-c") 'somefunc)
;; => Key sequence C-c C-c starts with non-prefix key C-c
0726名無しさん@お腹いっぱい。
2015/03/12(木) 00:25:06.38(define-key calculator-mode-map (kbd "\C-c\C-c") 'somefunc)
0727名無しさん@お腹いっぱい。
2015/03/12(木) 14:14:35.54うまく出来ました。
予めプリフィクスになるものをnilで初期化?する必要があるんですね。
ありがとうございました!
0728名無しさん@お腹いっぱい。
2015/03/12(木) 14:47:27.850729名無しさん@お腹いっぱい。
2015/03/12(木) 15:16:22.01(load-theme 'solarized-dark t)
ってしてるのに普通の方ででちゃう
0730名無しさん@お腹いっぱい。
2015/03/12(木) 16:04:11.28(setq frame-background-mode 'dark)
(load-theme 'solarized t)
https://github.com/sellout/emacs-color-theme-solarized
> To switch between the light and dark variations of Solarized, set the frame’s
> background-mode. This can be accomplished globally using M-x
> customize-variable frame-background-mode or on a per-frame basis with
> (set-frame-parameter nil 'background-mode 'light) (or 'dark).
0731名無しさん@お腹いっぱい。
2015/03/12(木) 16:36:17.88なにがいいって標準でついてるってのがいい
0732名無しさん@お腹いっぱい。
2015/03/12(木) 19:10:35.78いまいち安定しない
diredで普通の0が表示されたりする
0733名無しさん@お腹いっぱい。
2015/03/12(木) 20:14:59.25ありがとうございます
0734名無しさん@お腹いっぱい。
2015/03/12(木) 21:25:41.01ただでさえ書き込み少なかったここも今度こそ終わるな
0735名無しさん@お腹いっぱい。
2015/03/12(木) 23:24:56.180736名無しさん@お腹いっぱい。
2015/03/12(木) 23:45:38.54ソース
■ このスレッドは過去ログ倉庫に格納されています