[表示 : 全て 最新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

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


471 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 21:41:54 ]
書いてて自己矛盾してるのに気付かないもんかね、まったく。

472 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:00:32 ]
結論: 句読点に , や . を使うやつはおかしなひとがおおい

473 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:02:07 ]
この辺で雑談終わりにしないか

474 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:10:04 ]
>>472
私も句読点は「,」「.」にしてるよ.日本語の論文誌では
そう指定されることが多いから,私の周りでもそういう人は多い.
君はきっとそんな世界とは無縁なんだろうね.




475 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:18:53 ]
texの時だけそうしてる。

476 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:21:42 ]
大学院に行くやつはたいてい就職できなかったやつ。

477 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 22:44:20 ]
TeXの場合はその方が見栄えがいいから「, 」「. 」だけど、それとてASCIIコードの方だしなあ。
なんにせよ、場もわきまえずに関係の無いことをグダグダと垂れ流し、
挙句の果てには「私も」なーんて他人の振りして自己弁護するような池沼だということだけは分かった。

478 名前:460 203-179-90-199.cust.bit-drive.ne.jp mailto:sage [2005/05/29(日) 22:59:38 ]
ID がでないので証拠はありませんが,私は>>470 を最後に書き込みはしてお
りません.私の書き込みは,fill-region で整形してありますので,句読点以
外でも見分けがつくのではないかと思います.私の批判をなさるのは皆さんの
自由ですが.

(それにしても,私はよく自作自演の誤解を受けます.理由はわかりませんが,
>>474さんには申し訳ありません)

ただ一点だけ,>>471 の書き込みの「自己矛盾」という言葉が何を指している
のか,しばらく考えましたがどうしてもわかりません.よろしかったら,矛盾
点をご指摘いただけたら幸いです.皮肉でなしに,真剣に知りたいのです.

もし,お教えする価値がないと思われましたら,このレスを最後に,スレ本来
の流れに戻していただければ幸いです.

479 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:04:19 ]
460よりもこいつ↓の方が断然好ましいと思う。つか気に入った。
 |:::|::|__    、-'''"´ ̄ ̄`"''''-、   __|_::::||
__|::::|::|_|_   / /       \ \|::::||;;;||..  ___ .___
m|::|::|::::|_/   ● ,,.  .,, ●    ヽ:||::::::_|__|_ | |iiii
::::||::::|;;;;;|.     (__人__)     |目;;‖|≡| ̄|iiii
::::||::::|旦''-、、,,,,,,______,,,,,,、、-'' 超巨大ショボーン




480 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:05:45 ]
xyzzy-lispってなぁ…


481 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:24:45 ]
>>477
> TeXの場合はその方が見栄えがいいから「, 」「. 」だけど、それとてASCIIコードの方だしなあ。

日本語の論文では,ASCIIでなくて全角の「,」「.」を指定されるんだけど.
君はほんとに何も知らないんだね.Fランク大の出身者でしょうな.


> なんにせよ、場もわきまえずに関係の無いことをグダグダと垂れ流し、
> 挙句の果てには「私も」なーんて他人の振りして自己弁護するような池沼だということだけは分かった。

最早このあたりになると哀れというか見っともないというか・・・
自作自演じゃないんだけどね.まあ,君のような頭の悪そうな人に
どう思われてもかまわないけど (笑)



482 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:37:09 ]
結論: 句読点に , や . を使うやつはおかしなひとがおおい


483 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:42:41 ]
>>481 は学歴しかとりえがない社会不適合者かな?
大学はこういうやつを隔離しておくところ。
ずっと入院して、永遠に退院してこないでください。:-)

484 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:43:59 ]
いつまで続けんのよ。

485 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:44:02 ]
>>481
これはどっちのキャラで読んだらいいのかな。
フシアナしてないから「弁護する他人」キャラ?
>>479
いいよな。初めて見た。

486 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/29(日) 23:44:19 ]
:-) ←とかいう顔文字を使う奴が自分は社会に適合できてると思ってるのが笑える

487 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 01:19:50 ]
なんで山崎スレでテストしてんだ>>478は。
pc8.2ch.net/test/read.cgi/unix/1111372352/17

488 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 02:22:12 ]
>>481
日本語の論文って、あんた、Gランク大ですか?
島国根性まるだしですね。

489 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 07:10:51 ]
>>488
はあ? いま日本語の論文の話題をしてるんだろ?
なんで突然英語の論文の話題になるの? ふつーは論文を英語で
書いてるよ,そんなの言うまでもないじゃん.
得意げに島国根性だってよ (苦笑).馬鹿と話すと疲れるね.







490 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 07:49:04 ]
>>489
(add-hook 'yatex-mode-hook
(lambda ()
(require 'skk)
(setq skk-kutouten-type 'en)))
とでもしとけ。

491 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/30(月) 09:16:54 ]
結論: 句読点に , や . を使うやつはおかしなひとがおおい

492 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/31(火) 02:23:52 ]
日本でまともな研究しているやつっているの?

493 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/05/31(火) 16:16:20 ]
まともな研究したいやつは皆アメリカへ行く。

494 名前:Zeno ◆5nZQbNmQPs [2005/06/01(水) 21:51:38 ]

                    :)
________________________________________________________
セオドア・カジンスキー 「産業社会とその未来」 (aka. マニフェスト) の抜粋
www.cnn.com/US/9509/unabomber/09-19/am/excerpt.html

495 名前:名無しさん@お腹いっぱい。 [2005/06/14(火) 21:04:19 ]
M-x で呼び出せる関数書いたんですが、
それに C-u を前置しても4回連続で実行とかしてくれません
ESC [任意の数字] でも同じ
複数回連続動作させたい場合は、何か特別な事をしなくちゃならないんでしょうか?

496 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/14(火) 21:20:07 ]
(interactive "p")

497 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/14(火) 21:25:33 ]
>>495
特別なっつーか、引数を自分のやりたいように処理してやんなきゃ。
その前置引数を見てその回数だけ繰り返すように関数を書かないと駄目っしょ。
C-u を前置すると Emacs が勝手に繰り返してる訳じゃなくって、C-u が渡さ
れたら繰り返すように関数が作ってある訳で。


498 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/14(火) 22:11:40 ]
>>496-497
すんません。そのようですね
www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp_12.html#SEC130
今この辺見て勉強してるんですが、何故だかうまくいかねっす
もう少しやってみます

499 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/14(火) 22:28:00 ]
(defun hoge (n)
(interactive "p")
(dotimes (i n)
(insert "hoge")))



500 名前:498 mailto:sage [2005/06/14(火) 23:26:34 ]
一応解決しました
ifの使い方で躓いてただけだった
perlとかCみたいに{}で複数行をひとまとめにできないんで

>>499
ありがとうございます
dotimesなんてものもあるんですね

関数もっと知ってれば結構書けるんじゃないかな、とか思っちゃってる俺
ネット上に結構充実したリファレンス(しかも日本語訳されてる)とかあるし、
金出さなくても勉強できそう

501 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/15(水) 00:46:14 ]
emacs lisp は info のヘルプが超便利だと思うよ。

502 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/15(水) 01:28:29 ]
そだね
いろんな日本語のinfoを捜して、
それ読むだけでもいいんじゃない


503 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/23(木) 13:33:40 ]
lisp 以下のソースを見たらいいんじゃない?
使用したい function の使用例として。

504 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/25(土) 10:23:50 ]
文字列で与えられたシンボルを束縛したいんだけどどうやればいいでしょうか。

font-lock-mode => t

(let* ((bound-str "font-lock-mode")
(intern-soft bound-str))
font-lock-mode)
=> t

これじゃ駄目だし orz

505 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/25(土) 10:32:34 ]
eval すればいい
(let ((bound-str "font-lock-mode"))
(eval `(let ((,(intern bound-str) nil))
font-lock-mode)))
=> nil
よく使うならマクロに
(defmacro hoge (str value &rest body)
(let ((sym (intern (eval str))))
`(let ((,sym ,value))
,@body)))
(let ((bound-str "font-lock-mode"))
(hoge bound-str nil font-lock-mode))
=> nil

506 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/25(土) 11:09:42 ]
>>505
おおー、できました。
eval すりゃいいのか…ってまだよく理解できてないけど。感謝。

507 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/26(日) 18:11:07 ]
eval 必要ないみたい。
(defmacro let-string (str-value-list &rest body)
`(let ,(mapcar (lambda (sval)
(list (intern (car sval)) (cadr sval)))
str-value-list) ,@body))
(let-string (("font-lock-mode" nil)
("test" 11))
(cons font-lock-mode test))
=> (nil . 11)


508 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/26(日) 18:24:34 ]
eval 無いと
(let ((bound-str "font-lock-mode")) (let-string ((bound-str nil)) ...))
みたいに使えないよね。
文字列リテラル書けるのなら最初からシンボルにすればいいんだから、
よそから持って来た文字列に値を束縛したいって話なんじゃないの?

509 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/26(日) 19:24:09 ]
すみません、書いてから気付きました。



510 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/07(日) 01:07:26 ]
hoge という関数が定義されているか調べるにはどのように書けばよいのでしょ
うか?

511 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/07(日) 01:22:09 ]
(fboundp 'hoge)

512 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/17(水) 15:11:54 ]
Linux板のAtok Wnnスレで放置されたんで作ってみた。
(defun to-hankaku ()
"change current word from zenkaku to hankaku"
(interactive)
(save-excursion
(push-mark)
(backward-word 1)
(japanese-hankaku-region (region-beginning) (region-end))
(pop-mark)))
(global-set-key "\M-n" 'to-hankaku)

どなたか叩いてくだひゃい。
本当に聞きたいのはWnn7eggで半角カタカナ入力できるか否かなんだが

513 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/17(水) 16:07:04 ]
普通、関数内部の処理では mark は使わない。
mark は基本的に、ユーザーが手動で region 指定したり移動したりするためのもの。
移動コマンドなんかで、あとでユーザーが使えるように push-mark しとくとか、そういうときに使う。

普段の処理で使うのは marker のほう。
でもこの場合は、その場で region 指定するだけだから、 marker も使わないで済みそうかな。

(save-excursion
(let ((end (point)))
(backward-word 1)
(japanese-hankaku-region (point) end)))

みたいな。

514 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/17(水) 17:00:47 ]
>>513
ありがとさんです。regionといっても
markしなきゃいけないわけじゃないんですね。
えらくすっきりしました。
またなんかあったらよろしく

515 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 20:15:39 ]
質問なんですが、例えば(decode-time)の結果のようなリストを
これまた例えば(sec minute hour day month)のような変数(のリスト)に
一気に代入するようなコマンドってないもんでしょうか。
Perlでいう
($sec, $minute, $day, $mon, $year) = localtime();
みたいなイメージなんですが。

あと、Emacs-Lisp Farm ていうMLがあるようですが
過去ログって見れないんでしょうか?

516 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 21:07:43 ]
間違った使い方な気がするけど、multiple-value-setqとか?
ログはMLはいってからコマンドメール投げれば取得できるよ。

517 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 21:31:55 ]
>>515
(apply (lambda (sec minute hour day month year dow dst zone)
...)
(decode-time))
とか CL 使うなら
(destructuring-bind
(sec minute hour day month year dow dst zone)
(decode-time)
...)

518 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 21:55:07 ]
>>516,517
レスどうもっす。
(setq num '(1 2 3 4))
(multiple-value-setq (a b c d) num)
みたいに簡単にできるのですね。助かります。
「間違った使い方」つうのが気になるけど、、。

(apply (lambda (sec minute hour day month year dow dst zone)
(message "%d年%d月%d日%d時%d分" year month day hour minute sec)
)
(decode-time))
として動くのは確認しました。が、当方未だラムダ式とかよくわかっていないので
じっくり考えてみようと思います。
とりあえずapplyのドキュメントを丸のみすれば
「(decode-time)で返されたリストを引数(リスト)としたlambda式が実行された」
ということですね?


519 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/21(日) 23:12:02 ]
間違った使い方な気が……っていうのは、
elispには多値はないのにmultiple-value-*を使ってるから。



520 名前:Zeno ◆5nZQbNmQPs [2005/08/23(火) 11:25:55 ]


            ユニバーサルな解釈など存在しない為
             間違った使い方など存在しない


_________________
If T is consistent then T !|- R_T
If T is consistent then T !|- ¬R_T. -- John B. Rosser

521 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/23(火) 12:55:11 ]
そういう考えだとあらゆる価値が平等に無意味になって
思考停止に陥るお。

522 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/23(火) 13:10:54 ]
思考する前に馬鹿を殺そう

523 名前:Zeno ◆5nZQbNmQPs [2005/08/23(火) 21:34:07 ]
Reply-to:>>521
          知っていた (る) 人の文調に似ている・・・
             君は吾がそう思っている人物か?

> そういう考えだとあらゆる価値が平等に無意味になって
> 思考停止に陥るお。

       人間は無限近くのチョイスを全て吟味するパワーはない為、
      結局はプラグマティク、若しくは他人が選んでいるチョイスを
                 選んでしまう。

   ただ 520 は「Lisp のような自由度の高い -- 故に創造性の必要とされる --
     言語でただ一つの解釈を強要するのは間違っているのではないのか」
            ということを伝えたかっただけだ。

> Reply-to:>>522
                  お前誰だよ
_________________
If T is consistent then T !|- R_T
If T is consistent then T !|- ¬R_T. -- John B. Rosser

524 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/23(火) 21:53:28 ]
520と523がみえない

525 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/24(水) 00:18:17 ]
見えないのが気になるならフィルタ使わないほうがいいよ

526 名前:521 mailto:sage [2005/08/24(水) 04:51:42 ]
よくわからんがニューハーフに知り合いはいないよ。

527 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/24(水) 11:37:34 ]
ゴキブリを見て見ぬふりする愚かさ

528 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/24(水) 13:29:28 ]
今は一匹なんだから叩いてつぶしちゃうよりは、
どっかに行くのを待ってもらった方がいい。

529 名前:Zeno ◆5nZQbNmQPs [2005/08/24(水) 13:45:30 ]
Reply-to:>>524 お前もな
Reply-to:>>526
> よくわからんがニューハーフに知り合いはいないよ。
                 人違いのようだ

Reply-to:>>528 お前誰だよ
_________________
If T is consistent then T !|- R_T
If T is consistent then T !|- ¬R_T. -- John B. Rosser



530 名前:名無しさん@お腹いっぱい。 [2005/08/24(水) 14:20:22 ]
Reply-to:>>529
                う   ざ   い

_________________
If T is consistent then T !|- R_T
If T is consistent then T !|- ¬R_T. -- John B. Rosser

531 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/24(水) 16:44:22 ]
インライン関数を変更した際、
それを呼出している関数(バイトコンパイル済み)に反映させる
手軽な方法はないでしょうか?
いちいち定義してるとこに飛んで評価するのは面倒なもので。

532 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/29(月) 14:30:23 ]
>>531
unload-featureとか使えない?
わたし自身、一度も使った事が無いから
良く分かんないけど。

533 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/31(水) 09:25:32 ]
テキストファイルを Emacs でバッチ処理して結果を stdout に吐きたいんです
が、

--- testout.el ---
(defun testout (file)
(insert-file-contents file)
;; なんか処理する とりあえずここではなにもしない
(princ (buffer-string)))
--- testout.el ends here ---

emacs -Q --batch -l testout.el --execute='(testout "in.txt")' > out.txt

とした時に、in.txt にある日本語が out.txt では化けてしまいます。(各文字
の頭に '\222' が付くみたい、ascii は大丈夫)

ちゃんと動かすにはどうすりゃいいでしょうか。

534 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/31(水) 10:32:55 ]
a) coding systemを設定する。
b) testout.elの中でout.txtに書く。



535 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/31(水) 10:38:22 ]
>>533
set-terminal-coding-system

536 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/31(水) 10:44:24 ]
stdout がファイルの場合は terminal-coding-system は無視されて
emacs-mule になるよ。なので 534 の b のようにするしかない。

537 名前:533 mailto:sage [2005/08/31(水) 18:13:37 ]
>>534-536
むむ、write-file するしかないのかあ。フィルタの類ではないとはいえちょっ
と意外な気も。まあ、関数内でファイルに書いてもなんとかなるのでそうしま
す。サンクスでした。

538 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/01(木) 17:23:05 ]
encode-coding-string したものを princ するのはだめか?
(未確認)


539 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/01(木) 23:28:29 ]
>>538
おお、なるほど。

(princ (encode-coding-string (buffer-string) 'euc-jp))

でやってみたら大丈夫なようです。エンコードが決め打ちなのが格好悪いです
が、まぁしょうがないかな。ありがとうございました。



540 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/01(木) 23:45:04 ]
terminal-coding-systemにすれば?


541 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/02(金) 00:11:15 ]
>>540
emacs -Q --batch --execute='(print (terminal-coding-system))'

で japanese-iso-8bit が返ってきますね。.emacs 読んでなくても大丈夫なの
か。terminal-coding-system 使うことにします。どうもでした。


542 名前:ヽ(´ー`)ノ ◆.ogCuANUcE mailto:sage [2005/09/02(金) 00:35:37 ]
>>541
ロケール見てるっぽいね。

$ LC_ALL=C emacs -Q --batch --execute='(print (terminal-coding-system))'

だと nil だったから。nil の時だけ us-ascii にしておけば問題ないと思う。

543 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/02(金) 09:32:49 ]
>>539

入力ファイルと同じ coding-system にしたいのであれば,
insert-file-contents した直後の last-coding-system-used を
使うというのはどうだろう。


544 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/04(日) 13:45:39 ]
Elispを初めて改造してみたのですが
うまく行きませんでした

changeが設定されていれば、nonにchangeを入れたいのですが
以下のように書いたところうまくいきませんでした
間違っているでしょうか?

(if change
(setq non change))

545 名前:544 mailto:sage [2005/09/04(日) 13:49:30 ]
ちなみに、
(setq change 'hoge)
のように設定されていると、うまくどうさします

546 名前:544 mailto:sage [2005/09/04(日) 13:51:48 ]
解決しました
変更しない場合は
(setq change ')
として、変数は作成しておかないとダメなんですね

変数が無い場合も正しく動作するようにはできないでしょうか?

547 名前:名無しさん@お腹いっぱい。 [2005/09/04(日) 14:04:21 ]
質問は上げとけ

548 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/04(日) 14:17:23 ]
>>543
なるほど。今回のは元ファイルと常に同じって訳でもなかったんですが、そう
限定できる場合はいいかもしれませんね。アドバイスどうもです。

>>546
よくわからんが

(and (boundp 'change) change
(setq non change))

とか?

549 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/05(月) 15:14:56 ]
>>546
そんな構文あるのかー!
と思って思わず確認しちゃったよ。



550 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/06(火) 09:40:12 ]
emacs-cvs 使おうと思ったら、its とやらが含まれてないっぽいんんだけど、
どうしたらいい?


551 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/06(火) 09:52:04 ]
あ、みっけた。


552 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/06(火) 12:38:05 ]
>>550
tamgao入れれ。

553 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/06(火) 13:27:48 ]
>>552
emcws あてますた。
Makefile.in は手でなおして、configure は autoconf で作りなおしますた。

tamago と emcws ってどっちがいいの?

554 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/06(火) 13:52:42 ]
tamago

555 名前:名無しさん@お腹いっぱい。 [2005/09/15(木) 03:44:22 ]
Elispはじめて間もないのですが、質問です。
ある変数に入っている文字コードを判別するのって
どうやればいいのでしょうか??
例えば、

(setq hoge1 "ほげ" hoge2 "hoge")

ここで、hoge2 に入っている文字列がローマ字であるかどうかだけ
分かれば、もしくは hoge1 に2バイト文字が入っているかどうかが
分かれば分かればいいのですが・・・

get-text-property あたりを見ているのですが・・・
ご教授お願いします。

556 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 04:06:20 ]
>>555
その目的なら multibyte-string-p でよさそうな気がする。
正規表現で調べるって手もあるだろうけど。


557 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 04:07:42 ]
「ローマ字であるかどうかだけ」
これは、「アルファベットのみからなる」と置き換えてもいいの?

558 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 04:09:45 ]
そーいえばset-buffer-multibyteの使い方よくわからん

559 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 04:27:26 ]
>>556
全然よくない。




560 名前:555 mailto:sage [2005/09/15(木) 10:03:45 ]
皆様、レスありがとうございます。
>>557さんの言うとおり、入っている文字列が
ただ単に日本語かまた違うものかを判別したいだけ
なので”アルファベットのみからなる”と
置き換えても構わないと思います。

すみません、よろしくお願いします。

561 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 10:10:12 ]
Ro-maji hyouki no nihongo wa dousuruno?

562 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 10:10:53 ]
hoge が、アルファベットのみで構成された文字列かどうか調べるなら、

(string-match "\\`[A-Za-z]+\\'" hoge)

charset で調べるなら、

(let ((charsets (find-charset-string hoge)))
(catch 'done
(while charsets
(unless (memq (car charsets)
'(ascii eight-bit-control eight-bit-graphic))
(throw 'done t))
(setq charsets (cdr charsets)))
nil))

とか?

563 名前:555 mailto:sage [2005/09/15(木) 10:34:56 ]
おお、素早いレスありがとうございます!!
今試して見ます!!

564 名前:555 mailto:sage [2005/09/15(木) 10:50:33 ]
>>562
おお、出来ました!!
正規表現での判別と文字そのものの判別ですか〜
なるほどなるほど。どうもありがとうございます。
勉強になりました。

565 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 11:32:24 ]
カテゴリ使って
(string-match "\\Ca" "abc")
=> nil
(string-match "\\Ca" "あいうえお")
=> 0

566 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 19:09:26 ]
再度書き込みすみません。
例えば、以下のように関数の続きとして>>562さんのコードを
使いたいのですが、(let を外してしまうと
上手く動いてくれません。let は局所的変数宣言でしたよね?

(defun .....
.
.
(setq hoge (split-string "name1 name2 name3"))
(setq name_s (length hoge) name_n 0 mew-from-sex 1)
(if (let ((charsets (find-charset-string (nth name_n hoge))))
(catch 'done
(while charsets
(unless (memq (car charsets)
'(ascii eight-bit-control eight-bit-graphic))
(throw 'done t))
(setq charsets (cdr charsets)))
nil))
(setq people 0)
(setq people 1))
.
)
よろしくお願いします。。。

567 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 19:17:35 ]
(let を外したいのは何故?

568 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 19:27:46 ]
関数の始めにいっきに let で変数宣言したくて、

(let ((charsets (find-charset-string (nth name_n hoge))))
も含めて宣言しようと外したのですが。。。

569 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 19:42:22 ]
多段let撲滅



570 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 19:45:03 ]
該当の部分を函数にする
途中に let がある事に慣れる
(let (charsets)
...
(if (progn
(setq charsets (find-charset-string ...

のどれか

571 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 19:54:27 ]
>>569
参考までに教えて欲しんだけど
1. 実行速度
2.可読性
のいづれかの理由によるものでしょうか? それとも他の理由?







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

前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