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

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


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.可読性
のいづれかの理由によるものでしょうか? それとも他の理由?


572 名前:569 mailto:sage [2005/09/15(木) 19:55:16 ]
>>571
いや、俺はちょっと皮肉(?)ってみただけで。

573 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 19:57:03 ]
えっと、以下のようにするということでしょうか??

(let (charsets) hoge name_s name_n people mew-from-sex
(setq hoge (split-string "name1 name2 name3"))
(setq name_s (length hoge) name_n 0 mew-from-sex 1)
(if (progn setq 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)))


574 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 19:58:15 ]
うわ、空白がすごくみずらいですね。。。
すみません。。

575 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 19:58:33 ]
>>573
letの使い方理解してないぞ

576 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 20:01:27 ]
あ、申し訳ないです。
変数リストを()でひとまとめにしていなかったですね。

(let (charsets) hoge name_s name_n people mew-from-sex

こんな感じでしょうか??

577 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 20:02:36 ]
こうでした、何度もすみません。
(let ((charsets) hoge name_s name_n people mew-from-sex)


578 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 20:50:17 ]
初心者は setq 禁止

579 名前:名無しさん@お腹いっぱい。 [2005/09/15(木) 21:34:54 ]
Emacs をわたし色に染めて♪ の人は自殺しそうでしたがまだ生きてますか?




580 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/15(木) 21:46:13 ]
>>579
なにがあったの?

581 名前:名無しさん@お腹いっぱい。 [2005/09/17(土) 06:30:27 ]
LISPのクラスを取るか迷っている初心者ですが、LISPが出きると、どういうことができるようになるのか教えてください。

582 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 08:00:56 ]
>>581
特にない。

583 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 08:54:52 ]
>>581
普通のやつらの上を行ける。

584 名前:名無しさん@お腹いっぱい。 [2005/09/17(土) 11:44:54 ]
>>583
どういう点で?

585 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 13:42:35 ]
>>584
ttp://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html

586 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 14:05:26 ]
>>581
クラスって大学か何かか。
EmacsLispでCLOSみたいなもんを誰か作ったのかと思った。

587 名前:名無しさん@お腹いっぱい。 [2005/09/17(土) 14:29:15 ]
学校の授業という意味です。

588 名前:名無しさん@お腹いっぱい。 [2005/09/17(土) 14:44:13 ]
>>585
ありがとうございます。読みました。
中で「Lispはパワフルな言語だとは知っているけど」等、LISPは凄いと絶賛していますが、
具体的にどう凄いのかってのが、どんなところで使われているのかってのが分からないのですが…。
LISPが出きると、どういうときにそれを活かせますか?

この授業は卒業のため取らなければならない科目ではないのですが、
将来役に立つのなら、取って見ようかなと迷っています。

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 15:16:50 ]
学生なのに自分からは何も調べようとしないやつには、どんなことであろうと将来役に立たない



590 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 15:17:55 ]
lisp なんかできたとして、将来研究所とかに行かない限り用途ないのでは?
perl なり php なり使えたほうがバイトも出来ておとく。

591 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 15:41:04 ]
perlなんか授業でやるか?

592 名前:名無しさん@お腹いっぱい。 [2005/09/17(土) 16:06:14 ]
perlの授業あります。
将来はネットワークエンジニア希望です。

593 名前:sage [2005/09/17(土) 17:56:43 ]
>>592
いらないんじゃね?

594 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 17:59:54 ]
久しぶりに2chに来たらsageるつもりがageちまった。

595 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 18:06:49 ]
とりあえず、この板ってのは古い知識しか持たない老人が多いので、
こんな場所で進路相談をするのは不適切なんじゃないかなと思う。

596 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 20:58:02 ]
将来役に立つかっつったら微妙だわな。
だけど大学において考え方を学ぶ、学び方を学ぶって意味ではlispはおすすめ
かもしれず。
関係ないけど、「出きる」って変換は気持ち悪いな。

597 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 21:02:25 ]
LISPを使って(応用して)なにをするかによるだろう。

単純に、LISPを勉強するだけなら独学で(Emacs使ってるうちに)勉強
できるよ。なにしろ、単純な言語だからな。

インタプリタの作成とかまでやるんだったらいいんじゃないかな?
言語仕様が簡単だから結構楽しいと思うよ。

598 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 21:07:32 ]
> 将来役に立つかっつったら微妙だわな。
> だけど大学において考え方を学ぶ、学び方を学ぶって意味ではlispはおすすめ
> かもしれず。

関係ないけど、気持悪い書き方だな。

599 名前:名無しさん@お腹いっぱい。 [2005/09/17(土) 21:24:34 ]
だいたい、Emacs Lispの板でLispについて訊いても……



600 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 21:27:13 ]
> 訊

おじさん、何でこんな漢字つかってるの?

601 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 22:20:25 ]
>>600
>>600
>>600

602 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/17(土) 22:25:40 ]
>>601
一時帰宅が許されたのですか。病状も多少はよくなったようで、
御同慶の至り。


603 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/18(日) 00:46:55 ]
Emacs Lispの板???

604 名前:名無しさん@お腹いっぱい。 [2005/09/18(日) 02:21:31 ]
返事が遅れました。初心者に付き合っていただいて、ありがとうございます。
LISPがC言語とどう違うのか教えてください。
言語が違うってのは略。利点や使う場面等。
UNIXと深い関係にあるのですか?

605 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/18(日) 02:22:56 ]
Lisp なんかつかうやつはばかです。ということじゃないかな。

606 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/18(日) 02:37:36 ]
ム板のlispスレできいたら?

607 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/18(日) 03:20:23 ]
とりあえず初心者装った釣りでないならバカでしょう
知ってか知らずかかまうね、ここの人は

608 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/18(日) 17:53:19 ]
使う場面: スクリプティング用途
  例:
   Emacsのカスタマイズ
   Gimpのプラグイン (script-fu)
   ゲーム作り (AisleRiotのルールとかtrackballsのステージとか)
   WMのカスタマイズ (scwm.sourceforge.net/ とか)
   uimの各種IMの実装
利点:
  クロージャとマクロが使える

いや、「LispとCがどう違うか」なんて言ってる奴にマジレスするなんて
我ながら釣られているとしか思えないが…

609 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/18(日) 18:15:22 ]
C 使えれば、ライブラリ使っていろんなもの開発できるしなぁ。



610 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/18(日) 23:22:31 ]
複雑なことをやろうとすると、
結局Cで未完成なLISP(略

611 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/18(日) 23:24:42 ]
どれだけ lisp な製品が世の中に出ているかもあわせて考えるべきんじゃないかと。

612 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/19(月) 13:02:46 ]
>>611
誰かがクラッシュバンディクーの中でlispが動いているとか言っていた


613 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/19(月) 13:24:27 ]
建築系でメジャーな AutoCAD も lisp でカスタマイズする。
Emacs みたいに lisp interpreter をコアにしてるのか?

614 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/20(火) 02:30:22 ]
ってか、俺としてはむしろ、LispとCの共通点の方が知りたい。

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/20(火) 11:43:27 ]
>>612
ゲームはメモリ管理がシビアだから既存の物を使えないんで、
1から実装することになって、結局、実装の容易なlispになるんだろう。


616 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/20(火) 11:48:46 ]
>>612
これか。
ttp://www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview21.html

617 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/20(火) 12:24:10 ]
>>616
正直、PythonやRubyが普及している今となってはlispを使う意味はないよなぁ。

その記事で、オブジェクトの永続化とか動的バインドとかで、すごい助かった
って言ってるけど、それなら別にlispでなくてええやん。Pythonでええやん。


618 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/20(火) 13:23:54 ]
まとめると、lisp なんか使う奴はバカですってことか。

619 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/20(火) 13:24:50 ]
別に Python でなくてもええやん。



620 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/20(火) 14:16:29 ]
いつまでもこのスレでこの話を扱ってる奴が知障

621 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/20(火) 21:40:31 ]
池沼がこのスレに粘着するから、
そんなこと書いてはいけません。


622 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/22(木) 05:23:11 ]
Lisp 道場らしくいこう。

java のソース上で、find-file-at-point したときに、クラスに対応したファイルを探
してみる。

制限:
- 同じソースツリー上にあるものだけが対象。
- 今見てるソースと同じディレクトリにクラス名と同じパッケージがあったりするとダメ
だったりする。

次のレスからソース。


623 名前:622 mailto:sage [2005/09/22(木) 05:24:27 ]
;; その1
(require 'ffap)

(eval-when-compile
(require 'cl))

(defun ffap-java-package-to-path (package-or-fqcn)
(replace-regexp-in-string "\\." "/" package-or-fqcn))

(defun ffap-java-import-list ()
(save-excursion
(goto-char (point-min))
(let (list)
(while (re-search-forward "import\\s-+\\(.+\\)\\s-*;" nil t)
(push (match-string 1) list))
(nreverse list))))

(defun ffap-java-src-directory ()
(save-excursion
(goto-char (point-min))
(if (re-search-forward "package\\s-+\\(.+\\)\\s-*;" nil t)
(let ((package (match-string 1)))
(replace-regexp-in-string
(concat (regexp-quote (ffap-java-package-to-path package)) "$") ""
(directory-file-name default-directory)))
default-directory)))


624 名前:622 mailto:sage [2005/09/22(木) 05:25:17 ]
;; その2

(defun ffap-java-mode (name)
(let ((class (car (split-string name "\\.")))
(import-list (ffap-java-import-list))
(src-directory (ffap-java-src-directory)))
(or
(catch 'found-class
(dolist (import-class import-list)
(when (string-match (concat "\\." (regexp-quote class) "$")
import-class)

(throw 'found-class
(expand-file-name
(concat (ffap-java-package-to-path import-class)
".java")
src-directory)))))
(ffap-locate-file
name '(".java")
(delq nil
(cons
"."
(mapcar (lambda (import-class)
(when (string-match "\\.\\*$" import-class)
(expand-file-name
(ffap-java-package-to-path
(replace-match "" nil nil import-class))
src-directory)))
import-list)))))))


625 名前:622 mailto:sage [2005/09/22(木) 05:26:45 ]
;; 設定
(add-to-list 'ffap-alist '(java-mode . ffap-java-mode))

これでおしまい。
素直に jde とか gtags 使えよって話もあるけどね。
ちょっと開いたソースのクラスを追ったりするのには使えると思う。

626 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/24(土) 12:38:06 ]
>>622
おっ、これ結構つかえる。あんがと

627 名前:622 mailto:sage [2005/10/08(土) 02:57:34 ]
淋しすぎるから、ちょっとだけネタ投下。

nxml ネタその1
昔どっかに書いた気もするけど、無理矢理 mule-ucs と共存させるにはこんな感じに修
正すればそれっぽくいける。
ただし、どんな問題が起きるか分からないから自己責任でやる事。
;; 何かあるから無効にしてるハズだから。

--- nxml-mode-orig/nxml-mode.el
+++ nxml-mode/nxml-mode.el
@@ -33,8 +33,8 @@
-(when (featurep 'mucs)
- (error "nxml-mode is not compatible with Mule-UCS"))
+;; (when (featurep 'mucs)
+;; (error "nxml-mode is not compatible with Mule-UCS"))

--- nxml-mode-orig/rng-auto.el
+++ nxml-mode/rng-auto.el
@@ -26,8 +26,8 @@
-(when (featurep 'mucs)
- (error "nxml-mode is not compatible with Mule-UCS"))
+;; (when (featurep 'mucs)
+;; (error "nxml-mode is not compatible with Mule-UCS"))


628 名前:622 mailto:sage [2005/10/08(土) 03:01:50 ]
nxml ネタその2
自分で mime-charset の名前を定義できるようにする。
ari さんの cp932.el を使えばカンペキ。

(defvar nxml-mime-charset-coding-system-alist
'(("windows-31j" . shift_jis)
("cp932" . shift_jis)
("ms932" . shift_jis)))

(defadvice nxml-mime-charset-coding-system
(after nxml-mime-charset-coding-system-use-alist activate)
(unless ad-return-value
(setq ad-return-value
(cdr (assoc-ignore-case (ad-get-arg 0)
nxml-mime-charset-coding-system-alist)))))



629 名前:名無しさん@お腹いっぱい。 [2005/10/21(金) 12:16:09 ]

バッファリストをソートしようと
こんな感じにしたけど、全部のバッファが表示されない。。

(defadvice buffer-list (around buffer-list-around activate)
(sort ad-do-it
'(lambda (b1 b2)
(string< (buffer-name b1) (buffer-name b2)))))


defadvice 良く分からん。
Elispも。




630 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/21(金) 16:32:23 ]
make-variable-buffer-localとdefvaraliasの
合の子みたいなのってできないでしょうか。
デフォルトでは変数Bは変数Aの値を使うけれど、
setqされるとAの値を変更するのではなく、
以後は独立した値を持つ、と。

631 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/21(金) 16:38:22 ]
ムリ。

632 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/21(金) 16:50:26 ]
(or B A) で代用か

633 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/21(金) 17:29:55 ]
make-local-variable?

634 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/21(金) 17:37:53 ]
>>629
buffer-listは表示なんかしない。

何がしたいのかよくわからんが、list-buffersでの並びを制御したいのだったら
list-buffers-noselectをadviceするべきだと思う。


635 名前:名無しさん@お腹いっぱい。 [2005/10/21(金) 19:49:11 ]

したいことは、C-xC-bのとき
ソートしたいなーと思ったんだけど。

list-buffers-noselect の中で buffer-list を呼んでるんで
いいと思ったが、だめか。。


636 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/21(金) 20:10:55 ]
>>635
(setq ibuffer-default-sorting-mode 'alphabetic)してibuffer使っとけ。

637 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/21(金) 20:23:34 ]
list-buffers 使いやすいか?

638 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/21(金) 20:59:36 ]
Oh Thanks.

ところで、ibuffer ってファイルだけ
表示って可能か?

C-uC-xC-b っぽいこと。

639 名前:名無しさん@お腹いっぱい。 [2005/10/26(水) 16:58:28 ]
初歩的な質問だと思いますが,
xemacsで
/home/mako/jikken/userFiles/690562.txt
など,
/homeではじまり.txtで終るファイル
へのパスが書かれていた場合,
そのパスの上でマウスの中ボタンをクリックすれば,
xemacsでそのファイルを起動できるようにする方法を
教えてください.

あまりLISPにくわしくないので,記述法など詳細に教えて頂ければ
助かります.

googleで検索したところ,URLをマウスの中ボタンをクリックすれば,
ブラウザで起動できるようにする方法は,
(autoload 'browse-url-at-mouse "browse-url"
"Ask a WWW browser to load a URL clicked with the mouse." t)
(add-hook 'mew-message-mode-hook
(function
(lambda()
(local-set-key [mouse-2] 'browse-url-at-mouse)
)))
でできるという事は分かりました.
これを,txtファイル,XEMACSで起動という形に出来れば最高なのですが.

またいろいろ調べていると,thingatptやfiberという
プログラムを使うと出来そうなのですが,そこからどうすれば良いのかが
分かりません.明日までに出来るようにしてと頼まれているので,
急いでいます.

宜しくお願い致します.



640 名前:名無しさん@お腹いっぱい。 [2005/10/26(水) 17:44:52 ]
よろしくお願い致します.
急いでいます.

641 名前:名無しさん@お腹いっぱい。 [2005/10/26(水) 17:45:58 ]
すみません.
自己解決しました.

642 名前:639 [2005/10/26(水) 19:05:10 ]
解決はしていません.
よろしくお願い致します.

643 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/26(水) 19:14:58 ]
Emacs Lisp道場っつーネタかよそれ。しかもすげー自己中。そしてバカ。

小学生が大学生の電気工学の授業中に乗り込んでいって
これができる回路を作ってください。明日までに提出する自由工作なんです。よろしく。
ついては電子工作に詳しくないので回路や作り方も懇切丁寧に教えてください。
というみたいな行動を自分がしているというのは認識しているか? >>639

644 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/26(水) 19:57:32 ]
Emacs 22だとlist-buffersではWindowsのエクスプローラとかみたいに
見出しをクリックして並べ替えできるようになってるんだけど、
ibufferは旧態依然なので見劣りしてしまうね。


645 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/26(水) 22:19:06 ]
クリック

646 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/26(水) 23:28:46 ]
>>644
Emacsの上でまでマウスを使いたくない派の俺としては、旧態依然としていても
, や s a とかでソートのモードが変更できる ibuffer の方が100万倍使いやすいわけだが。

647 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/26(水) 23:42:04 ]
マウスでできる != マウスでしかできない

648 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/27(木) 01:58:41 ]
>>639 が「自分はヌルーされている」と気付くのはいったいいつかな?(ワクテカ(AA略

649 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/27(木) 10:40:24 ]
俺もマウスは嫌いだが、Diredの中のファイルは
マウスで他のアプリにドロップしたくなる。




650 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/27(木) 12:17:30 ]
そもそもマウス刺さってないし。

651 名前:名無しさん@お腹いっぱい。 [2005/10/27(木) 13:49:43 ]
kill-ring-save は 'invisible 属性のテキストもコピーしてしまいますが、
'invisible 属性のない普通のテキストのみをコピーするようにするにはどうすれ
ば良いでしょうか?

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 01:25:52 ]
>>649
Windows だったら CraftDrop と組み合わせればいけるよ。

653 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 02:15:52 ]
>>651
でっちあげてみた。
ただ、複数の invisible 属性があるような場合だとうまく動かない。
たとえばこんなの
(concat "a" (propertize "b" 'invisible 'test1) (propertize "c" 'invisible 'test2) "d")

(defun kill-ring-save-without-invisible (beg end)
(interactive "r")
(kill-ring-save beg end)
(let ((kill (car kill-ring))
new-kill pos)
(when (get-text-property 0 'invisible kill)
(setq kill
(substring kill
(or (next-single-property-change 0 'invisible kill)
(length kill)))))
(while (setq pos (next-single-property-change 0 'invisible kill))
(setq new-kill (concat new-kill (substring kill 0 pos)))
(setq kill
(substring kill
(or (next-single-property-change pos 'invisible kill)
(length kill)))))
(setq new-kill (concat new-kill kill))
(kill-new new-kill t)))


654 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 05:44:14 ]
複数の invisible 属性に対応してみた。

(defun kill-ring-save-without-invisible (beg end)
(interactive "r")
(kill-ring-save beg end)
(let ((kill (car kill-ring))
(pos 0)
new-kill)
(while (> (length kill) 0)
(setq pos (or (next-single-property-change 0 'invisible kill)
(length kill)))
(unless (get-text-property 0 'invisible kill)
(setq new-kill (concat new-kill (substring kill 0 pos))))
(setq kill (substring kill pos)))
(kill-new new-kill t)))


655 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 10:25:41 ]
>>652

だんな!

このご恩は一生わすれませんぜ!
マウス使わないでOKなとこもGoodですぜ!


656 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 13:03:48 ]
どこが道場なんだ?

657 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 13:28:05 ]
ここ。

658 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 14:03:40 ]
六三郎

659 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 15:52:28 ]
>>653-654 さん
お返事ありがとうございます。

多分その関数は 21.3 までなら動くでしょうが、22.* では動かないかと思います。
(22 では (get-char-property pos 'invisible) が invisible 属性のテキストに対してうまく機能しないので。)

まあでもなんとか自力でやりたいことを達成することができました。
お世話になりました



660 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 16:08:26 ]
んじゃ22で動くようにしたものを貼ってよう。giveはするがtakeはしない?

661 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/28(金) 16:09:02 ]
まちがった、giveとtakeが逆だった……orz


662 名前:659 mailto:sage [2005/10/29(土) 00:04:49 ]
>>660 san
そうですよね。

;; [ 2005-10-28 (00:38) ]
(defun kill-ring-save-visible (beg end)
(interactive "r" )
(let ((s "") from to)
(save-excursion
(save-restriction
(narrow-to-region beg end)
(setq from (goto-char (point-min)))
(while (not (eobp))
(if (point-invisible-p)
(progn
(setq to (point))
(setq s (concat s (buffer-substring-no-properties from to)))
(end-of-visible-line)
(setq from (point)))
(forward-char)))
(if (> (setq to (point)) from)
(setq s (concat s (buffer-substring-no-properties from to))))
(kill-new s)))))

invisible になるまで1文字ずつ進まないようにしてるので、ここら辺はもうちょっと
速くなるかもしれません。

663 名前:659 mailto:sage [2005/10/29(土) 00:06:03 ]
1文字ずつ → 1文字ずつしか


664 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 02:29:21 ]
22 で確認
(defun kill-ring-save-visible (begin end)
(interactive "r")
(let ((r '()) (p begin) n)
(while (and (setq n (next-single-property-change p 'invisible nil end))
(> n p))
(unless (get-text-property p 'invisible)
(push (buffer-substring p n) r))
(setq p n))
(kill-new (apply #'concat (nreverse r)))))

665 名前:659 mailto:sage [2005/10/29(土) 14:06:12 ]
>>664san
やっぱり自分の環境ではその関数も全く機能しません。

emacs-version
=> GNU Emacs 22.0.50.1 (i386-mingw-nt5.1.2600)
of 2005-07-11 on A208752

666 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 18:56:32 ]
next-single-property-change が nil を返した時の処理が抜けてるせいかな。
(defun remove-invisible (s)
(interactive "r")
(let ((r '()) (p 0) n)
(while (and (setq n (next-single-property-change p 'invisible s))
(> n p))
(unless (get-text-property p 'invisible s)
(push (substring s p n) r))
(setq p n))
(unless (get-text-property p 'invisible s)
(push (substring s p) r))
(apply #'concat (nreverse r))))
(remove-invisible (concat "a" (propertize "b" 'invisible 'test1) (propertize "c" 'invisible 'test2) "d"))
=> "ad"
になる?
GNU Emacs 22.0.50.2 (i386-unknown-freebsd6.0, X toolkit, Xaw3d scroll bars) of 2005-10-29
だと期待どおりの動作をするが。

667 名前:659 mailto:sage [2005/10/29(土) 20:35:40 ]
>>666
はい、今評価してみた所、 "ad" になりました。

>>662 に追加:
すみません、肝心な関数を貼るのが抜けていました。 >>662 の側に置いてあげて下さい。

(defun point-invisible-p ()
(line-move-invisible-p (point)))


↑でも使用してある通り、 `line-move-invisible-p' であれば invisible をうまく見つける
ことができるのですけどね。。。

(defun line-move-invisible-p (pos)
"Return non-nil if the character after POS is currently invisible."
(let ((prop (get-char-property pos 'invisible)))
(if (eq buffer-invisibility-spec t)
prop
(or (memq prop buffer-invisibility-spec)
(assq prop buffer-invisibility-spec)))))




668 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/29(土) 23:16:07 ]
もしかしてこーゆーこと?
(defun invisible-p (position &optional object)
(let ((invisible (get-char-property position 'invisible object)))
(if (eq buffer-invisibility-spec t)
invisible
(catch :result
(dolist (prop (if (consp invisible) invisible (list invisible)))
(when (or (memq prop buffer-invisibility-spec)
(assq prop buffer-invisibility-spec))
(throw :result t)))))))

(defun kill-ring-save-visible (begin end)
(interactive "r")
(let ((r '()) (p begin) n)
(while (and (setq n (next-single-char-property-change p 'invisible
nil end))
(> n p))
(unless (invisible-p p)
(push (buffer-substring p n) r))
(setq p n))
(unless (invisible-p p)
(push (buffer-substring p end) r))
(kill-new (apply #'concat (nreverse r)))))

669 名前:659 mailto:sage [2005/10/30(日) 05:21:17 ]
>>668
そうそれです。完璧に動作しました! しかも速度も高速ですね。
buffer-invisibility-spec が鍵を握るのはわかって
いたのですが、今コードを解釈する時間がない為、連絡だけさせていただきました。



670 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 06:24:23 ]
>>659 で言っていたうまく機能しないと言うのは見えているものまで一緒に消えちゃっ
ていたと言う事でOK?


671 名前:670 mailto:sage [2005/10/30(日) 06:34:20 ]
少しわかりずらいな。
つまり、
(with-current-buffer (window-buffer (display-buffer (get-buffer-create "*test*")))
(erase-buffer)
(add-to-invisibility-spec '(test1 . t))
(insert (concat "a" (propertize "b" 'invisible 'test1) (propertize "c" 'invisible 'test2) "d")))
をした結果の *test* buffer の中身に対して kill-ring-save-visible を実行した結果が
=> "acd"

となって欲しかったという事でいい?


672 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 19:48:20 ]
もしかすると text-property -> char-property で overlay が認識される
ことで解決したってことかも。
何にせよ、Emacs 22 だからというより設定のせいっぽいが。
(デフォルトでは buffer-invisibility-spec は 22 でも t だし
invisible な overlay も存在しない)

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/30(日) 22:50:13 ]
あるソフトウェア独自の簡単なスクリプト言語に対応するメジャーモードを作りたいのですが、
コメント部の色をかえるにはどうしたらいいのでしょうか?
コメントはC言語の /* が @cs に、*/ が @ce になったような感じです。複数行可。
comment-start と comment-endにそれぞれ値をセットするばいいだけというわけではないのでしょうか?
よろしくお願い致します。

674 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/31(月) 11:27:48 ]
Emacs Lisp神社


675 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 02:51:02 ]
>>673
それっぽく色を付けるならこんな感じかな。
modify-syntax-entry でコメント開始/終了文字の1文字目と2文字目を指定する。
実は Emacs で3文字以上からなるコメント文字を扱うのは結構面倒臭い。
どこかにお手軽に扱える elisp が転がってないかな?

(defvar hoge-mode-syntax-table nil)
(unless hoge-mode-syntax-table
(setq hoge-mode-syntax-table (make-syntax-table))
(modify-syntax-entry ?@ ". 13" hoge-mode-syntax-table)
(modify-syntax-entry ?c ". 24" hoge-mode-syntax-table))
(defvar hoge-font-lock-keywards nil)
(defun hoge-mode ()
(interactive)
(kill-all-local-variables)
(setq comment-start "@cs")
(setq comment-end "@ce")
(set-syntax-table hoge-mode-syntax-table)
(set (make-local-variable 'font-lock-defaults) '(hoge-font-lock-keywards))
(setq mode-name "Hoge")
(setq major-mode 'hoge-mode))



676 名前:675 mailto:sage [2005/11/01(火) 03:17:06 ]
強引にやってみた。
複数行にマッチするのは font-lock で激しくすすめられてないっぽいけど、おーけー
としとく。
実は hoge-font-lock-comment-matcher は内部で comment-start, comment-end を使う
ようにすると色んな mode で使えて嬉しいかもしれないとか思った。

(defvar hoge-font-lock-keywards nil)
(defvar hoge-font-lock-syntax-keywords '((hoge-font-lock-comment-matcher (1 "!") (2 "!"))))

(defun hoge-font-lock-comment-matcher (limit)
(let (beg end)
(when (re-search-forward "@cs" limit t)
(setq beg (cons (copy-marker (match-beginning 0))
(copy-marker (match-end 0))))
(when (re-search-forward "@ce" limit t)
(setq end (cons (copy-marker (match-beginning 0))
(copy-marker (match-end 0))))
(set-match-data
(list (car beg) (cdr end) (car beg) (cdr beg) (car end) (cdr end)))
t))))

(defun hoge-mode ()
(interactive)
(kill-all-local-variables)
(setq comment-start "@cs")
(setq comment-end "@ce")
(set (make-local-variable 'font-lock-defaults) '(hoge-font-lock-keywards))
(set (make-local-variable 'font-lock-syntactic-keywords) hoge-font-lock-syntax-keywords)
(setq mode-name "Hoge")
(setq major-mode 'hoge-mode))


677 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 21:34:42 ]
非同期にHTTPサーバとXMLなどのデータをやりとりする仕組みで、
ユーザイベントに動的に反応して、半リアルタイムに挙動を変える
ようなUIのelispって何かある?

678 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 21:46:00 ]
ajax ですか?

679 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/01(火) 23:08:31 ]
emacs-w3m



680 名前:677 mailto:sage [2005/11/02(水) 13:49:44 ]
>>678
Ajaxのelisp版を想定中。alax? aelax?

>>679
少なくとも現状のままでは、「非同期」ではなく動的ではないと思う。

681 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/02(水) 14:24:42 ]
slime

682 名前:名無しさん@お腹いっぱい。 [2005/11/12(土) 21:34:51 ]
リストを連結する関数は何ですか。
RubyでいうとArray#joinです。

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/12(土) 22:39:40 ]
>>682
mapconcat


684 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 14:10:37 ]
re-search-forward で「カーソルのある位置から」マッチさせることって出来ないの?

(looking-at REGEXP) 使ってみたけど、(match-string 0) 使ったら
(args-out-of-range 0 0) って言われた。


685 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 18:23:41 ]
(with-temp-buffer
(insert "hoge")
(goto-char (point-min))
(and (looking-at "hoge") (match-string 0)))
=> "hoge"

686 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/17(木) 00:03:45 ]
普通にre-search-forwardするのと、事前にチェックした(point)を組み合わせる。

687 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/17(木) 03:08:58 ]
save-excursion と save-current-buffer の使い分けはどうすればいい?

688 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/17(木) 04:04:48 ]
pointやmarkをどうするか次第

689 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 11:51:29 ]
faceを少しだけ明るく(もしくは暗く)する関数ってないですか?
(color-values "color-name")した値を加工して、そのままset-face-backgroundしようとしたら
stringpじゃねぇよボケ、と言われました。何か良い方法はないでしょうか。



690 名前:689 mailto:age [2005/11/18(金) 11:51:57 ]
質問age

691 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 12:18:02 ]
28秒

692 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 12:34:04 ]
なんで実際に書いたコードを隠すんだ?
stringp云々って根本的におかしなことやったとしか思えないんだけど

693 名前:688 mailto:sage [2005/11/18(金) 13:31:54 ]
>>692
根本的におかしいことやってるのは分かってるので、何か良い方法を教えてほしい、
という質問なんですが。

(defun more-bright-color (color)
(mapcar '(lambda (n) (* n * 1.1)) (color-values color))
)

(make-face 'brightly-face)
(set-face-background 'brightly-face (more-bright-color "khaki"))

> Debugger entered--Lisp error: (wrong-type-argument stringp (65535 65021 39578))


694 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 13:42:01 ]
>>693
色は、"#00aaff"みたいにすればいいんだよ。

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 13:46:07 ]
>>693
brighter

696 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 14:11:42 ]
これでいいかな。

(defun more-bright-color (color)
(apply #'format
(append '("#%02x%02x%02x")
(mapcar '(lambda (n)
(floor (min 255 (/ (* n 1.1) 256))))
(color-values color)))))


697 名前:688 mailto:sage [2005/11/18(金) 14:16:40 ]
>>694
なるほど。

>>696
今手元で同じような関数が出来た。目的を達成することが出来ました。
ありがとう。


698 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 15:45:49 ]
>>696
brighter だっつってんだろが。
"more bright" なんて英語通じないっつーの


699 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 16:01:04 ]
不自然だと感じるけど通じるよ



700 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 16:05:38 ]
>>698
"brighter" とだけレスされても日本語通じないっつーの。
「brighter だと英語としておかしい」とキチンと書けばいいのに。

701 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 16:31:47 ]
>700
よっぽど悔しかったんだね

702 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 16:41:35 ]
>>701
おまいも大人げないよ
スレが荒れるからヤメれ

703 名前:696 mailto:sage [2005/11/18(金) 16:45:33 ]
>>696
appendいらなかったな。

>>701
>>700は俺じゃないぞ。

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 09:49:47 ]
Perlのjoinにあたる関数ってないですか。今はこうしてます。

(defun join-string (s seq)
(reduce '(lambda (x y) (concat x s y)) seq))


705 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 09:59:01 ]
mapconcatか。reduceなんてシラネ。

706 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 19:24:37 ]
例えば

emacs yarou
hello emacs kun to lisp yarou

のようなラインがバッファ内にあったと仮定して、 M-x foo を実行すると
Line containing:
というプロンプトがミニバッファにでて、
emac li <RET>
と打ちこむと、 "emac" と "li" のサブストリングを含むライン (この場合は 2行目)
を occur などでマッチする関数 foo がほしいのですが。。。作って。。。


707 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 21:27:04 ]
正規表現でいいじゃん

708 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 21:38:21 ]
正規表現でいいだろう

709 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 22:35:38 ]
正規表現でいいような気がする



710 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 22:42:25 ]
正規表現でいいと思われ。

711 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 22:48:41 ]
正規表現じゃ大変だ

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 23:15:19 ]
正規表現ってのはどうだ


713 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/22(火) 23:19:25 ]
もういいから。

714 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/23(水) 00:11:44 ]
もういいよ。

715 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/23(水) 02:36:12 ]
もういいな。


716 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/28(月) 00:18:36 ]
(defun foo(str)
"HG"
(interactive "sLine containing:")
(if (not (string= str "emacs li"))
(message "not found!")
(if (not (re-search-forward "emac.*li" nil t))
(message "not found!!")
(message "found!")
)))

717 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 13:47:33 ]
ライブラリのリビジョンに応じて設定を変えたい場合なんかに便利かなと

(setq get-revision-number-line-limit 20)

;; 1.1.1.1 には対応してない
(defun get-revision-number (library)
(let* ((file (locate-library (concat library ".el")))
(buf-exists-p (get-file-buffer file))
(buf buf-exists-p)
rev)
(unless buf-exists-p
(setq buf (find-file-noselect file)))
(save-match-data
(with-current-buffer buf
(save-excursion
(save-restriction
(widen)
(goto-char (point-min))
(let (search-limit)
(forward-line get-revision-number-line-limit)
(setq search-limit (point))
(goto-char (point-min))
(when (re-search-forward (concat "$Id: "
(regexp-quote (concat library ".el"))
",v " "\\([0-9]+\\.[0-9]+\\)" " ")
search-limit t)
(setq rev (string-to-number (match-string 1)))))))))
(unless buf-exists-p
(kill-buffer buf))
rev))

718 名前:名無しさん@お腹いっぱい。 [2005/12/14(水) 00:43:34 ]
emacs-version
"22.0.50.1"

Diredのバッファ名のように、
mode-lineのcvsのリビジョンの部分だけ色を変えたいのですが、

(setq-default mode-line-format
       `(" "
        ;;mw32-ime-mode-line-state-indicator
        mode-line-mule-info mode-line-modified " "
        mode-line-buffer-identification
        (vc-mode ,(propertize vc-mode 'face '(:foreground "blue" :background "red")))
        " " global-mode-string (-3 . "%p") " " "-%-"))

これを.emacsで評価すると、mode-lineでは.emacsのリビジョンが赤くなりますが、
別のバッファにうつっても.emacsのリビジョンが赤くなってしまいます。

着色しないときのようにファイル毎にそれぞれのリビジョンを表示するには、
どうしたら良いでしょうか?


719 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/14(水) 05:34:22 ]
(setq-default mode-line-format
'(" "
;;mw32-ime-mode-line-state-indicator
mode-line-mule-info mode-line-modified " "
mode-line-buffer-identification
(vc-mode (:eval (propertize vc-mode 'face '(:foreground "blue" :background "red"))))
" " global-mode-string (-3 . "%p") " " "-%-"))



720 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 00:31:01 ]
>>719
できました。便利な属性(?)があるんですね。


721 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 01:28:18 ]
どんなタイミングでevalされるの?

722 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/20(火) 08:53:44 ]
Vim の dircolors.vim みたいな ~/.dir_colors 編集用メジャーモードを作ったので晒してみます。
begin-base64 644 dircolors-mode.el.gz
H4sICJBGp0MAA2RpcmNvbG9ycy1tb2RlLmVsAK1Y0W7bNhR9z1cQ6oPlDfLk
8DoG4qBBazuNUccqHD/sQUChWHSmWZYySU4aYOi/DFCH/cMG7HFFCwzYZwx7
2/YBIyXbSUhfUwbmIBAl3nPu5Tk0KbPT6RA/SKZxGCeptYh91mAhsciF922c
EHFPZrzB/CALomvy/qsGj35bhh8cmD6bTZdpFi8kEuubOJ6TKAgPCDE2XSWf
6GoYvOM4u79hpCbuxd11Ei9vSM33Mq9eUs+8KZOJ74LQn3qJb4lODquZZkbM
Y14kEwSRT4xnZ/xj20a9Xhcl1AuuWy/ZScUT7+jdUZBtPy3lSdatgKZU+1Uc
+iTT40DC8cGyJAwiVgXc2rfKtpQtiG5ZkjLrNvBZXCEjtXdZBLb4M/QssliS
0bYtG72V5XAXi22r02UrC9130m1lkW2UahHVVGBp6XSpxHKk06USizxVFF2q
sIA8X6686fyJLlXUBeXL9Zil6nwBeb5ItVRzGmSnpVr+D5aq8wXk+aLoUolF
ni+KLpVY5Pmi6CKzbFm8V8uusmyvnuO4JoJranCA4ECDayG4lgbXRnDt3TiK
6EI1ulBEF6rRZbW0qrhDDY4iOKrBIT5QjQ8U8YFqfFgtkSruSIND/KMa/wDx
DzT+AeIfaPwDxD/Q+AeIf6DxDxD/QOMfIP6Bxj9A/AONf4D4B2v/MGB6H2Xe
O8sLgzQrlzjj7XuDNIhxZ9SJefpMNE+KphuJ9nO+1m15TX7M0zDwfLM4yqww
ns6tObu/ixM/XWV13RPXNSf98YXrft91hs6YX/uDV+eTl4MJbzpvJgNndOm6
ddd9LgpUmFYjJfyzphs544sXQ44+Gwz7/NIbCNbhYPRaMI7fnL8Y8cbF4PJy
MHpVhJ05/HLpdEVAzymKeDkUN93zoqCv+939Shj2zyZdpyeyj8VoVu3+qFe2
qnJ94bqNU9e9+3IVv/v9f41q7I04se3t8Zut6iGyiUQ2lUhAIkGJbCGRLSWy
jUS25UiKjIgqI6LIiKgyInqIRB4qkRSJpEokohJVVKKISlRRiR4hkUdKJKIn
VfQERE9Q9ARET1D0BERPUPQERE9Q9ARET1D0BERPUPQERE9Q9AREz/WSvG0V
VVfHXWvpwrtBDi04mndusMtIgvJf1AJV5dhEHH2YQZSxxJtmwa3YSviDeRCG
fLEPRbFeaPHiAu8qZKmgNZf8d3f5XFSoFl1SLLw5k+Ck9iAAL9tbhlnJmLLs
O6L2FWKLT6dDJk7POSb5p/yf/LcnuxHJP3/649d/879//pj/mH/88NOHP3/4
Jf/MI//Kfz99RFEztXuVkLv437GLkit2HUQRF9KKZ5Y48KjXN1n2yVFpK96a
bSNZkSLyFowYvXVe40HRhfC/nBDSi0MRkyyj4mQsJbWMvcsejspECvMmicXh
ior8Dy4122KlEwAA
====

723 名前:722 mailto:sage [2005/12/20(火) 09:04:41 ]
それで、いくつか作ってて疑問な点があったので聞いてみたいのですが

* 123行目で SYNTAX-ALIST 引数に dircolors-mode-syntax-alist を使うと
 (直前でコメントアウトしてあるコードのことです)
 font-lock が発動した際に型が違うと言われてしまうのですが、これは何故なんでしょうか?

* defface で face を定義した後、同名の変数を defvar する操作は必須ですか?
 自分の環境では省略しても問題ないように見えるんですが、ネットで見掛けるコードでは
 何故かわざわざ defface, defvar を並べて書いてるのでちょっと不安です。
 必要なのであれば、その理由も教えて頂けるとうれしいです。
 というかもしかして face と普通の変数ってスコープが違ったりしますか?

724 名前:722 mailto:sage [2005/12/20(火) 09:08:14 ]
すみません、>>723で嘘書いてしまいました。
defface の後の defvar を省略すると face が有効にならないみたいです。
これって何故なんでしょうか?

725 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/21(水) 00:51:58 ]
deffaceはfaceの定義、defvarは変数の定義

たとえば dired.elの
(defface dired-header '((t (:inherit font-lock-type-face))))
(defvar dired-header-face 'dired-header)

dired-headerという名前で定義したfaceを用意しておいて、
dired-header-faceに代入しておく。
実際にfaceを決定するところではdired-header-faceを使用する。

elispコード内でdired-headerを直接指定していたら、
もしもあとでdired-header-faceを変えたくなったときに、
dired-headerを上書きするかコードを書き変えないといけないけど、
変数を経由するようにしておけば、別のfaceを定義してその変数に代入してあげればいい。


そういう意味で、paren.elなんかはfaceを直接overlayしているので、
faceの色や字体を変えたいときは、set-face-x系を使って
faceの設定を上書きしてあげないといけないね。


726 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/21(水) 07:12:14 ]
> そういう意味で、paren.elなんかはfaceを直接overlayしているので、
> faceの色や字体を変えたいときは、set-face-x系を使って
> faceの設定を上書きしてあげないといけないね。

それで何か不都合あんの?

727 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 00:55:23 ]
ほとんどの人は上書きしてしまって不都合ないと思いますよ。
起動後にfaceを変えるってあまりないですよね。

でもまぁ、setqでちょこちょこ変えたい人には箱があったほうがいいですし、
それくらいのレベルだと思います。


728 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 20:35:07 ]
はじめまして。Emacs LISPの勉強をしている高校生です(はじめたばかりです。すみません)。
カレントバッファに対して文字列の検索や置換をする関数は見つけられたのですが、
文字列そのものを引数にとるような同様の関数はありますでしょうか。
具体的には、ある入力文字列から、決められた文字を取り除きたいのです。

729 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 21:12:04 ]
M-x apropos
その程度で質問してるようじゃ先が思いやられるよ



730 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 21:40:19 ]
なんでそんなに見下した態度取るんだ?
高校生か、がんばれよーでいいじゃん。

731 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 21:43:34 ]
replace-regexp-in-string とかでええのか?
または string-match して substring してみたり適当に

732 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 23:25:20 ]
read-string が知りたかったりして。

733 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 00:57:18 ]
オレも最初 read-from-minibuffer かと思った


734 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 02:34:19 ]
>731
replace-regexp-in-string、これです!ありがとうございました。
>729
今後はしばらく"M-x apropos"で調べていけそうです。Emacs LISPのこういうインタラクティブな感じがとっても好きです。
しょーもない質問をしてすみませんでした。そしてありがとうございました。
その他の方々もありがとうございました!



735 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 18:54:34 ]
time-stamp.elを使ってるとundoの時に不満ない?
timestamp部分はundoできなくなるけど、こんな事してみた。
(defadvice time-stamp-once (around cannot-be-undone activate)
(let ((buffer-undo-list t))
ad-do-it))

後から気付いたんだけど、redo.elを入れてたのをすっかり忘れてた。
ちゃんと使っていればそのような不満はあまり感じなかったかもしれない。

736 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 20:01:00 ]
>>735
Meadow meme だかに似たようなのがあったね。

737 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 20:14:23 ]
homepage3.nifty.com/oatu/emacs/misc.html
これかな?

738 名前:名無しさん@お腹いっぱい。 [2006/01/12(木) 21:14:55 ]
>>734
まあマジレスすると mode-info 入れとけ。
ttp://www.namazu.org/~tsuchiya/elisp/mode-info.html

739 名前:名無しさん@お腹いっぱい。 [2006/01/13(金) 03:30:34 ]
行の中で最初の「空白/タブではない文字」にカーソルを移動したいんですが、どうすればいいですか?



740 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 08:22:49 ]
>>739
see back-to-indentation

741 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 09:31:16 ]
>>740
ありがとう。助かりました。

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/15(日) 03:13:49 ]
>>738
734じゃないけど、mode-info は最新の CVS の Emacs だとコンパイルできない
ようです。過去にこのスレでパッチが出ていたんだけど、もう古くなっていま
した。。。最新のパッチがあれば投下して頂けないでしょうか?


743 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/16(月) 13:00:13 ]
url.el の使い方が分からない…。

(let ((url (url-generic-parse-url "www.example.org/")))
    (url-retrieve url (lambda ()
                        (url-store-in-cache (current-buffer)))))


744 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/16(月) 13:00:47 ]
途中送信してしまった…。

これでキャッシュの保存をしてくれるかと思ったけどしてくれなかった。
どうすればいいんだ???

745 名前:名無しさん@お腹いっぱい。 [2006/02/04(土) 21:09:59 ]
d.hatena.ne.jp/teny/20060204#p1

こういうのを見ると、emacs lispも技術の途切れて
壊滅的状態にあると思わざるを得ない。


746 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 22:05:10 ]
>>745
おまえの日本語も技術の途切れて壊滅状態だな。

747 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 22:17:34 ]
>>745
その題目って、何度も再発明されてるな。


748 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 22:36:05 ]
単に再発明した人がいるというだけなのにその帰結かよ。

749 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 22:47:05 ]
っていうか、バグバグじゃん。ちゃんとテストしてないな。




750 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 23:08:53 ]
まぁblogはある意味ここよりもゴミが多かったりするし。

751 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 23:32:41 ]
しかしまあはてなでEmacsはやりだしたってので
それじゃ俺も使ってみるかってな人間が増えるのはいいことだ。
うざい質問も増えるかもしれないけど
そのうち育ってステキなパッケージ作ってくれるやもしれんし。

752 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 23:43:21 ]
バグを見つけたなら、指摘コメントしてやるといいよ。


753 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/06(月) 22:59:07 ]
>6のtexinfoが
{}のエスケープが無くてmakeinfoできないんだけど、
俺だけ?パッチ作ったんだけど、作者に送った方が良い?


754 名前:名無しさん@お腹いっぱい。 [2006/02/07(火) 08:26:36 ]
>>745
これを見ていろいろ調べていて、
「[ANNOUNCE] Emacs modules for Perl programming」
www.uni-giessen.de/faq/archiv/perl-faq.emacs-lisp-modules/msg00000.html
というドキュメントを見つけて(おのれ、今までこれの存在を知らなかった)

「Emacs Tiny Tools Project hoimepage」
tiny-tools.sourceforge.net/
というものの存在を知ってガクゼンとしました。

通常、いろいろな人が作っているのをかき集めて組み合わせて実現して
いる機能をそっくり提供する、別系統のツールのセットですよね。
このTiny Toolsを使っている人っています?


755 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/07(火) 16:15:09 ]
使ってはいないけど、たまに参考にしたり。
コード、ドキュメント共に。

756 名前:名無しさん@お腹いっぱい。 [2006/02/09(木) 12:31:30 ]
(standard-display-ascii ?@ [?#])
を評価すると,(当然ですが) モード関係なしで全ての @ が # で表示されてしまいます.
ここで,上の動作をある特定のモードのみでやるにはどうすればよいのでしょうか?


757 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/09(木) 17:43:03 ]
(make-local-variable 'display-table)

758 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/10(金) 00:07:01 ]
>>757 (make-local-variable 'buffer-display-table) だろが

759 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/02(木) 18:50:16 ]
mcomplete を使っている諸君!
例えば、例えばだ…

M-x describe-function を実行し、
mcomplete の [Substring match] に向かって
process-coding-system
と入力するとエラーが出るよな?
ELisp 勉強中の俺が、
恥を覚悟でパッチを作ってみたんだ。
あってるかな?

--- mcomplete.el
+++ mcomplete.el
@@ -1281,8 +1281,10 @@
(tails-alist (mapcar #'(lambda (item)
(string-match regexp item)
(list (substring item (match-end 0))))
- completions)))
- (concat str (try-completion "" tails-alist)))))))
+ completions))
+ (comp (try-completion "" tails-alist))
+ (tailstr (if (eq comp t) "" comp)))
+ (concat str tailstr))))))




760 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/02(木) 21:02:30 ]
うー、そのパッチはとてもただしいのだが、
ここにはってしまったためにさいようできません。。。

761 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/02(木) 21:47:55 ]
(ノ∀`)アチャ-

762 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/02(木) 22:49:07 ]
マルチライセンスで別のところにも貼ればいいんでは。

763 名前:759 mailto:sage [2006/03/02(木) 23:14:08 ]
GPL に違反してしまうのか?
パッチという形式をとっているからいけないのか?
無知は罪だ。勉強してから出直します。ごめん。


764 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 02:53:55 ]
navi2ch スレでもそういう認識になってるけど、
例えば匿名で運営してる自分のウェブページに掲載したらどうなるの?
初出の出所が不明だから不許可になる?
そもそも著作権侵害は親告罪だし、
メーリングリストでのパッチだって完全な出所証明は非常に難しいし、
出所が証明できたからってどっかからぱくってないことは証明できないし、
採用者の了見しだいでなんとでもなりそうな気がするよ。

765 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 04:18:16 ]
>>764
出所不明とかそういう問題じゃないよ。

2ch だと、投稿時にいくつかの項目に対して同意を求められるでしょ。
この中に、運営が指定する第三者に対して、一切の権利を許諾しないって項目がある。
これは GPL に矛盾するから、これに同意して 2ch に投稿されたものは、 GPL ソフトウェアにマージできないの。

自分のウェブページとかの場合なら、 GPL に矛盾する規定をしてなければ問題ない。
だから navi2ch スレとかだと、そういう規定がない Wiki とかを利用してる。

766 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 04:35:24 ]
便乗質問させてください。
すれ違いかと思いつつ、前から聞いてみたかったので書きます。

gzip & base64 とかでencodeして張った場合、どうなるんでしょう。

767 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 07:18:24 ]
GPL と 2ch の規約は矛盾するだろうけど、
じゃあ、そもそもが GPL のコードを 2ch に張るとどうなるのかと考えると、
それは GPL 違反ではあるが、
張ったがために 2ch がコードの利用の権限を持つようになるわけじゃないよね。

ということは、本人が GPL として作ったコードを 2ch に張った場合、
張った行為は GPL あるいは 2ch 利用規約違反だけど、
張っただけで 2ch のものになって GPL として使えなくなるわけではないんでは?

768 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 09:22:24 ]
2ch にあるパッチを当てた物を GPL として配布してもかまわないと思う人は
自分で配布すればいいじゃないか。
片手間で開発してるような場合、GPL 違反だと言ってる連中がいるってだけで
面倒そうだから取り込むのはやめようって気になるんじゃないかな。

769 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 09:46:09 ]
>>766
貼る形式の問題ではない。



770 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 10:39:04 ]
思うんなら自分でやればっていわれても、話にならないな。
まあスレ違いだしやめよう。

771 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 12:04:01 ]
誰かが別の場所でGPLで公開してるパッチを第三者が勝手に
2chに貼った場合とか

772 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 12:08:04 ]
>>771
それのどこが問題?

773 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 12:18:33 ]
そのパッチを本人がプロジェクトに寄付する気になったとき
とりこめるかどうか

774 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 12:46:56 ]
第三者が何かしたからといって、パッチ作製者の権利が失われるわけないじゃん。
そうでないなら、ML とかに流れてるパッチを 2ch に転載しまくるだけで
そのプロジェクトの開発を妨害できちゃうよ。

775 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 13:08:30 ]
匿名サイトに置いてあるパッチを2chに貼った場合、
本人によるものか別の人によるものかも分かんねーしな

776 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 13:48:32 ]
強いて言えばパッチの作者に
「ヘンなシバリのある掲示板に勝手に貼るなよ」
って文句言われる可能性はあるな。

777 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 14:20:49 ]
文句言われる言われないはどっちでもいい。
問題はそのパッチをマージする事が可能かどうかだ。

778 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/03(金) 14:23:41 ]
マージするかどうかは
開発元とパッチ作者との間の問題。
2ch に貼るのは
2ch 管理人と投稿者とパッチ作者の間の問題。
両者に関係はない。

779 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/04(土) 00:28:59 ]
続きはこちらで

ライセンスあれこれ
pc8.2ch.net/test/read.cgi/unix/1032702590/



780 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/09(木) 19:58:10 ]
ある変数に EUC-JP や Shift_JIS などの文字コードの文字列が入っている状態で、
その文字コードを UTF-8 に変換したい場合は、どうしたら良いのでしょうか?

781 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/09(木) 20:08:35 ]
ccl

782 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/10(金) 22:12:33 ]
>>781
ありがとう。
でも、全然使い方が分からないわ orz

783 名前:名無しさん@お腹いっぱい。 [2006/03/21(火) 09:49:25 ]
こんなの見つけたお
ttp://www.okisoft.co.jp/esc/lecture/emacslisp.pdf

知識ゼロからのとっかかりにはいいんではないかと思う

784 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/21(火) 13:12:22 ]
ほかにも「やさしい Lisp の作り方」とかあるね
ttp://www.okisoft.co.jp/esc/whitepaper.html
あと、これは一部で有名だけど「美人プログラミングスタイル」とか

785 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 10:55:02 ]

以下の機能をmajar-modeに実装する方法でつまづいています。

「一行につき全角文字20文字まで、それを越えたら自動的に折り返して次の行へ」

行幅を全角20文字で整形したいだけなのですが・・・

truncate**系 とか fill-** 系とかの変数をうまく使えばいいのだろうかと試行錯誤しているのですが、錯誤ばかりで自滅気味です。わたしアタマワルイ。

だれか助けてー。

786 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 13:19:47 ]
>>785
先に決め事が必要になる。

(1) 半角文字の扱い
(2) 空白文字の処理
(3) 禁則処理(行頭、行末)

まともにやると、かなりめんどい。

787 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 13:39:20 ]
>>785
単に
(set-fill-column 40)
(auto-fill-mode t)
って話?

>>786 みたいな問題もあるし
仕様を見直した方がいい気がする。

788 名前:ゼウス [2006/04/03(月) 13:19:19 ]

おい、お前等



789 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/12(水) 01:27:25 ]
CやC++ファイルの編集での普通(gnuのモード)のインデントで、
字下げが少ない時はスペースでインデントしてくれるんですが、
tab幅以上の字下げの時にtabでインデントしてしまい困ってます。

これをスペースでインデントするようにするにはどうしたら良いでしょうか。



790 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/12(水) 02:11:47 ]
(set-variable 'indent-tabs-mode nil)
(setq-default indent-tabs-mode nil)

…10年以上使ってるけどこれでいいかな


791 名前:名無しさん@お腹いっぱい。 [2006/04/12(水) 08:06:40 ]
eshell 上で mysql の返答 (standard output) がしっかり
表示されるようにするにはどうソースを修正したらいいか教えろ
お前等ならわかるだろ


792 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 04:06:36 ]
やっぱわかんねーのか。。。
eshell のソースはかなり複雑だから仕方ねーのかもな

793 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 08:33:53 ]
わかるだろうけどおまえのためにわざわざ調べる気にはならんってだけ。

794 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 08:48:40 ]
>>793
お前自分の言ってる事矛盾してる
知ってんだったら調べる必要ないだろが

795 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 09:05:09 ]
調べればわかるんだろ

796 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/11(木) 11:34:11 ]
各種*.confみたいな
項目: 要素
的設定ファイルを読み込んでalistに溜め込んで行くようなのを考えてるんですが
なかなかすっきりしません。
一項目一要素でとりあえずいいんですが、
やっぱりなにかしらのバッファで開いてbuffer-substringしていくしかないんでしょうか。


797 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/11(木) 23:30:31 ]
しかないっつーかEmacsのファイル入力はバッファで開くのが普通なんだが。


798 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/11(木) 23:33:22 ]
バッファで開かないでファイルをlispでストリームとして扱う方法ってあるの?
数百メガの巨大ファイルをいじるとき便利っぽいけど。

799 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/12(金) 04:55:14 ]
tmpなバッファにinsert-file-contents。
find-file-noselectするよりは処理が軽いそうな




800 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/12(金) 05:10:22 ]
>>798
Common Lisp な xyzzy ならできるが、Emacs は不可能。

801 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/12(金) 08:14:54 ]
xyzzy は Common Lisp じゃない。cl ですら実装されてるのに
(mapcar (lambda (x) (typecase x
(integer "整数")
(string "文字列")
(t "その他")))
'(10 3.3 "ほげ"))
こんなのが動かないし。

802 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/13(土) 20:51:42 ]
>>801
それだけ?他にもあるでしょ。おせーて。

803 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/14(日) 11:40:22 ]
-batch
で別個に動かすのはどうでしょう?

804 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/05/14(日) 14:05:01 ]
>>798
insert-file-contents系で分けて読むとか、catあたりをstart-processしてfilterで読むとか。

テキストの場合マルチバイト文字の切れ目の処理が必要になるとちょっといやらしいかも

805 名前:名無しさん@お腹いっぱい。 [2006/06/24(土) 12:07:52 ]
>>801
適当だけど。

(defmacro?typecase?(check?&rest?type-list)
??(let?((#1=#:case))
???????(dolist?(item?(reverse?type-list)?#1#)
?????????(push?(if?(eq?(car?item)?t)
???????????????????`(t?,(cadr?item))
?????????????????`((subtypep?(type-of?,check)
?????????????????????????????',(car?item))
?????????????????????????????,(cadr?item)))
???????????????#1#))
????(cons?'cond?#1#)))

806 名前:805 [2006/06/24(土) 12:12:09 ]
あらら。。もう一回。

(defmacro typecase (check &rest type-list)
(let ((#1=#:case))
(dolist (item (reverse type-list) #1#)
(push (if (eq (car item) t)
`(t ,(cadr item))
`((subtypep (type-of ,check)
',(car item))
,(cadr item)))
#1#))
(cons 'cond #1#)))


807 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/30(水) 05:12:50 ]
未編集のリードオンリーのバッファ上で、何かあるタイミングで、
recenter すると変更フラグが立つことがある。
という現象に遭遇した人いないですか、とか聞いてみようと思った。
が、recenter の前に、(sit-for 0) を入れたら解決したみたい。

808 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/15(日) 22:07:25 ]
Emacs21とか22とかになると、デフォルトでいろんな機能が
組込まれてしまったので (occurとかgrepとか、検索もパワーアップしたり)、
新しい機能を作る機会が減って、最近このスレッドが寂しいのかなぁ、
などと思ったりした。

まとめサイトや紹介サイトも増えたしね。
ネタが出てくることを願って期待sage。


809 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/21(土) 21:51:36 ]
ちまちまと一年以上かけて作ってきたが、とうとうやる気が無くなったので晒すテスト。
使い方はソース読んでくれ。

ttp://grinocat.googlepages.com/yawn.el



810 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/21(土) 23:01:47 ]
ネ(・∀・)申!


811 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/22(日) 04:18:27 ]
>>809
すげぇ。すげぇよ、あんた。

812 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/10/27(金) 01:00:59 ]
w3みたいなもの?
動かせない(´;ω;`)

813 名前:<sage> [2006/11/06(月) 19:07:50 ]
この板の趣旨とは、ちょっと内容がずれてますが、教えて下さい。

shell-command-to-string 関数を使って、perl を呼び出そうとしていますが、
日本語引数を渡すとどこの段階でか分かりませんが、文字がばけます。

(shell-command-to-string "c:/Perl/bin/perl.exe e:/work/0my/scripts/test.pl てすと表示")

で、「test.pl」 では、

my $outfile = "e:/work/0my/scripts/test.txt";
my $out;

open ($out, "> $outfile") || die ("couldn't open $outfile to write into.");
print ($out $ARGV [0]);
close($out);

で、"test.txt" を shift_jis とかで開いても化けています。

DOS 上で日本語引数は、問題なく処理されるので、Elisp から、
perl に渡されるときに壊れると解釈していますが、どうすればいいのでしょう?


814 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/06(月) 21:51:47 ]
>>813
> perl に渡されるときに壊れると解釈していますが、どうすればいいのでしょう?
表の後に\を付ける、とか?

815 名前:sage [2006/11/07(火) 00:20:27 ]
>>814
レスサンクス。

表のあとに\マークってことは、「てすと表\示」って感じにですか? 
日本語文字は何を入れてもだめなので、それでもだめだと思います。

気になるのは、エンコーディングがどうやって認識されるかです。
elisp -> shell -> perl と引数として指定された文字列が渡されると思いますが、
このプログラム間のエンコードは、どうやって指定するのかが、よく分かりません。

おそらく日本語 OS 下では、デフォルトが shift_jis になると思いますが、
これは、elisp からシェルの間も同じかな?

816 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/07(火) 00:31:14 ]
process-coding-system とか coding-system-for-write とか?

817 名前:名無しさん@お腹いっぱい。 [2006/11/07(火) 00:45:40 ]
>>816 さんありがとう
(setq coding-system-for-write 'sjis)
でうまくいきました。m(_ _)m

818 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/07(火) 00:48:11 ]
>>817
letで束縛
ttp://www.fan.gr.jp/~ring/doc/elisp_20/elisp_33.html#SEC542

819 名前:名無しさん@お腹いっぱい。 mailto: [2006/11/07(火) 01:04:52 ]
>>818
この変数に対して値をグローバルに設定すべきではないということですね。
了解、let を使います。



820 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/13(水) 14:58:06 ]
emacs上でschemeの勉強しているんですが、
emacsのコメント行のインデントのしかたが気に入らないので
直したいと思っているのですが、
どこから始めたらいいのか、
さっぱり分かりません。

とりあえず
scheme-modeが定義されている場所の調べ方を教えていただけませんか?


821 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/12/13(水) 15:38:18 ]
>>820
> scheme-modeが定義されている場所の調べ方を教えていただけませんか?
find-function

> emacsのコメント行のインデントのしかたが気に入らないので
確かに comment-dwin は腐ってるからな

822 名前:名無しさん@お腹いっぱい。 [2006/12/14(木) 22:57:50 ]
>>820
つ Gauche

823 名前:名無しさん@お腹いっぱい。 [2007/01/14(日) 02:16:27 ]
初歩的な質問で聞き難いのですが教えて下さい。
バッファ中の文章の特定の文字を置き換えるようなコードを
作りたいのですが、condを使うのかifとprognを使うのかよく分かりません。
たとえば、文章中の”Red Hat”なら”赤帽”、”Vine”なら”葡萄”、”Windows”なら
”窓”というようにバッファ中の文章を変えたいです。

824 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 02:19:30 ]
>>823
replace-stringじゃだめなん?

825 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 02:26:41 ]
複数の文字列を一括して置換とかかな

826 名前:名無しさん@お腹いっぱい。 [2007/01/14(日) 02:33:07 ]
>>824
検索関数(search-forward)などでマッチした文字列を
replace-matchなどで変えようと思ったのですが、条件分岐が
よくわからなくて・・・

>>825
たぶん、そんな感じです。

827 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 02:36:59 ]
まずは仕様をきっちり決めれ。
「たぶん、そんな感じ」じゃなんだかわからん。

828 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 02:42:02 ]
基本事項なんだぜ?
(info "(elisp)Conditionals")
(info "(elisp)Combining Conditions")


829 名前:名無しさん@お腹いっぱい。 [2007/01/14(日) 02:49:31 ]
ありがとうございます。もう少し読んでみます。



830 名前:823 mailto:sage [2007/01/14(日) 03:25:03 ]
レス下さった方々、どうもありがとうございました。
非常に無駄な処理をしていますが、望む結果が得られました。

(defun change-font ()
(interactive)
(let ((p (point)))
(goto-char (point-min))
(while (not (eobp))
(if (search-forward "Led Hat" nil t) (replace-match "赤帽")
(forward-line 1)))
(goto-char (point-min))
(while (not (eobp))
(if (search-forward "Vine" nil t) (replace-match "葡萄")
(forward-line 1)))
(goto-char (point-min))
(while (not (eobp))
(if (search-forward "Windows" nil t) (replace-match "窓")
(forward-line 1)))
(goto-char p)))

過去ログ読んで勉強してきます。


831 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 05:53:52 ]
一行に2回出てきたらだめじゃね?

832 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 11:47:06 ]
検索語を \\| で分けて match-string で抜き出し cond で振り分けろ

833 名前:823 mailto:sage [2007/01/14(日) 13:38:34 ]
>>831
いえ、ちゃんと置き換えてくれました。

>>832
ご教授ありがとうございます。しばらくにらめっこします。

834 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/14(日) 14:59:07 ]
教授じゃなくて教示


835 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/15(月) 00:23:16 ]
> >>833
> > 一行に2回出てきたらだめじゃね?
>>831
> いえ、ちゃんと置き換えてくれました。

ホントに?
試していないけど VineVine とかいう行があったらダメっぽく見える。



836 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/15(月) 01:09:45 ]
`XWindows' も `X窓' になりそうだし、`divine' も `di葡萄' になりそう。
(後者は `case-fold-search' の値によるけど)

837 名前:823 mailto:sage [2007/01/15(月) 19:50:39 ]
>>835
>>836
ご指摘ありがとうございます。例外処理(?)を考えていませんでした。
まだ>>832さんの方法で出来ていないしどんだけバカなんだろ私・・・

838 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 06:46:15 ]
自分で頑張れてるのだから、頭が悪いとは思わないけどな。
やりつけないことは何でも最初は大変だ。
>>832, >>836とも正規表現が必要だし。

まず>>830の改善点としては(forward-line 1)、これは置換が終わったら次へ進む
ってことで入れたのだろうけど、次の行じゃなくて置換したテキストの直後に
移動すれば十分な筈。ところがreplace-match自身が

Leave point at the end of the replacement text.

という動作をしてくれる。

>>836は、正規表現を使うと「単語の先頭」という位置にだけ合うパターンが
使えるのでそれを使う。必要なら同様に「単語の末尾」というのも使える。
正規表現による検索はre-search-forward.

ここまでで一応、要求は満たされるんじゃないのかな。


>>832は正規表現を使うと「AまたはBまたはC」にマッチするパターンというのが
書ける。それで検索して、その後でそれがAだったかBだったかCだったかを調べ、
対応する文字列(A'なりB'なりC'なり)に置換するという方法。
これだとバッファの先頭から検索を始めるのが一回で済む。

839 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 08:06:14 ]
save-excursion も教えたれよ。



840 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 10:05:53 ]
replace-regexp を使う。

841 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 11:37:35 ]
>>840
This function is usually the wrong thing to use in a Lisp program.

842 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 12:59:54 ]
(defun foo (alist)
  (let ((regexp (regexp-opt (mapcar #'car alist) 'words))
        (table (make-hash-table :test 'equal))
        (normalize (if case-fold-search #'downcase #'identity)))
    (dolist (pair alist)
      (puthash (funcall normalize (car pair)) (cdr pair) table))
    (save-excursion
      (while (re-search-forward regexp nil t)
        (let ((new (gethash (funcall normalize (match-string 0)) table)))
          (replace-match new))))))

843 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 15:22:17 ]
ほとんどの漢字も普通にword syntaxだから全然だめだな

844 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/16(火) 16:47:50 ]
俺、elispでハッシュとか使ったことねーや

845 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 00:50:09 ]
オレも make-hash-table ってのははじめてみたけど、
elispのハッシュってのはcdr要素数1のalistと解釈して、だいたいおk?


846 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 01:15:55 ]
論理的にはOKだけど、計算量がぜんぜん違うよ?
何かアルゴリズムの入門書を読んだほうがよさげ

847 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 02:15:15 ]
最近知ったんだけど、バイトコンパイルした結果って
直接実行もできるんだね。

(defun fn(x)
(* x 2))
(byte-compile 'fn)
#[(x) "\211\\\301\\\207" [x 0] 2]

(#[(x) "\211\\\301\\\207" [x 0] 2] 10)
20


848 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 05:48:58 ]
ワロタ
つくづくエディタなんだな

849 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 06:23:03 ]
つまらん



850 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 14:28:00 ]
お前等の中にシリコンバレーで働いてる人いる?

851 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 23:10:28 ]
emacsで文字のフォントの大きさを変えるにはどうしたらよいですか?


852 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/17(水) 23:41:26 ]
もしemacs lispがstatic scopeだったら果たしてどうだったろうか

853 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/21(日) 00:40:22 ]
>>851
fontset

854 名前:名無しさん@お腹いっぱい。 [2007/03/28(水) 18:57:13 ]
(゚Д゚≡゚д゚)

855 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/29(木) 01:39:37 ]
>>854
うちの .Xdefault には, 未だに
> Emacs.Font: fontset-12 bold
> Emacs.Fontset-0: -shinonome-gothic-bold-r-*-*-12-*-*-*-*-*-fontset-12 bold
> Emacs.Fontset-2: -shinonome-gothic-bold-r-*-*-14-*-*-*-*-*-fontset-14 bold
...
> Emacs.Fontset-11: -shinonome-gothic-medium-r-*-*-24-*-*-*-*-*-fontset-24 medium
てなものが残ってて機能しているが...


856 名前:名無しさん@お腹いっぱい。 [2007/04/12(木) 10:48:03 ]
emacs ilspでwebプログラミング可能?

857 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 11:29:20 ]
>>856
「webプログラミング」っていうとどの辺の話?

858 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 11:45:50 ]
ttp://www1.odn.ne.jp/ymtz/tips.html#wwwsvr

こういうことだったりして

859 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 11:57:35 ]
AllegroServe とかそういう話かなぁ。
elisp じゃないけど。



860 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 13:32:42 ]
elservなんてのがあったなー。
もっとまともなのも多分あるだろうけど興味無いので知らない。

861 名前:名無しさん@お腹いっぱい。 [2007/04/12(木) 15:16:27 ]
emacsがwebサーバーになるのですね。もはやなんでもありですね。
elispはphpで作成するのと同様のwebプログラミングは可能でしょうか?
掲示板とか、アンケートなど。



862 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 15:18:15 ]
>>861
アクセスのたびに Emacs 呼ぶってこと?
まぁ不可能じゃないんじゃね。
やる気は起きないけど。

>>859 じゃだめなん?

863 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 04:31:21 ]
単純にphpスクリプトを書けるか?と聞けば
遊ばれずに済んだであろう>>861


864 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 09:45:15 ]
そういう質問じゃないっしょ。

865 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 15:06:43 ]
>>861
もちろん同様のことは可能。もちろん同様にはできないけどな。

866 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/13(日) 16:17:55 ]
定期的に M-x hoge を実行するにはどうしたら良いのですか?
答えが駄目なら、誰かヒントだけでも教えてくれないでしょうか。

867 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/13(日) 17:55:49 ]
timer

868 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 01:21:02 ]
23
という数値を16進数数値として扱い、
"35"にする方法はどんなのがあるでしょうか?

(let ((n 23))
(format "%d" (string-to-number (number-to-string n) 16)))

これは思いつきましたが、もちょっと簡単にならんかな、と。


869 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 06:39:30 ]
じゅうぶんかんたんだとおもう



870 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 10:48:34 ]
>>868
#x23

871 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 11:08:26 ]
>>868
なんで元が数値なんだろ。
3a とかの入力は考えなくていいの?

872 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/15(火) 20:18:46 ]
>>870
(read (concat "#x" n))
か。なんかびみょーに感じる。この表記がいけるのってemacs21以降あたり?

873 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/16(水) 00:01:09 ]
数値を concat できたのか…


874 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/16(水) 00:22:21 ]
ごめん。emacs21からはムリなはず。

875 名前:866 mailto:sage [2007/05/20(日) 00:46:22 ]
駄目だ分からない。
run-at-time 使おうにも hoge をどう指定したら良いのか不明……lisp は難しい orz
例えば、.emacs にどう書けば、自動で M-x hoge できますか? ; emacs の引数から起動するのではなくて。
あとは、start-process と while と sleep-for 辺りを組み合わせれば可能な気はするんだけど……さっぱり orz
週末に数時間しか PC に触れられないのは、現代社会をは思えない環境 orz

876 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 00:52:00 ]
run-with-timer 使うんじゃないの?
何がわからないのかがよくわからない

877 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 00:53:00 ]
もしかして M-x から指定してるものが関数名だってことを知らないとか?

878 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 03:58:00 ]
(setq hoge-timer (run-with-timer 0 1 'hoge))
(defun hoge ()
(interactive)
(message (current-time-string)))
(defun hoge-cancel ()
(interactive)
(cancel-timer hoge-timer))

M-x hoge
=>Sun May 20 03:56:18 2007

879 名前:lispp? [2007/05/20(日) 14:40:44 ]
LISPを学習して1週間目の者ですが、

(progn
(setq wara 10)
(setq waru 0)
(/ wara waru)
)
でエラーが発生します。

(if (equal waru 0)...)でなくて、catch??? throw???のような例外処理で対応したいのですが、
可能でしょうか?





880 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 14:50:53 ]
>>879
shakosv.sk.tsukuba.ac.jp/ShakoDoc/Editors/NEmacs/elisp-jman/html/eljman_104.html

881 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 17:00:06 ]
>>879
condition-case

elisp.infoのControl Structuresを参照。
Lispではcatch/throwの例外処理とsignal/condition-caseのエラー処理は別物
である点に留意されたし。

882 名前:名無しさん@お腹いっぱい。 [2007/05/20(日) 17:12:06 ]
xyzzy使っているのですが、 condition-caseで関数がないと表示されます。


883 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/20(日) 17:17:31 ]
板違い

884 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 20:48:43 ]
EmacsでのLispのプログラムについての質問です。
リストAとして((a b c) (d e f) (g h i))というリストがあるとして、このリストの中の要素であるリストの
最後の要素を返す関数を作る場合どうしたらいいでしょうか?


885 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 21:33:40 ]
>>884
各要素の cdr を見ていって、それが nil なものを返せばいいんじゃないの。
そういう話でない?

886 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 21:37:09 ]
>>884
(car (last (car (last '((a b c) (d e f) (g h i))))))

887 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 21:47:12 ]
884の補足ですが、
リストAを引数として(c f i)を返すような関数を定義したいのです。
また、リストAの要素がもっと多い場合にも対応できるようにしたいのです。

888 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 21:52:54 ]
>>887
(mapcar (lambda (x) (car (last x))) A)

889 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 22:00:23 ]
>>888
見たことないコマンドが多いのですが・・・。
初心者なのでもう少し分かりやすくしていただけるとありがたいのですが。



890 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 22:16:26 ]
標準の関数くらい自分でしらべろよ。

891 名前:名無しさん@お腹いっぱい。 [2007/05/28(月) 22:17:51 ]
そういった関数を使わないで定義したいんです。

892 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/28(月) 23:42:03 ]
lambda とか mapcar 使わないで lisp のプログラム書くのは
逆に難しいと思うぞ。

893 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:06:38 ]
それは無理な話だ

894 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:08:04 ]
ごめん
>>893>>891へね

895 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:11:56 ]
おk。mapcar も lambda も car も廃止してやったぞ。last は使わせてくれて…

(require 'cl)
(defun fun-887 (lst)
(loop for element in lst
collect (first (last element))))

last も禁止ならこうだ。

(require 'cl)
(defun fun-887 (lst)
(loop for element in lst
collect (first (reverse element))))


896 名前:名無しさん@お腹いっぱい。 [2007/05/29(火) 00:16:23 ]
>>895ありがとうございました
もう一つ聞きたいのは、数nとリストを引数として取り、
リストのn番目の要素を返す関数を定義したいのですが、
この関数を再帰を使って定義するにはどうしたらいいでしょう


897 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:24:12 ]
(defun list-ref (lis n)
(if (zerop n)
(car lis)
(list-ref (cdr lis) (- n 1))))

898 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:43:50 ]
んー?
ttp://questionbox.msn.co.jp/qa3033199.html

899 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 00:46:01 ]
最近なんでもかんでも聞く人多くない?




900 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 01:19:24 ]
mapcar を独自に定義しようとするとどう書ける?

901 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 01:29:48 ]
>>896
再帰使うまでもない。

(defun list-ref (lis n)
(nth (1- n) lis))

902 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 01:52:11 ]
(defun my-mapcar (func list)
(let ((rest list) (results ()))
(while (not (null rest))
(setq results (cons (funcall func (car rest)) results))
(setq rest (cdr rest)))
(nreverse results)))

とかかな。

903 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:01:06 ]
setq とか cons を使いたくないんですとか来た場合に備えておこう。

(require 'cl)
(defun my-mapcar-2 (func lst)
(loop for elem in lst
collect (funcall func elem)))


904 名前:名無しさん@お腹いっぱい。 [2007/05/29(火) 02:04:56 ]
>>898 つうか、そゆのは大抵自分では考えないだろうし、調べないだろうし、向上心もないだろうし、礼儀も知らないだろうし、
人の忠告も聞かないだろうから。さっさと答を与えればそれ以上しつこく聞いてこない軽い荒らしだと思って対応するが吉。

905 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:05:17 ]
cl は宗教上の理由でちょっと……。

906 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:09:23 ]
自分も書いてみた。リストしか考慮してない。
あんまり慣れてないからどっかまずいところあるかも・・・(自分への免罪符

(defun my-mapcar (func list)
  (defun my-mapcar-iter (func list rtn)
    (if (null list)
        rtn
      (my-mapcar-iter func (cdr list)
                      (setq rtn (cons (funcall func (car list)) rtn)))))
  (my-mapcar-iter func list '()))


907 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:11:39 ]
defunの中でdefunするのはじめて見た。

908 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:11:55 ]
あー、 reverse すんの忘れたorz

909 名前:名無しさん@お腹いっぱい。 [2007/05/29(火) 02:18:25 ]
Schemer の方ですか? Emacs Lisp じゃー再帰は実用的じゃないお。
しかも defun は internal define と違ってグローバルだし…。



910 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:23:05 ]
>>898の質問者はもうダメだろうね。レポートは突破できても試験は無理そうだ……。
授業二三回でればいいだろうになぁ。まったく聞いてなかったんだろうな。授業料無駄だったね。

911 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 02:58:34 ]
>>909
最近、ちょっと scheme で遊んでたもので・・・。

> Emacs Lisp じゃー再帰は実用的じゃないお。
調べてみたところ、再帰回数が max-lisp-eval-depth で制限されてる、
末尾再帰が最適化されない、のようなことがあるのですね。

> しかも defun は internal define と違ってグローバルだし…。
M-x help f で関数のリスト見たら、my-mapcar-iter があって驚きました。

よくよく考えてみたら、setq はいらなかった。
なんでつけたんだろう。
まずいところ多すぎorz


912 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 07:07:10 ]
>>905
改宗すればおk

913 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 10:07:37 ]
cl 使えば flet で関数内関数使えるよ。

914 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 12:55:46 ]
flet を使って書き直すなら、こんなかんじでしょうか。
たしかに my-mapcar-iter が隠れた。これ便利かも。

(require 'cl)
(defun my-mapcar (func list)
  (flet ((my-mapcar-iter (func list rtn)
          (if (null list)
              (reverse rtn)
            (my-mapcar-iter func (cdr list)
                            (cons (funcall func (car list)) rtn)))))
    (my-mapcar-iter func list '())))

915 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 22:24:57 ]
…再帰するなら labels じゃねーとダメなんじゃね? cl のバグ?
ズバリこうだろ。while 版より短い!! 俺のバイク小屋ハァハァ

(defun my-mapcar (func lst)
(let ((result nil))
(dolist (e lst)
(push (funcall func e) result))
(nreverse result)))


916 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/29(火) 22:27:10 ]
なんとなく nreverse なしのループで書いてみた
(defun my-mapcar (fun list)
  (let* ((result (list nil))
         (x result))
    (while list
      (setcdr x (list (funcall fun (car list))))
      (setq x (cdr x) list (cdr list)))
    (cdr result)))

>>915
flet を macroexpand してみればわかるよ
まあしょうがないんだろうけどちょっと気持ち悪いよね

917 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 08:50:13 ]
ずびまぜん。

elispで 16進数文字列を整数に変換する楽な方法ってありません?
(hoge "64") => 100
ってなるような。
(defun hoge (s)
(string-to-number (concat "#x" s)))
とかじゃ 0が返ってきてしまいました。


918 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 08:59:28 ]
(defun hage (s)
(string-to-number s 16))

(hage "64")

100 ウマー

919 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 09:16:44 ]
おお、そんなところに &optional があったとは...
infoをもっとちゃんと読むべきでした。
どうも有難うございました。




920 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 16:36:52 ]
>>868-

921 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/02(土) 21:22:45 ]
知ってる人も多いだろうけど C-h f めちゃくちゃ便利だよ。
関数定義してるソースの該当部分にも飛べる。

922 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/03(日) 00:27:47 ]
emacs22でも、mode-infoも動いてくれるしね。


923 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/10(日) 19:00:25 ]
あるオブジェクトに対し、car-safeが非nilとなる時
cdrでなくcdr-safeを使うべき局面ってある?

924 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/10(日) 23:36:38 ]
>>923
car-safe が non-nil なら対象は list ってことだから、そんな局面はない、
と思う。


925 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/27(水) 22:28:03 ]
同じ名前の変数 (defvar hoge)と関数 (defun hoge ())が定義されているとき、
変数だけ定義を消すことってできますか?

(unintern 'hoge) だと、両方消えてしまうので。


926 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/27(水) 22:36:59 ]
makunbound
c.f.
fmakunbound

927 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/27(水) 22:45:39 ]
ぬりがとう。

ところでこれ何て読むのですか?
(エフ)メイク・アン・バウンドでいいんかな?

思い出されるcreat()。


928 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/27(水) 23:18:45 ]
>ところでこれ何て読むのですか?
なんでしょうね?

>思い出されるcreat()。
なるw

929 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/29(金) 01:06:36 ]
defconstしてるものには、時に大文字のシンボルを使ってみるのも一興かなと
ふと思った。
たぶんウザいだろうけど。



930 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/07(火) 22:22:42 ]
EmacsがXで動いているときだけ、
C-zでアイコン化しない様にしたいと思っています。
Xで動いているのかterminalで動いているのか判別するには
どうしたらよいのでしょうか。

931 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/07(火) 22:29:27 ]
window-system

932 名前:930 mailto:sage [2007/08/07(火) 22:33:57 ]
>931
ありがとうございます。
とりあえず、
(if window-system (global-set-key "\C-z" 'shell))
としてみました。


933 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/21(火) 05:23:38 ]
M-x shell
を.emacsファイルの読み込み時に動作させるにはどうしたらよいのでしょうか。

934 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/21(火) 10:02:38 ]
本当に文字通りそうしたいのならば
(shell)
と書く。

935 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/21(火) 12:13:59 ]
>>934
できました。ありがとうございました。

936 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 17:18:02 ]
(global-set-key [?\C-;] 'なにか)
とか
(global-set-key "\C;" 'なにか)
とやってもエラーがでて動きません。
;をjにしたら動いたので”なにか”が間違っていることはいないと思います。

C-;やC-, C-. へのバインドを指定するにはどうしたらよいのでしょうか
どなたか教えていただけないでしょうか?


937 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 19:00:19 ]
[(control ?;)]

設定程度の質問なら、次回からelispスレじゃなくてemacsスレ行きな。

938 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 21:58:08 ]
>>937
ありがとうございます
今後は気をつけます
どうもすいませんでした

そのようにしても動きはしませんでしたが、
それはターミナルからの接続の仕様らしいと分かったので、
別のキーを割りあてることにします

939 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 22:06:20 ]
man ascii
で出てくるコントロールコード以外の
コントロールキーの組み合わせ以外は
端末じゃ動かないよ。



940 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/26(日) 22:09:03 ]
まちがえた。以外が一つ多かった。

941 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 01:55:47 ]
(func "/usr/bin/emacs" "/")
=> ("usr" "bin" "emacs")

こんな感じで、文字列からトークンを抽出する好い奴を
何方か識りませぬか?

942 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 02:03:17 ]
普通に1文字ずつチェックすれば良いじゃない。

943 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 03:14:56 ]
split-string

944 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 19:47:13 ]
>>943
幸あれ。
やっぱりあるよね。token で探してたよ

>>942
普通?とりあえずこんなん書いてた

(lambda (string delimiter)
(let* ((iter (lambda (str dlm lst)
(if (and (string-match dlm str) (substring str (1+ (string-match dlm str)) nil))
(funcall iter
(and (string-match dlm str) (substring str (1+ (string-match dlm str)) nil))
dlm
(cons (substring str 0 (string-match dlm str)) lst))
(cons (substring str 0 (string-match dlm str)) lst)))))
(funcall iter string delimiter ())))

945 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/27(土) 01:27:05 ]
下記のような独自スクリプトのメジャーモードを作っています。
function:
if hoge == 0 {
hogehoge;
}
elseif hoge ==1 {
if hoge2 == 0 {
hogehoge2;
}else{
hogehoge3;
}
}
end;
階層は上記のif文のみです。
自動インデントをつけたいのですがどうすればいいでしょうか?


946 名前:945 [2007/10/28(日) 08:47:43 ]
補足です。generic-x.elを使って作っています。


947 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/30(火) 10:08:00 ]
buffer-local-variableなるものがあるそうですが、
.emacs.elなどでsetq-defaultで設定した値は、
新しいバッファを作る度にバッファごとの値のコピーが作られてしまうんでしょうか。

カスタマイズ性から見るとsetq-defaultの方が使い易そうなのですが、
パフォーマンスに悪影響がでないか心配なんです。

948 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/30(火) 20:29:39 ]
make-variable-buffer-local されてるような変数の話だよね。
これは setq とかで書き換えた時点で、その buffer に local な変数が作られるってシステム。
書き換えるまではどの buffer でも初期値を参照してて、 setq-default はこの初期値を書き換える。
それ自体がコピーの原因になったりはしないはず。

949 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 08:26:40 ]
call-processとかの外部コマンド呼び出し関数で
コマンドの出力(標準出力)を文字列もしくは文字列リストで
返すようなものってないでしょかね?
いちいちバッファに出すのがとても無駄に感じる時がある



950 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 22:17:04 ]
set-process-filter

951 名前:名無しさん@お腹いっぱい。 [2007/11/29(木) 10:04:56 ]
みなさん、乙です。

コードの中で読み易さを上げるためダブルクオート中の文字列を改行して書きたいのですが、
その改行自体はコード上では無効にしたいのですが、どうすればいいですか?


(message "
listA,
listB,
listC")

これが以下のようにmini-buffer に出力して貰いたいのですが、

listA,listB,listC

そんな方法ありますか?

952 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/29(木) 11:08:37 ]
>>951
(message (concat
"listA,"
"listB,"
"listC"))

953 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/29(木) 12:39:04 ]
>>951
(message "\
listA,\
listB,\
listC")


954 名前:名無しさん@お腹いっぱい。 [2007/11/30(金) 05:59:54 ]
>>952, 953
サンクス。C と同じことできたのね。試せよオレ。







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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