[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 05/09 21:29 / Filesize : 48 KB / Number-of Response : 166
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Emacs Lisp 3



1 名前:デフォルトの名無しさん [2007/10/09(火) 05:39:53 ]
Emacs Lisp の専用スレ。
少数派による互助を中心に、初心者の相談も気が向けば受け付けます。
単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。

過去スレ
Emacs Lisp
pc2.2ch.net/test/read.cgi/tech/1004551074/
Emacs Lisp 2
pc11.2ch.net/test/read.cgi/tech/1068467385/

関連スレ
Emacs part 22
pc11.2ch.net/test/read.cgi/unix/1180828013/
【叩かれて】Emacs Lisp道場【強くなれ】
pc11.2ch.net/test/read.cgi/unix/1063880951/
Lisp Scheme Part18
pc11.2ch.net/test/read.cgi/tech/1186922295/

129 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 11:50:11 ]
一応言っておくけど、Lispを学びたいからEmacs Lispをやるっていうのなら、
括弧になれるとか入口程度に思っておいた方がいいよ。
Emacs Lispは、見た目、Lispなだけだから。
末尾再帰を最適化できないから、再帰で書くことが事実上できなかったり、色々とLispらしくないから。

130 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:40:51 ]
Emacs Lispはテキストエディタのマクロとは思えないほど多機能だけど
>>129に書かれてるような問題があるよということを>>127の人の最近のポストで書いてるね。
ttp://steve-yegge.blogspot.com/2008/11/ejacs-javascript-interpreter-for-emacs.html
Emacs LispでJavascriptを実装しちゃうってのも凄い話だけど。
あとLispの方言の説明がおもろい。

>Lisp is a whole family of languages, and can be broken down approximately as follows:
> * Scheme is an exotic sports car. Fast. Manual transmission. No radio.
> * Emacs Lisp is a 1984 Subaru GL 4WD: "the car that's always in front of you."
> * Common Lisp is Howl's Moving Castle.

131 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:02:07 ]
>>130
コメント欄みてみるとハウルネタがやたらウケてるな。このアニオタどもめ!

132 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:11:50 ]
言語仕様に問題のあるEmacs Lispだけどlispの総合環境としてはソースレベルデバッガあり、トレーサあり、
プロファイラあり勿論ディスアセンブラもありと割と至れり尽せりだったりする

133 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:43:30 ]
>>130
ハウル、みていないんだがw
Emacs Lisp の"the car that's always in front of you."をYahooに訳させたら、
いつもあなたの正面にある車。と訳したんだけど、どういう意味だ
1984 Subaru GLは
ttp://farm1.static.flickr.com/65/208717197_bde1198885.jpg
らしいけど、古い4WDって話か
>>132
そういう通常利用の一個上を行く使い方ってどういうのがあるんですかね
潜在能力が高いなら、もっと踏み込んで勉強したいところなんですが
ちょっとEmacs Lispをかじっただけですが、けっこうのことをEmacs1つでできそうだなと想像するんですが


Lisp関連であと2日ぐらいググって、今後のカリキュラムを組もうかな
言語仕様50ページだったSchmeは、ちょっとやりたくなるね
Schmeをやってから、Emacs Lispをやったほうが言語仕様も理解しやすいかな

関数名が長いのってEmacs Lispだけじゃなくて、Schmeもそうなんだね
略記もあるみたいだけど
個人的に長いほうが好きかも
保守しやすそうだし

チラシの裏
年齢(生まれ)比較
Lispは1958年生まれの51歳
Schmeは1970年代生まれの30代
Comon Lispは1984生まれの25歳
Emacs本体(Emacs Lisp)は約1976年生まれ, 32〜33歳
Pythonは1991生まれの18歳
C言語は1972年生まれの37歳

134 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:19:28 ]
>>133
"the car that's always in front of you."
は、俺だったら
「いつもそこにある車」 って訳すかな
(=古くてダサくて定番中の定番で面白くないけど、結局乗るのはこの車なんだよね、
的な意味で)

あと、「Scheme」 だぞ。typoかと思ったけど全部Schmeって書いてるってことは
本気で勘違いしてる?

135 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:27:08 ]
schemeやelispはhogeライブラリのfoo関数ってのをhoge-fooみたいに定義せにゃならんからね
この規則を使って階層になったライブラリの関数、hogeライブラリの中にあるfooライブラリの関数fの名前を付けると
hoge-foo-fのようになってしまう
長くなるのは仕方ないけど、この規則ででかいアプリケーションは書きたくないよね

136 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:31:26 ]
the car that's always in front of you というネタの原型はフォードT型。
あまりに売れすぎて、「どんなレーシングカーもフォードTの前に出ることはできない。どれだけ抜いてもまだ前にもう1台いる」というジョークが生まれたので。
スーパーカーとの対比で、性能はプアだけどみんなが使ってる普及版っていうニュアンスだろうな。

elispはよくも悪くもEmacsと切り離せないものなので、本当に言語の勉強をしたいならcommon lispかschemeのほうがいいよ。
逆にEmacsいじって遊びたいならelisp使うしかないし。

137 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:39:45 ]
>>136
134だが勉強になった。トン



138 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:12:24 ]
>>136
> elispはよくも悪くもEmacsと切り離せないものなので、本当に言語の勉強をしたいならcommon lispかschemeのほうがいいよ。
言語の勉強したいまでは、まだ至っていません
Emacsを使いこなせるようになりたいだけで

Schemeは、知っていて損はなさそうですね
チュートリアルの語彙も特徴的で好奇心をそそられる
英語・日本語の資料も豊富そうで資料には、困らないだろうし
プログラマとしての幅が広がるなら、なおうれしいかな

139 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:26:28 ]
俺はバッファ、リージョン、選択範囲なんか用の
map関数を書いてよく使ってるんだがこれ便利よ
色々関数を別途定義しといて
関数を行に対して呼び出す

2chに書き込むときによくやるのは
タブ→スペース変換と
半角スペース→nbsp変換
こうするとプログラムはインデントされて見やすい

ところで、久しぶりにここきたんだが
xyzzyスレってどこいったの?
見つからないんだけど

140 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:34:37 ]
ソフトウェア板とWindows板に1つずつあるよ。

141 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:45:02 ]
あったあった、さんきゅー

142 名前:デフォルトの名無しさん [2009/02/19(木) 18:25:06 ]
行の(半角相当で)80文字目の位置をを色づけしたいとおもったんですが,
とりあえず思いついた
'(("^......................................................\
.........................\\(.\\)" 1 highlight-long-line-face append))
というのをfont-lock-add-keywordsして加えたところ、
当然ながら全角文字をいれると後ろにずれました

半角で80文字目の位置をを色づけする方法について、
なにかお知恵を拝借できませんでしょうか?

143 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 19:21:13 ]
www.emacswiki.org/emacs/ColumnMarker

144 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:19:43 ]
質問者じゃないけど
めちゃめちゃ重いなそれw

145 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 15:29:29 ]
>>143
ありがとうございます
そんなものが作られてたんですね、試してみます

146 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:05:35 ]
>>144
うまい工夫をしないと速くならないだろうからなぁ。常に80文字目を数えるって
いうことだしね。

147 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:00:47 ]
cygwin環境下でgaucheをリッチに使いたくて
行ごとに色を変えたいんですが教えてください

まさに自分がやりたいことがこれ
ttp://pitecan.com/codeblog/2006/01/emacs.html

上のプログラムをざっと読んだ感じ、
色の変更に関するプリミティブな部分ってのは
「put-text-propertyに背景色を設定したfaceを設定する」
というように感じたのですがあってますか?

それらしきコードを書いてみたのですがうまくいかず・・

(setq symbol (make-symbol "test"))
(setq face (make-face symbol))
(set-face-background face "DarkSeaGreen1")
(point)
134 ←評価結果
(point)
146 ←評価結果
(put-text-property 134 146 'face face)



148 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:02:07 ]
あ、補則。このコードは行は意識してなくて、とりあえず指定箇所の背景色を変えたいだけです

149 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:19:05 ]
とりあえずfont-lock-faceにしたら動いたけど
(put-text-property 1 20 'font-lock-face 'highlight)

150 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:39:13 ]
ありがとうございます。
それを実行したときはtが返るんですよね?
M-x list-faces-displayで書いてあるフェイスをいくつかうちこんでは見ましたが
自分の環境ではnilが返ってきて色が変わらないです

↓動作はよくわかってませんが、これを切り替えた場合はちゃんと色が変わります
(global-font-lock-mode t)
(global-font-lock-mode nil)

今日は寝て、また明日調べてみますわ

151 名前:デフォルトの名無しさん [2009/02/25(水) 12:19:45 ]
ver22で拡張された \,(function \1) みたいなのが
replace-match では使えない(不正な\エラーになる)のは何で?

こんな感じ↓
(re-search-forward "\\(.+\\)" nil t)
(replace-match "\\,(my-func \\1)" nil nil)
=> Invalid use of `\' in replacement text


152 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 15:06:59 ]
est

153 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:08:20 ]
>>151
君の頭が腐っているというのを疑った方がいいよ

154 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:26:35 ]
>>151
プログラマブル正規表現だっけ?
よくわからん

155 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 01:11:40 ]
プログラマブルなのが使えるのは、インタラクティブに実行した場合だけでしょ。

NEWS
*** When used interactively, the commands `query-replace-regexp' and
`replace-regexp' allow \,expr to be used in a replacement string,

ちなみに replace-regexp を実行したら次のように展開された(repeat-complex-command)。

(replace-regexp "\\(.+\\)"
(quote
(replace-eval-replacement replace-quote
(my-func (match-string 1))))
nil
(if (and transient-mark-mode mark-active)
(region-beginning))
(if (and transient-mark-mode mark-active)
(region-end)))

で、replace-regexp をプログラムの中で使うのはbadなので、

(while (re-search-forward "\\(.+\\)" nil t)
(replace-match (my-func "\\1") nil nil))


156 名前:151 mailto:sage [2009/02/28(土) 01:47:45 ]
>> 154
そんな名前があるとは知らなんだ。
google先生は記号の検索には弱いしね・・・

>> 155
サンクス。インタラクティブ専用だったんだ。
よく使う置換の組を「お気に入り」みたいに登録して一発で呼び出せるlispを作ってたんだけど、
仕組み上、正規表現は自由に指定可能だから関数決めうち実行ができなくて。
プログラマブル正規表現は非対応とあきらめるしかないか。

157 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 03:23:53 ]
>> と数字の間は開けないで



158 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:18:39 ]
起動時にインタラクティブな関数を自動的に呼び出すにはどうしたらいい?
2画面で起動して、片方にSchemeインタプリタを起動したい
2画面の分割は、.emacsに(split-window-vertically)を追記したらうまくいったが
M-x run-schemeが呼び出せないんだ

159 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:50:34 ]
(run-scheme) ではだめなのけ?

160 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:14:03 ]
だめぽ。そうするとこんなわけわからんエラーが出る
Wrong number of arguments: #[(cmd) "\304\305!\204^Y^@\306^H!^Y\307\310\311 @\312 A%q\210\313 \210)^H^R\305^S\314\305\
!\207" [cmd cmdlist scheme-program-name scheme-buffer comint-check-proc "*scheme*" scheme-args-to-list apply make-comint "s\
cheme" nil inferior-scheme-mode pop-to-buffer] 6 ("/usr/share/emacs/21.2/lisp/cmuscheme.elc" . 6428) (list (if current-pref\
ix-arg (read-string "Run Scheme: " scheme-program-name) scheme-program-name))], 0

161 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:18:46 ]
describe-function(C-h f)ぐらい覚えような

162 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:29:14 ]
>>160
(run-scheme scheme-program-name)


163 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:48:57 ]
(call-interactively 'run-scheme)


164 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:28:41 ]
>>161-163
d牛d牛トーン・・カツ!
すばらしく快適な環境になった

165 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:07:00 ]
>>164
(call-interactively 'run-scheme)
これしらんかった、すげぇ勉強になった、ありがとう
いままでintaractive関数の機動失敗時はいつも.elの中調べてた。







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

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

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