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


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

【叩かれて】Emacs Lisp道場【強くなれ】



1 名前:おっす [03/09/18 19:29]
なんとなくEmacs 触り始めて、なんとなくelispにも手を出して
しまったアナタ。

なんとなく書いてしまったコードをココに書き込んで叩かれましょう。
タタカレテツヨクナレ。

年季の入った玄人衆は、もしアドバイスできたらお願いします。
いや、叩きついでにでも。

とりあえず入門書は
ttp://www.netfort.gr.jp/~kiyoka/emacs_setq/emacs_setq.html
ttp://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp.html

リファレンスマニュアルは(ちと古い)
ttp://www.fan.gr.jp/~ring/doc/elisp-manual/elisp.html

とか、新しいのは(でも英語)
ttp://www.delorie.com/gnu/docs/elisp-manual-21/elisp.html

ではひとつ、コード中心の熱いバトルをよろぴく。


81 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 07:53]
初心者 寄せ集めでも.emacsを作れて、キーバインドができる
初級者 正規表現を操れて、簡単なelispが書ける
    listを自由自在に操れて、人の書いたelispを書き直せる
    マイナーモードやメジャーモードをスクラッチから書ける
中級者 Emacsにパッチをあてはじめる
上級者 Emacsをスクラッチから書ける

82 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 16:29]
中級は尊い。

83 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 17:58]
>>79
> (add-hook 'foobar-mode-hook #'(lambda () (show-paren-mode 1)))

(add-hook 'foobar-mode-hook (lambda () (show-paren-mode 1)))
ではないの?


(defmacro lambda (&rest cdr)
:
(list 'function (cons 'lambda cdr)))
だじょ。


84 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 18:18]
>>83
訂正するほどじゃない。

85 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 18:21]
スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。

86 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 18:42]
#' を付けるほうが好きだけど、
nemacsからも利用する設定ファイルには使えない悲しさ。

87 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/16 19:01]
>81 漏れはいまだ初心者でつね


88 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 01:53]
>>81
上級者というのはxyzzyの亀井さんくらいのレベルなのか…。
道は遠い…というより一生かかってもムリ


89 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 21:16]
初心者 寄せ集めでも女を集めて、ハーレム を作れる
初級者 性器表現を操れて、簡単なエロ本が書ける
    チムポを自由自在に操れて、人に汚された女を調教し直せる
    S モードや M モードをスクラッチから調教できる
中級者 少女の頃から育成をはじめる
上級者 女を卵子から作り始める




90 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 21:25]
>>89
はい、それから〜

91 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 21:34]
定義厨は失せて。

92 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/21 14:05]
>>91
なんか Emacsスレのほうに飛び火してるみたいだが。

93 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/21 19:38]
>>89
初心者のハードルやけに高いな、おい。

94 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 10:54]
>>85
> スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。

www.mew.org/~kazu/doc/elisp/function.html


95 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 11:11]
>>94
結局「スタイルの問題」じゃないの?

96 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 11:26]
>94
kazuのeispは信じられない程アレなので参考にならない。


97 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 11:43]
#' ではなく ' を使うと、バイトコンパイルされない場合がある。ってことでしょ。

98 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 11:51]
>>96
あ、mew 使ってないんでよく知らないんだけどどのへんがアレなの?

99 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/22 13:34]
>>97
でもこのスレでは生のlambdaと functionで囲んだのだけ扱ってて、
quoteは関係無かったからさ。なのに 94が変な反応するから。



100 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/23 12:00]
今日、はじめて包囲アドバイスなるものを使ってみマスタ。
強力すぎてちょっと怖いけど、試しに

;; デフォルト動作でそのウィンドウも消すようにする。
(defadvice quit-window (around kill-window-adv activate)
"quit-window with kill selected window"
(unless (ad-get-arg 1)
(ad-set-arg 1 (selected-window)))
ad-do-it)

こんな風なのを書いてみた。
たとえばapropos のウィンドウで q したときなんかはウィンドウが消えてくれます。
コレ一発で vc の log ウィンドウなんかもそんな挙動になってくれるからスゴイ楽でし。

でもやっぱし怖いす。

101 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/23 14:51]
包囲アドバイスって訳語は、日本語infoで使われちゃっていますけど、
あまり良さそうに思えないですね。語感が合わなくて。


102 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 06:20]
>>96
> kazuのeispは信じられない程アレなので参考にならない。

どのへんが?

103 名前: ◆kXMewIMy86 mailto:sage [03/10/24 06:28]
ま、いろいろとね。。。

104 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 08:30]
>>103
FUD?

105 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 12:41]
>>104
そうとも言いきれなさそうだから困る。
リスト遊びの評判もだが。


106 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 14:45]
>>105
広瀬さんの本はどう?

107 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 17:10]
「リスト遊び」は純粋にとても良かったと思うが。
mewは使ってないからコードの評価はしないけど。

108 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 20:33]
2章を頭からちょっと読んでみたが

- nil を偽値として紹介した直後に not でなく null を紹介。
その後で空リスト。
偽値と空リストがごっちゃになってる taste がしてイヤでつ。
同じ lisp ばかりじゃねえんだぞと。

- predicate は「述語」でなしに「断言する」でよかったんだっけか?

- "\n" が改行文字にすりかわるのは評価じゃなくてリーダーの問題だろ
\n ならいいけど \\ が出てきたらこんな理解で困るんじゃないか。
regexp を扱うようになったらパニックだろ。

とか考えた漏れは逝ってよしでつか


109 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 20:50]
でつ



110 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 20:54]
>>108
> 同じ lisp ばかりじゃねえんだぞと。
違う Lisp 知らない。教えて。
Scheme は Lisp じゃないし。

111 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/25 09:12]
>>99
まだ理解できていないようで・・・


112 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/25 09:30]
>>111
あのー、罵倒されても構いませんから、
(lambda ...)

(function (lambda ...))
で具体的に何が変わってくるのか、
もうちょっと詳しく教えてください。
俺の理解では、バイトコンパイルされてしまえば同じ。
そのままだったら、functionのほうがマクロ展開ないぶん、
微妙に速いかもしれない(俺の勝手な推測)というところなんですが。
# quoteの場合が違うのは分かっています。

113 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/25 14:44]
それでいいんじゃないの? 個人的には (lambda ...) よりも #'(lambda ...)
のほうがパッと見たときにわかりやすいので好み。

114 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/26 10:49]
時間がかかる処理をしていて、何かキーが押されたら中断する、ということを
考えています。試しに下のようなのを書いてみました。
(defun g ()
(interactive)
(let ((i 0))
(while t
(setq i (1+ i))
(when (input-pending-p)
(keyboard-quit)))))

これはうまくいきました。

今、やりたいのは 上記のwhile部分がブラックボックス扱いのときで、
(defun heavy-proc ()
(let ((i 0))
(while t
(setq i (1+ i)))
i))

という関数の中身を変更せずに、呼び出した後でキー入力があれば中断して戻
るということがしたいのです。割り込みのような感じです。
(defun f2 ()
(interactive)
(condition-case nil
(heavy-proc)
.....

とやればいいのかなと思ったのですが、肝心のキーが押されたらエラーを発生
するやり方がさっぱり見当がつかないのです。
なにか良い方法を知っておられましたら、教えてやってくださいまし。


115 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/26 11:42]
>>114
condition-case で quit 取るんじゃだめなん?


116 名前:114 mailto:sage [03/10/26 18:05]
>>115
アドバイスありがとうございます。

(defun heavy-proc ()
(let ((i 0))
(while t
(setq i (1+ i)))
i))

(defun f2 ()
(interactive)
(condition-case nil
(heavy-proc)
((quit)
(message "aborted."))))

こういうことでしょうか。
これだと、C-g以外のキーを押したときは中断できません。
もうちょっと練ってみます。

117 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/27 01:23]
全てのキーに signal発生させるよう設定したキーマップ使用すれば
いけるかも? signalの代わりに throwでもいいけど。

118 名前:114 mailto:sage [03/10/27 09:49]
>>117
試しにこうしてみましたが…

(defvar tmp-map nil
"temporary key map for aborting.")
(defun f2 ()
(interactive)
(let ((previous-keymap (copy-keymap (current-local-map))))
(if tmp-map
nil
(setq tmp-map (make-sparse-keymap))
(define-key tmp-map "a" 'keyboard-quit)
(define-key tmp-map "b" 'keyboard-quit)
(define-key tmp-map "c" 'keyboard-quit))
(use-local-map tmp-map)
(condition-case nil
(heavy-proc)
((quit)
(message "aborted.")))
(use-local-map previous-keymap)))

中断してくれない(^^;

119 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/27 10:25]
うーん、自分で bindした keyboard-quitと
C-g は扱いが違うって事なのかな?



120 名前:114 mailto:sage [03/10/27 11:47]
>>119
今度は以下のようにsignalを使ってみましたが…
(defvar tmp-map nil
"temporary key map for aborting.")
(defun my-quit ()
(interactive)
(signal 'quit nil))
(defun f2 ()
(interactive)
(let ((previous-keymap (copy-keymap (current-local-map))))
(if tmp-map
nil
(setq tmp-map (make-sparse-keymap))
(define-key tmp-map "a" 'my-quit))
(use-local-map tmp-map)
(condition-case nil
(heavy-proc)
((quit)
(message "aborted.")))
(use-local-map previous-keymap)))

相変わらず、中断せずでした。

edebugで追いかけてみると、キーマップ自体は変わってくれているのですが、
heavy-procを呼び出したらC-g以外をセンスしてくれないような感じがします
です。


121 名前:114 mailto:sage [03/10/27 12:30]
助言を元に調べました。
なんとなく分かってきた気がします。(気がするだけかも…)
(defun heavy-proc ()
(let ((i 0))
(while t
(setq i (1+ i)))
i))

(defun f3 ()
(interactive)
(let ((previous-keymap (copy-keymap (current-local-map)))
(previous-input-mode (current-input-mode)))
(set-input-mode t nil 0 ?a)
(condition-case nil
(heavy-proc)
((quit)
(message "aborted.")))
(use-local-map previous-keymap)
(set-input-mode (car previous-input-mode)
(nth 1 previous-input-mode)
(nth 2 previous-input-mode)
(nth 3 previous-input-mode))))

キーマップ再定義はせずに、上記のようにすると aキーで中断できるようにな
りますた。あとはこれを全部のキー文字に割り当てれば、と考えたのですが…

(set-input-mode t nil 0 '(?a ?b)) のような複数指定は不可
(set-input-mode t nil 0 nil) ではデフォルトのC-gになる

の様です。…もはや手詰まりか…

122 名前:114 mailto:sage [03/10/28 10:24]
ふと思い立って、
(keyboard-translate ?b ?\C-g)
とかやってみましたが、やはり中断してくれませんね。

コマンドループ内でC-gというのはかなりの特別扱いの感じがします。
こんなローレベルな関数が効かないなんて…。

# emvaders.elとかどうやってるのかな。ゲームなら割り込みみたいな処理を
してると思うんだけど。


123 名前:114 mailto:sage [03/10/28 10:53]
emvaders.elでは input-pending-pで処理してますた。
ゲーム的にはこのやり方は納得です。
にしても、ハマりすぎです。
誰かお願いです。ひとつ叩いてやってください。ガツンと。

124 名前:114 mailto:sage [03/10/29 15:54]
苦肉の策として、「最後に押したキーで中断する」というのを考えてみました。

(defadvice heavy-proc (before input-set disable)
(set-input-mode t nil 0 last-input-event))

(defun heavy-proc ()
(interactive)
(let ((i 0))
(while t
(setq i (1+ i)))
i))

(defun f3 ()
(interactive)
(let ((previous-input-mode (current-input-mode)))
;; enable advice
(ad-enable-advice 'heavy-proc 'before 'input-set)
(ad-activate 'heavy-proc)
(condition-case nil
(heavy-proc)
((quit)
(message "aborted.")))
;; disable advice
(ad-disable-advice 'heavy-proc 'before 'input-set)
(ad-activate 'heavy-proc)
(set-input-mode (car previous-input-mode)
(nth 1 previous-input-mode)
(nth 2 previous-input-mode)
(nth 3 previous-input-mode))))

ややこしいやり方になってしまいました。


125 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/29 16:16]
unwind-protect使ったほうがいいよ。

126 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/29 16:46]
なぜ C-g で quit がいやなのかようわからんが、アドバイスせんでも
(let ((previous-input-mode (current-input-mode)))
(unwind-protect
(progn
(apply #'set-input-mode
`(,@(butlast previous-input-mode) ,last-input-event))
(heavy-proc))
(apply #'set-input-mode previous-input-mode)))
でいいような。


127 名前:114 mailto:sage [03/10/29 17:56]
>>125, 126
助言、ありがとうございます。
今まで、unwind-protect は実際にどういう場面で用いるのかわかりませんでしたが、
なんかわかったような気がしますです。

> なぜ C-g で quit がいやなのかようわからんが、

bf-mode.elというelispをいじくっているのですが、html をw3mで表示したと
きに重いので、キャンセルの手段が欲しいと思ったのです。

128 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/30 01:09]
C-gでいいじゃん…


129 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/30 21:47]
ファイルへの出力ってどうやってするんですか?
とりあえずhoge.txtに"hoge\n"と書いて出力する程度でいいんですが。



130 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/30 21:53]
write-regionでいいじゃん…


131 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/30 21:58]
>>130
さんくす!
ググってもよく分らなかったもので。

132 名前:名無しさん@お腹いっぱい。 mailto:age [03/11/15 19:21]
【徹底的】プログラマーが語るviとemacs 7【バトル】
pc.2ch.net/test/read.cgi/prog/1064605855/

514 :仕様書無しさん :03/11/15 14:09
Vimの方がEmacsより速いとか言っていた馬鹿が居たなぁ
ttp://msdn.microsoft.com/seminar/shared/asp/view.asp?url=/msdntv/episodes/en/20031028lhorndb/manifest.xml&rate=1&WMPVer=9.0.0.3008

どう見てもEmacsの方が速いなプッ
以前のこれと比べてみろよ
ttp://seriss.com/people/erco/fltk-videos/tutorial-fltk-hello.html

ダセーーー(藁
なんか、Vim抜けてプロンプトでコンパイルしてまた開いてるよプッ
しかも、Emacsの方が断然速いな〜
いい加減乗り換えた方が良いんじゃねぇか(藁

それにしてもM$のプログラマホモくせーな

133 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/06 19:06]
もはや、このスレもこれまでか…
がんばってる同士はおらんのだろうか。

134 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/06 22:27]
2ch以外で頑張ってます。

135 名前:名無しさん@お腹いっぱい。 [03/12/07 17:16]
たとえば、それはどこなんでしょう?

136 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/10 02:40]
あのー質問なんですが,
あるファイルの内容を調査したい場合,Emacs Lisp だと
対象となるファイルを一旦 find-file とかで
全て読み込まなくちゃ駄目なんでしょうか…?

外部プロセスに逃げると言う手も考えましたが,
そんなものを使うよりは,Emacs Lisp のみで完結したいので…


137 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/10 03:10]
etagsとか?
ってか、どんな調査したいのかにもよるのでは?

138 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/10 10:17]
dired で % g

139 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/10 10:30]
全部読まなくても
(insert-file-contents FILENAME &optional VISIT BEG END REPLACE)
でファイルの一部だけを読む事ができるよ。



140 名前:136 mailto:sage [03/12/11 23:27]
御回答どもです

>>137
どんな調査ってのはイロイロあるものの,
コレさえ解決できればってのは無くて,
要は,

open→無視して良いデータは破棄しつつ満足するまでread→close

ってのをやりたいだけでして…

>>139
ありがとうございます。
info読みなおしました…
今まで如何にイイカゲンに読んでたかを思い知りますた…
名前付きパイプとかも読めちゃうんすねコレ…


141 名前:名無しさん@お腹いっぱい。 [03/12/26 16:20]
一つの関数でλを定義する数は何個ぐらい許されるんでしょうか?

142 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/26 17:03]
なにがしたいのか分からんが、とりあえず作ってみたら?
もっと意図を明確にしたうえで、ム板のスレで質問するのがいいと思うが。

143 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/26 22:02]
(defun newschangelog (start end)
"ChangeLog中の不必要な部分を削除"
(interactive "r")
(save-excursion
(save-restriction
(narrow-to-region start end)
(goto-char start)
(replace-regexp "^[ \t]*.*STRONG.*" "")
(goto-char start)
(replace-regexp "^ *<A HREF.*" "")
(goto-char start)
(replace-regexp "</A></DT>" "")
(goto-char start)
(delete-matching-lines "^$")

(goto-char start)
(replace-regexp "^[ \t]*" "\t")
)))

* news/index.html: 記事追加
★ PTCジャパン、Linux対応Pro/EをLinux World Expoに参考出品</A></DT>
<DT><STRONG>日経BizTech</STRONG>
<A HREF="biztech.nikkeibp.co.jp/wcs/show/leaf/CID/onair/biztech/comp/247927">
日本SGI、Linux向けのシステム構築支援サービス</A></DT>
<DT><STRONG>c|net</STRONG>
<A HREF="japan.cnet.com/svc/rss?id=1261.47623.54525">
日本国内のLinuxサーバ市場:ビジネス利用には課題が多い</A></DT>


上記★から☆までがリージョンに指定されている状態だとします。このとき、
カーソルが★にあるのか☆にあるのかで、M-x newschangelog の結果が異なり
ます。

144 名前:143の続き mailto:sage [03/12/26 22:03]
具体的には、カーソルが☆にあると
PTCジャパン、Linux対応Pro/EをLinux World Expoに参考出品
<DT><STRONG>日経BizTech</STRONG>
日本SGI、Linux向けのシステム構築支援サービス
<DT><STRONG>c|net</STRONG>
日本国内のLinuxサーバ市場:ビジネス利用には課題が多い
となり、カーソルが★にあると
PTCジャパン、Linux対応Pro/EをLinux World Expoに参考出品
日本SGI、Linux向けのシステム構築支援サービス
日本国内のLinuxサーバ市場:ビジネス利用には課題が多い

となります。
希望する結果は、カーソルが★☆のどちらにあっても
PTCジャパン、Linux対応Pro/EをLinux World Expoに参考出品
日本SGI、Linux向けのシステム構築支援サービス
日本国内のLinuxサーバ市場:ビジネス利用には課題が多い
のようになることです。添削おねがいします。


145 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/26 23:41]
なんか例示されてるのと違い、空行が入ってしまうなーと思ったら、
transient-mark-mode かどうかで挙動が違うな。
で、offにして試してみたけど、どちらも okっぽかったけれど。

146 名前:143 mailto:sage [03/12/27 00:21]
検証ありがとうございます。おっしゃるとおり、手元の Emacs 20.7.2 を
\emacs -qで起動すると、★☆どちらにカーソルがあっても希望の結果になり
ました(transient-mark-mode t/nil のどちらも)。
ところが、XEmacs 21.1 を \xemacs -q で起動させて確認したところ、
transient-mark-mode t/nil どちらの場合も 144 に書いた結果になるのです。

常用しているのは XEmacs なので、それで希望の結果が出て欲しいのです。
皆様のアドバイスをいただきたく思います。よろしくお願いします。


147 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/27 05:08]
replace-regexp を
(while (re-search-forward REGEXP nil t)
(replace-match TO-STRING nil nil))
にすれば直るはず。
特別な理由がない限り lisp program 中で replace-regexp は使わないほうが
いいです。 perform-replace を参照。

148 名前:143 mailto:sage [03/12/27 22:46]
147氏のおっしゃるように修正したところ、XEmacs, Emacs の両者で
希望の動作をしてくれるようになりました。ありがとうございます。


149 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/04 14:13]
>>1 のelispリファレンス-ja
ttp://www.fan.gr.jp/~ring/doc/elisp-manual/elisp.html

は 27章 ウィンドウ がまるごと抜けてるからちょっと不便ですた。

ちょっと探したら、
www.i.kyushu-u.ac.jp/~s-fusa/doc/elisp-manual-20-2.5-jp/elisp-ja.html

を発見。こっちはちゃんと27章があるじょ。
スタイルシートでカラフルで見やすいなり。

にしても、emacs21版のelispリファ-ja は まだどこにもないんでしょか。



150 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/04 14:43]
149が訳すことにケテーイしますた。

151 名前:名無しさん@お腹いっぱい。 [04/01/04 16:33]
がんがれー

152 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/04 17:13]
www.gnu.org/software/emacs/elisp-manual/html_chapter/elisp_51.html#SEC729
これだけ訳せばいいんだろうか?

153 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/05 19:56]
>>152
駄目.

www.i.kyushu-u.ac.jp/~s-fusa/doc/elisp-manual-20-2.5-jp/elisp-ja_1.html#SEC4

にあるように,日本語は改変が認められていません.

故に公開したければ,全文を訳し直す必要がある.


154 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/05 21:01]
その GPL 和訳の由来はここ。
www.sra.co.jp/public/doc/gnu/gpl-2j.txt
これにも同じく
> ・和文文書の本文を改変しないこと。
とある。つまり、禁止してるのは「GPL の和文本文」の改変であって、
Emacs Lisp Reference Manual の和文ではない。
そもそも、元の文書が GPL なのだから改変禁止は不可能。

155 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/05 23:46]
恐ろしいほどの部分引用だな

156 名前:名無しさん@お腹いっぱい。 mailto:asage [04/01/23 04:41]
asm-mode で新規作成/既存ファイル開く、でファイル先頭に;(コメント文字) が
自動的に挿入されてしまうんだけど、これを抑制する方法ないでつか?

157 名前:名無しさん@お腹いっぱい。 mailto:sage [04/01/23 09:11]
それだけでは、うちではそんなことはないとしか言いようがないよ。
それは本当にasm-modeが入れているものなのかな?



158 名前:名無しさん@お腹いっぱい。 mailto:156 [04/01/23 11:26]
-q つけて起動したら再現しませんでした…出直してくるぽ。

新規作成したバッファの状態を監視しつつ
edebug でステップ実行したいんですけど、
バッファが見当たらない… asm-mode が
呼ばれたときはバッファが存在してるはずでつよね?



159 名前:156 mailto:sage [04/01/23 11:29]
まちがえて age ちゃった。 ごめんでつ。>>158>>156 です。



160 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:00]
最近の elisp では when とか unless とか出て来るんですけど、
わたしは while と if と cond くらいしか使いません。
when, unless の利点は何ですか?

161 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:01]
>>160
progn 使わなくていい

162 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:29]
whenとあったとき、ifと違い条件の成立しなかった時の処理はないのだと
一目で分かる。

163 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:38]
欠点はいらんのか

164 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/02 02:45]
別に ifと置換えとかじゃないし、単純すぎる構文だから欠点もなにも……。

165 名前:160 mailto:sage [04/02/02 02:55]
ってことは別に無理して使わなくてもいいってことか。
マクロってよくわかんないけど subr.el 見たら、if に置き換えてるだけみたいね。



166 名前:名無しさん@お腹いっぱい。 [04/02/06 02:12]
navi2chなんかで、エンター押したらその行に関係する動作をする機能を作るには
何を使えばいいのでしょうか。
key map を使うのかと思ってnavi2chのソースをみたのですが、
define-key map [return] という行は見つかりませんでした。


167 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 03:23]
そのレベルの質問なら、navi2chスレのほうが適切と思うが。

168 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 04:15]
(define-key map "\r" 'navi2ch-article-select-current-link)

169 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 04:45]
今回の場合、describe-key で returnに対応するコマンドを調べて、
それを元に grepすれば >>168が見つかりますな。



170 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 11:48]
C-h w RET

171 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 11:49]
w じゃなくて k だ

172 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 12:08]
ある関数内で auto-compression-mode を有効に束縛したいんですが

(let ((auto-compression-mode t))
(insert-file "foo.gz"))

じゃ駄目なんですね。

(let ((current auto-compression-mode))
(auto-compression-mode t)
(insert-file "foo.gz")
(auto-compression-mode current))

こうすべきもんなんでしょうか。なんかもっとスマートな方法ありますか?

173 名前:166 mailto:sage [04/02/06 12:15]
>>167-171
みなさんありがとうございました。
勉強になりました。
[return] ではなくて"\r"で定義してあるんですね。


174 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 12:21]
>>172
> じゃ駄目なんですね。
変数じゃないならだめだよ。

175 名前:172 mailto:sage [04/02/06 12:36]
>>174
いちお変数でもあるんですけどね、って今見てみたら docstring に
Setting this variable directly does not take effect;
と書いてあった…失礼しますた。やっぱあんな方法でやるしかないのかなあ。

176 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 13:23]
with-auto-compression-mode

177 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/06 18:24]
>>176
おーありがとうです。こんなのがあったのか。感謝。

178 名前:名無しさん@お腹いっぱい。 [04/02/06 22:10]
emacs21のtool-bar にあるプリンタアイコンはprint-bufferですが、
これを.emacsでpostscript-print-bufferに変えたいんですが、どうやれば
良いすかね?


179 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/07 00:26]
(setq tool-bar-map (delq (assq 'print-buffer tool-bar-map) tool-bar-map))
(tool-bar-add-item-from-menu 'ps-print-buffer "print")
でどうでしょ



180 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/09 16:51]
空のファイルを作成したいのですがどうやればいいんでしょうか?
動作としては↓のような感じです。
% touch hoge
(hogeというファイルは存在していないとして)

181 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/09 17:27]
(write-region (point-min) (point-min) "hoge" t)






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

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

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