[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/25 03:24 / Filesize : 216 KB / Number-of Response : 877
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Emacs Part 39



1 名前:名無しさん@お腹いっぱい。 [2011/11/29(火) 17:50:44.24 ]
前スレ

Emacs Part 38
hibari.2ch.net/test/read.cgi/unix/1308635178/

302 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 15:32:41.59 ]
なんでって質問にはなかなか答えられないかもしれない。。
lisp reader作っちゃうような真性lisperの集まるスレに行って聞くといいかも。
プログラム板のschemeとかclとかの。

>>300
(setq a "C-c a")
(read-kbd-macro a)

ってやっちゃうととりあえず願いは叶うんだろうけど、これじゃ不満だろうか?
kbd はシンタックスシュガーな気がするしループの中でなんかするとかそうい
う使い方じゃないんじゃなかろうか。

303 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 15:49:18.27 ]
>>301だけどありがとう
なるほど

304 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 16:11:41.68 ]
>>301
macroexpandはマクロを実行するものだから。
マクロというのはありえいにいえば処理系に置き換えてもらいたい式を返す関数。
この場合 (kbd 'a) が実行される。

305 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 16:30:54.88 ]
elispを編集中にカーソル下の関数の説明を見るにはどうすればよいですか?

306 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 17:34:09.08 ]
>>305
describe-function
C-h をバックスペースにしてなければ C-h f

307 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 19:30:33.63 ]
>>306
ありがとうございました。

308 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 20:03:41.81 ]
メジャーモードやマイナーモードで
1タブあたりの半角空白の数を指定するにはどうするのですか

309 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 20:14:26.30 ]
(add-hook 'なんかの-mode-hook
(lambda () (setq tab-width 4)))

310 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 20:17:02.17 ]
(add-hook 'hoge-mode-hook
(lambda ()
(set (make-variable-local 'tab-width) 10)
(set (make-variable-local 'tab-stop-list) '(10 20 30 40 50 60 70 80 90))))



311 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 20:17:19.76 ]
間違い
make-local-variable だった。

312 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 20:35:18.17 ]
>>309
できました。

313 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 20:45:44.21 ]
初心者質問増えた気がするのはrubikitch本の影響なのかなぁ。

314 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:07:39.90 ]
www.mag2.com/m/0001373131.html
るびきちの経歴をはじめて見た気がする

315 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:08:33.99 ]
>>313
Software Design とかで Emacs の特集くまれたのも関係してるのかもね。

316 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:08:33.89 ]
るびきちは責任もってにわかの処理をしろ

317 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:14:15.30 ]
とりあえず anything 使っとけで OK



318 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:16:33.71 ]
Emacs をこれからわざわざ使い始める必要はないと思うけどなあ。

Emacsのキーバインドは呪いだぞ。下手になれるとずーーーーーっと付きまとわれる。

319 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:17:07.28 ]
小指が痛いのは呪いのせいだぜ。

320 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:35:38.97 ]
>>316
www.mag2.com/m/0001373131.html

で500yen/1month払った人の相手は責任もってやります。



321 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:39:04.70 ]
内容読んでないからわからないけど
むしろ入門書よんでたら describe-function とかタブ幅設定知らないってことはないんじゃないのか?

322 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:39:34.05 ]
www.mag2.com/m/0001373131.html
> 【月額512円】 1配信あたり約 512円

これが525円? ぼったくりにもほどがある。

323 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:53:46.94 ]
512って書いてあんじゃん!

324 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 21:54:34.37 ]
消費税の魔力は恐ろしいな。

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 22:04:44.97 ]
テンプレに初心者はるびきちに聞けって入れとうこうぜ

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 22:17:21.39 ]
inhibit-startup-echo-area-message ってなんでわざわざあんなめんどくさい仕様なの?

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 22:20:05.18 ]
バイトコンパイルで動作が速くなるというのは.elと比べて
起動時の読み込み処理+起動後の処理の両方が速くなるということでしょうか

328 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 22:23:48.15 ]
読み込みが早くなるだけで実行速度はかわらないんでないの。
読み込んだ後にどうせ内部的にコンパイルしているわけだし。

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 22:49:44.35 ]
いや、計算が多いコードだと明らかに速くなるよ。


330 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/29(木) 23:14:35.22 ]
現行のバイトコンパイラはlucid製の最適化コンパイラで実行速度も速い。



331 名前:327 mailto:sage [2011/12/29(木) 23:28:18.08 ]
分かりました

332 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 11:12:48.18 ]
キャラクタセット毎にフォントを指定する時の疑問なんですが、
(set-fontset-font "xxx" 'japanese-jisx0208 "SomeFont") みたいに直接指定するのと
(set-fontset-font "xxx" 'japanese-jisx0208 (font-spec :family "SomeFont"
:registry "unicode-bmp" :lang 'ja))
みたいにfont-specで指定するのってどう違いがあるんでしょう?

333 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 11:18:48.69 ]
set-fontset-font is a built-in function in `C source code'.
(set-fontset-font NAME TARGET FONT-SPEC &optional FRAME ADD)

FONT-SPEC may one of these:
* A font-spec object made by the function `font-spec' (which see).
* A cons (FAMILY . REGISTRY), where FAMILY is a font family name and
REGISTRY is a font registry name. FAMILY may contain foundry
name, and REGISTRY may contain encoding name.
* A font name string.
* nil, which explicitly specifies that there's no font for TARGET.


334 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 11:44:46.71 ]
ということは、SomeFont の特定の registry に属するものだけ指定したい場合とかだけ
font-spec 使ったり cons セル渡したりすれば良いということなんですね。

font と fontset の仕組みがなかなか理解できないなぁ・・・
list-fontsets で出てくるフォントセット名って必ずしもそこで指定された family に属してるフォントだけってわけでもないんですよね。

335 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 12:15:08.17 ]
> フォントセット名って必ずしもそこで
「そこ」ってどこよ? set-fontset-fontの事?

フォントセットはcreate-fontset*で作成し、その時にフォントセット名を指定する。
set-fontset-fontで指定してないフォントセット名がリストされても何も不思議じゃないんだが。

336 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 12:29:14.72 ]
>>335
create-fontset* したときにフォントセット名を未指定だと
そのフォントの XLFD がフォントセット名になるじゃないですか。

それがあったから自分にはわかりづらかったんですよ。
なんで Family が * じゃないのに別の Family のフォントが使えるの???みたいに。
フォントセット名って結局は単純に名前なだけで内容は別に XLFD とは関係ないってことなんですよね。

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 12:50:29.54 ]
set-frame-font等でフォントファミリーで指定することもできるので無関係というわけでもない。

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 12:55:33.81 ]
正月休みに読もうと、図書館でるびきち本を借りようとしたら貸し出し中だった
自分以外にも買わないで済ます奴がいるんだなw

339 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 13:23:40.98 ]
本屋で平積みになってたので
上に『いまどきのアセンブラプログラミング』を乗せてきた

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 14:29:28.44 ]
いまどきのアセンブラプログラミングちょっと気になるな

とおもって書評見に行ったらメタクソでワロタ。
中身もトンデモだった。



341 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 14:54:17.74 ]
キチの本は評判どうなんだろう


342 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 15:00:56.70 ]
るびきちのemacs本を2冊とも持っているけど
誤植が結構ある気がするんだよな(とくにemacs lispの方)
正誤表がネットにあればいいのに

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 15:04:58.08 ]
Emacsテクニックバイブルの方は正誤表あった
d.hatena.ne.jp/rubikitch/20100810/emacsbookerrata
Emacs Lispテクニックバイブルの方は知らん

電子書籍で販売しないあたりがオールドタイプ

344 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 15:07:51.32 ]
>奇跡はまだ終わりません。 ちょうど1年後、2008年にanythingの開発を引
>き継ぐことになりました。 原作者はanything開発の時間が取れないとの
>ことで、熱烈なanythingファンの筆者がすぐに次期開発者として名乗りを
>上げ、了承されました。 バグを修正し、使いやすくするために大幅に機
>能を追加しました。 その結果、コードは約4倍に膨れ上がりました。 熱
>狂的なファンも増えました。 anythingを使ったLispプログラムもたくさ
>ん登場しました。 いつしかanythingがないと生きていけない様を表す
>「anything脳」という言葉も登場しました。 anythingで生産性が上がっ
>た人がたくさんいます。 そして現在は「anythingのるびきち」として知
>られるようになりました。


きんもーい

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 15:10:59.90 ]
これもきもい
> 42歳のおっさんです。前著作とともに購入しました。
> ともに自宅用、会社用に1冊ずつ、合計4冊購入しました。
> ただ、すでに痛み始めているので、ともに、あと1冊ずつ購入することになると思います。
> メルマガも先ほど、購読の手続きを完了しました。楽しみにしています。


346 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 15:58:14.87 ]
別にきもくはない。年齢的にも金持ってるんだろうし、俺もリファレンス的
な本は会社と自宅で2冊買ってたりしてた。


347 名前:342 mailto:sage [2011/12/30(金) 16:00:32.43 ]
>>343
ありがとう。手元にあるemacsテクニックバイブルは2刷りだけど
日本語の文章としておかしい箇所があった気がする
メモをしていなかったので場所は忘れた
コードはざっと見た限りひどい間違いはなさそう
もう一度通読してみるか

348 名前:名無しさん@お腹いっぱい。 [2011/12/30(金) 16:55:04.23 ]
>>293
嘘よくない…。post できるヨ…。

349 名前:名無しさん@お腹いっぱい。 [2011/12/30(金) 18:45:36.05 ]
無知乙。10年前ぐらいはPOSTできないのが常識だった事も知らんのか。

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 19:02:40.92 ]
誰に対して無知なんだよ…




351 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 19:04:55.83 ]
HTTP/0.9にはGETメソッドしかなかったからな。

352 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 19:25:34.59 ]
バカだとかアホだとかおよそ書籍に似つかわしくない単語が並んでた。

353 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 21:05:55.40 ]
>>352
?どういうこと?

354 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 21:23:42.61 ]
キチボンにそういう単語が並んでるってこと?

355 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 21:29:48.87 ]
そう。cl に関する記述の部分だったかな。
おれはこのことに怒っているぞみたいなこと書いてあった。

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 21:32:26.59 ]
ああいう表現って編集の人に止められないもんなのかね。
触らぬキに祟りなしとかで何も言わないのか。

357 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 23:04:23.29 ]
cl に関しては公式が正しいと思うけどな。
Common LispだけがLispじゃないんだし。

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 23:09:10.31 ]
ただ、dolist みたいな便利マクロが標準で用意されててもいいだろとは思ったわ。
どうせみんな書くんだろうし。

359 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 23:11:07.88 ]
>>348
リクエストメソッドをPOSTに出来るだけでしょ。
マルチパートの送信も出来ないのにPOST出来るとはとてもとても。

360 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 23:39:38.22 ]
>>356
clマクロを取りまく現状について
「こうしたねじれた事態は馬鹿げている」と強い口調で書いてはある
けれどバカと馬鹿げているではニュアンスがまるで違うからキとか言うのはよくない



361 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 23:42:51.17 ]
キについては自称だからなぁ。

362 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/30(金) 23:44:13.73 ]
cl 使うなっていうなら標準で添付するなよなとは思うわ。
意味わからん。

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 00:31:14.97 ]
>>358
dolist, dotimes は subr.el に標準で用意されている。
正直 cl とマージすればいいと思うんだけど、何かポリシー
があるんだろうな。

364 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 00:33:53.26 ]
自前の使い捨てスクリプト書くときは便利だし。
パッケージとして作るものに (require 'cl) するなって意味だったような。


365 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 00:51:35.45 ]
> バカと馬鹿げているではニュアンスがまるで違う

単語だけ切り出したらそう思うかもしれないけど、
全体の文脈からしてかなり烈しい内容だったと思うけどな。
この辺が幼稚な印象を強くしちゃうんだよ。rbktせんせ。


366 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 00:58:58.98 ]
なんで subr に入れないんだろうね。
find-if とかの cl-seq の中身便利なのに。

367 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 01:07:28.40 ]
文字数をモード列に表示することはできるのでしょうか

368 名前:名無しさん@お腹いっぱい。 [2011/12/31(土) 02:34:37.32 ]

>>364
すみません、私はcl.el大好きなんですが、
eval-when-compileで囲んでもやはり使うべきではない、
というのが現在の一般的な意見、ということになっているのでしょうか?

>>366
RMSがキーワード引数が好きではないから、という説を
どこかで聞いた気がします。


369 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 02:41:52.98 ]
FMV-BIBLO LOOX(6インチモニタのノート)でemacs常用している猛者はいないか?
買うかどうか悩んでるんだ。ソースコード編集してC-c C-cで部分実行するだけならこの画面で十分な気がするんだけどどうだろ

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 02:51:04.54 ]
(eval-when-compile (require 'cl)) して使っていいのがCLマクロ
使っちゃダメなのがCL関数
じゃないの?



371 名前:名無しさん@お腹いっぱい。 [2011/12/31(土) 04:32:15.06 ]
Richard Stallmanは以下のように書いているのですが、

The rule against using CL functions at run time is for the sake of the
user. The CL functions are not a standard part of the Emacs Lisp
namespace. Thus, loading CL can conflict with the user's function
definitions.

subr.elでdefunされているremoveと、
cl-seq.elでdefunされているremove-ifとでは、

「can conflict with the user's function definitions」という点で
どのような違いがあるのでしょうか。


372 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 09:34:41.01 ]
皆でガンガンclの関数使って形骸化させようぜみたいなのにならなかったのだろうか

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 09:38:21.89 ]
clの実装は小汚いからな。
喜んで使うのは三流グラマだけ。

374 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 09:52:56.96 ]
>>371
subr.el で定義されている -> ぶつかったらユーザの責任
cl.el で定義されている -> ぶつかったら cl.el をロードしたやつの責任

という点で異なる

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 10:01:45.63 ]
下手に準拠唄うとアレがダメだこれがダメだと重箱の角ツツク
ゴミッカスが喜び勢い付くだけだからね〜

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 10:18:28.75 ]
anythingに関しても今のところはつっこまれてないだけで、これからつっこま
れる可能性は高いよね。ところでanythingの標準添付の作業ってどこでされて
るんだ?trunk見ても見当たらないんだけど。

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 11:45:32.41 ]
きちさんの脳内じゃない?
cedet もそうだけどあえて一緒にしない方がいいパッケージってあるよな

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 13:02:19.33 ]
アレが添付されると臭くなりそうだな。

379 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 13:08:23.97 ]
emacs本体の一部として配布されるEmacs Lispコードの中でremove-ifを使いたいという要求があったとして、
仮にremove-ifがcl-remove-ifという名前でcl-seq.elでdefunされていたとすると、

-> ぶつかったらユーザの責任、なので
-> -> emacs本体の一部として配布されるEmacs Lispコードでeval-when-compileで囲まずに(require 'cl)してOK

と言えるんでしょうか?

あるいは、remove-ifがマクロなら(eval-when-compile (require 'cl))して標準配布物内で使ってOK、だとして、
remove-ifをマクロとして再実装するのはすごくたいへんなんでしょうか?


380 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 13:14:40.25 ]
そういや remove-if の実装どうなってんだろと思ってみにいったら
関数に cl-* の接頭辞が付きまくってて目眩がした
ネームスペースの仕組みあればねえ。



381 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 14:00:39.92 ]
c--がよくわかりません
describe-keyで調べたらこう出ました

(negative-argument ARG)

Begin a negative numeric argument for the next command.
C-u following digits or minus sign ends the argument.

具体的にはどういうことなのでしょうか
使い道を知りたいです

382 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 14:12:24.79 ]
>>381
C-- 数字 コマンド でそのコマンドに -数字 の引数を与えられるってこと。
C-- 3 C-p とかやると 三行「下に」移動する。

383 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 14:31:15.96 ]
>>382
なるほど、C-uの繰り返しがデフォルトで4となっていましたが、
それの基本的な機能なのですね
わかりました

384 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 14:34:32.20 ]
>>383
C-- はあくまで負の数な。
正の数の動作が基本だから
C-3 C-p とか M-3 C-p とかの方が普通。

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 14:56:23.71 ]
>>293
え、POSTできるけど……

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 15:01:55.78 ]
フォントを設定するとき、ある family に属するフォントが無い場合、別の family を使う、というのを実現するのに
以下のような関数を作ったのですが、もっと妥当なやり方があれば教えていただけると助かります。

(require 'cl)
(defun safe-font (&rest family-list)
"有効なフォントファミリを返す。"
(find-if (lambda (f) (find-font (font-spec :family f))) family-list))

(set-face-attribute 'default nil
:font (safe-font "あずきフォントL" "MeiryoKe_Console" "MS Gothic" "mono"))


387 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 15:02:52.09 ]
>>385
>>359

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 15:10:04.48 ]
flet で作ったローカルな関数をスコープから外れてからも呼ぶ方法はありませんでしょうか?
具体的にはこんな感じです。

(flet ((greeting (msg) (message "%s" msg)))
(defun say-hello ()
(greeting "hello"))
(defun say-good-bye ()
(greeting "good bye")))

(say-hello) ;; greeting が無いって怒られないようにしたい
(say-good-bye) ;; 同上
(greeting "nono") ;; でも greeting は外から見せたくない

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 15:24:12.63 ]
>>388
flet の代わりに labels を使う。
ダイナミックスコープとレキシカルスコープを調べるべし。

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 15:24:53.27 ]
macroletなら。

Emacsの関数はただのlambda式(か、それをバイトコンパイルしたもの)なので、
fletじゃ無理。実行時にgreetingが見えなければエラーになって終わり。



391 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 15:36:12.19 ]
>>389
ありがとうございます。macrolet だとマクロとしてその場に展開、
labels だと文脈依存の関数としてちゃんと関数として定義されるってことですね。

レキシカルとダイナミックを見てて思ったんですが、
純粋なローカル変数を使いたい場合は let より lexical-let を使うべきな気がするんですけど
(内部の関数で参照しているシンボルを不用意に束縛しないため)
そういう認識であっていますか?

392 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 15:44:04.23 ]
いや。クロージャとして持ち出したい場合以外は普通のletの方がいい。
なぜならEmacsには基本的にそっちしかないから。

レキシカルスコープは擬似的なものなんだよ。
基本的にはgensymで作った「変な名前の内緒のグローバル変数」に
値や式を持っておいてそれをsymbol-valueで取り出す。
labelsにせよ、lexical-letにせよ、適当な式をmacroexpand-allすればわかる。

393 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 16:17:46.66 ]
>>392
なるほど。そうすると let で使うシンボル名は
せめて既に使われているようなのを不用意に使わないよう気をつけるしかないですか。


394 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 21:45:31.70 ]
次のようなテキストファイルがあります
Test1243
(@import "./foo/foo.txt")
(@import "/usr/mytext.txt")
Pipipi
テキスト中に(@import path)と書いてある時はPathのファイルを埋め込んで別のテキストファイルとして出力したいです
Elispの正規表現でpathの文字列を取り出すのは分かるのですが
ファイルを読み込んだ上でファイルを作るのが良くわかりません
よろしくお願いします



395 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 22:00:24.55 ]
こんな感じのこと?

;; 文字コードてきとー
(defun hoge-func ()
(let ((in (read-file-name "入力ファイル: "))
(out (read-file-name "出力先ファイル: ")))
(with-temp-buffer
(insert-file-contents in)
(goto-char (point-min))
;; 正規表現てきとー
(while (re-search-forward "(@import \"\\([^\"]+\\)\")" nil t)
(let* ((fn (match-string 1))
(contents (save-match-data
(with-temp-buffer
(insert-file-contents fn)
(buffer-string)))))
(replace-match contents nil nil nil 0)))
(write-region (point-min) (point-max) out))))

396 名前:名無しさん@お腹いっぱい。 [2011/12/31(土) 22:22:46.05 ]
emacsのtext-modeで、タブを押したときにインデントを、
前の行には関係なく、一定量に設定するにはどうすればよいでしょうか?
(1)ではなく(2)となるようにしたいのですが。

(1)前の行を参照するタブ
123456789 abc
      ←スペースの後の位置に移動

(2)タブの移動量を8に
123456789 abc//
     ←ここに移動

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 22:32:56.01 ]
よーわからんけど C-q C-i でタブ文字強制入力じゃだめ?

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 22:33:24.10 ]
C-q TAB で純粋にタブ移動できるけど恒久的にやる方法はちょっとわからない。
というかいつの間に indented-text-mode = text-mode になってたんだ・・気づかなかった。


399 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 22:41:12.31 ]
もっとまともな方法があるとは思うけど↓でtext-modeのTABは強制的に\tになる。
(add-hook 'text-mode-hook
(lambda ()
(setq indent-line-function (lambda () (insert " ")))
))


400 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 22:41:52.06 ]
" " のところは C-q C-i でタブが入力されてると思ってくれ。



401 名前:396 mailto:sage [2011/12/31(土) 22:54:22.58 ]
>>397-400
ありがとうございます。
>>399
これで完璧に解決しました。とても助かりました。

402 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/31(土) 23:11:00.92 ]
TAB関連で
tab-to-tab-stop の文字位置へ移動するにはどんなコード書けばいいんだろう?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<216KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef