Emacs Lisp 3at TECH
Emacs Lisp 3 - 暇つぶし2ch145:デフォルトの名無しさん
09/02/20 15:29:29
>>143
ありがとうございます
そんなものが作られてたんですね、試してみます

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

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

まさに自分がやりたいことがこれ
URLリンク(pitecan.com)

上のプログラムをざっと読んだ感じ、
色の変更に関するプリミティブな部分ってのは
「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:デフォルトの名無しさん
09/02/23 23:02:07
あ、補則。このコードは行は意識してなくて、とりあえず指定箇所の背景色を変えたいだけです

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

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

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

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

151:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/25 15:06:59
est

153:デフォルトの名無しさん
09/02/25 17:08:20
>>151
君の頭が腐っているというのを疑った方がいいよ

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

155:デフォルトの名無しさん
09/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
09/02/28 01:47:45
>> 154
そんな名前があるとは知らなんだ。
google先生は記号の検索には弱いしね・・・

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

157:デフォルトの名無しさん
09/02/28 03:23:53
>> と数字の間は開けないで

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

159:デフォルトの名無しさん
09/02/28 22:50:34
(run-scheme) ではだめなのけ?

160:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/28 23:18:46
describe-function(C-h f)ぐらい覚えような

162:デフォルトの名無しさん
09/02/28 23:29:14
>>160
(run-scheme scheme-program-name)


163:デフォルトの名無しさん
09/03/01 09:48:57
(call-interactively 'run-scheme)


164:デフォルトの名無しさん
09/03/01 14:28:41
>>161-163
㌧牛㌧牛トーン・・カツ!
すばらしく快適な環境になった

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



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch