Emacs Lisp 3
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2007/10/09(火) 05:39:53少数派による互助を中心に、初心者の相談も気が向けば受け付けます。
単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。
過去スレ
Emacs Lisp
http://pc2.2ch.net/test/read.cgi/tech/1004551074/
Emacs Lisp 2
http://pc11.2ch.net/test/read.cgi/tech/1068467385/
関連スレ
Emacs part 22
http://pc11.2ch.net/test/read.cgi/unix/1180828013/
【叩かれて】Emacs Lisp道場【強くなれ】
http://pc11.2ch.net/test/read.cgi/unix/1063880951/
Lisp Scheme Part18
http://pc11.2ch.net/test/read.cgi/tech/1186922295/
0002デフォルトの名無しさん
2007/10/09(火) 15:42:410003デフォルトの名無しさん
2007/10/10(水) 01:16:090004デフォルトの名無しさん
2007/10/13(土) 00:14:530005デフォルトの名無しさん
2007/10/13(土) 00:17:010006デフォルトの名無しさん
2007/10/13(土) 22:02:03そんなことよりコンスセルの話をしようぜ
0007デフォルトの名無しさん
2007/10/13(土) 22:37:420008デフォルトの名無しさん
2007/10/14(日) 18:51:500009デフォルトの名無しさん
2007/10/14(日) 19:43:25ファイルから一行読み込む、ってどうやるの?
ファイルは馬鹿でかいから、バッファに全部は読み込めない。
0010デフォルトの名無しさん
2007/10/14(日) 20:13:060011デフォルトの名無しさん
2007/10/29(月) 23:54:17リージョンを指定して M-| wc -c だと、改行コードなどがバッファのものと違う、
string-width だと TAB が 8 にカウントされる、改行がカウントされない、
length だとマルチバイト文字も 1 文字とカウントする、
など、どれもちょっと期待と違います。
ちなみに、最終的には mode-line に表示させたいので、
外部プロセスなどは使わずにすませたいところです。
何かいい方法ないでしょうか?
0012デフォルトの名無しさん
2007/10/30(火) 02:23:120013デフォルトの名無しさん
2007/10/30(火) 11:33:170014デフォルトの名無しさん
2007/10/31(水) 00:20:40>>12 を参考にコードを書いてみましたが、
1MBくらいのファイルになるとスクロールに影響がありました。
私の組み方も悪かったのかも知れませんね。
バッファ全体を substring して temp-buffer に insert して encode して length… だったので。
きっと、もちょっと効率良くできるのでしょう。
で、mode-line の表示をどうしたものかと xdisp.c を眺めていたのですが、
mode-line-format に %i や %I が使えることが分かったので、
もうこれでいいコトにします。
ありがとうございました。
0015デフォルトの名無しさん
2007/10/31(水) 23:46:14変更がなければ再計算する必要ないと思うが。
0016デフォルトの名無しさん
2007/11/02(金) 01:15:53undo-list はアテにならないから使えないと思うんだけど、
バッファに変更があったことをどうやって知ればいい?
0017デフォルトの名無しさん
2007/11/02(金) 03:27:25buffer-undo-listじゃどうアテにならないのかおせーて。
0018デフォルトの名無しさん
2007/11/02(金) 23:30:07…と思ったけど、変化したら再計算するんだから、十分アテになるね。
0019デフォルトの名無しさん
2007/11/04(日) 10:58:580020デフォルトの名無しさん
2007/11/06(火) 23:59:32おお、これなら…、と思ってやってみましたが、
少し速くタイプすると描画がついてきませんでした。これは CPU の性能のせいかな?
もちろん、スクロールには影響なかったですよ。ありがとうございます。
after-change-functions 自体は便利そうなので、別の何かに使います。
0021デフォルトの名無しさん
2007/11/25(日) 23:44:53Rubyが一応は書けます。
OSはUbuntu7.10を使っています。
質問なのですが
yatexは.elファイルをどっかに置いているのだと思いますが
これはどこに置いてあるのですか?
rpm系を使っていて
rpm -ql yatexのような事が出来ればいいのですが良く分かりません。
まずこれについて方法を教えていただければと思います。
次に、
例えば/usr/libとかに.elファイルが置いてあるとして
emacsはどこに書いてある命令でこれを読みに行くのでしょうか?
最後に
.emacsというのにelispを書くとemacsをカスタマイズ出来るそうですが
.emacsに例えば
(set-language-environment "Japanese")
(set-default-coding-systems 'euc-japan)
(set-terminal-coding-system 'euc-japan)
と書いた場合、確認した中では
何もファイルを指定せずにファイルを開いた場合と
.rbファイルを開いた場合に設定が反映されましたが、
.texの時は変わらず、JISのままでした。
例えば/usr/libにyatex.elというのがあると仮定して、
おそらくここにJISにしなさいという命令が書いてあるものと思われ
それにより上書きされているものと思われますが、
同一種の命令の場合、
.emacsの設定の方を優先順序を上にするにはどうすればいいですか?
0022デフォルトの名無しさん
2007/11/25(日) 23:54:29ライブラリの場所は M-x locate-library でわかるよ
0023デフォルトの名無しさん
2007/11/26(月) 00:02:34無理やりですが
locate yatexで調べました。
/usr/share/emacs/site-lisp
とかにそれらしきパッケージが入っていますね。
しかしどうやって読み込んでるのかとか
どうやってyatexを使用した場合でも.emacsに書いたeuc-jpを使いなさい
という命令を優先させる事が出来るのかが分かりません・・・
0024デフォルトの名無しさん
2007/11/26(月) 03:19:52C-h iでyatexを探して読んでみるといい。
文字エンコーディングの設定方法はそこに書いてある。
0025デフォルトの名無しさん
2007/11/26(月) 13:07:150026デフォルトの名無しさん
2007/12/09(日) 06:15:49Emacs Lispの55%は陰謀で出来ています。
Emacs Lispの39%は祝福で出来ています。
Emacs Lispの6%は成功の鍵で出来ています。
0027デフォルトの名無しさん
2007/12/11(火) 23:00:49&optional な引数で、上書きと挿入を切り替えることができると嬉しいです。
(setq test '(A B C D E))
(func test 3 X)
=> (A B C X E)
(func test 3 X t)
=> (A B C X D E)
みたいなものがあったら嬉しいのですが、標準関数でこれと同じようなものはありますか?
自分でやると
(append (reverse (nthcdr (- (length lst) n ) (reverse lst)))
X
(nthcdr n lst))
みたいになってしまうのです。
0028デフォルトの名無しさん
2007/12/12(水) 01:45:09(setf (nthcdr n lst) (cons new (nthcdr n lst)))
;; 非破壊的挿入
(let ((lst (copy-list lst)))
(setf (nthcdr n lst) (cons new (nthcdr n lst)))
lst)
;; 破壊的上書き
(setcar (nthcdr n lst) new)
;; 非破壊的上書き
(let ((lst (copy-list lst)))
(setcar (nthcdr n lst) new)
lst)
or
(substitute-if new 'identity lst :count 1 :start n)
setfとsubstitute-ifはCL。あとは詳しい人が降臨するのを待とう。
おれもここは苦手なんだ。
0029デフォルトの名無しさん
2007/12/12(水) 09:05:50仕様バグ。使い方は
(setq test (func test 3 x t))
でないとダメ。
なぜなら0番目に挿入がありえるから。
0030デフォルトの名無しさん
2007/12/13(木) 04:04:57???
そういうこともあるから値返してんじゃないの?
どのへんがバグなのか分からないオレははんぶん素人です。
0031デフォルトの名無しさん
2007/12/13(木) 13:25:22保存のたびに色が変化する(tomato→black)ようにしたくて、以下を.emacsに書いたのですが、エラーが出てしまいます。
小関氏の『入門Meadow/Emacs』に載っているソースを真似たのですが、どこが問題なのでしょうか?
よろしくお願いします。
●.emacs
(setq highlight-changes-colours
(let ((r 255)(g 99)(b 71) ret) ;初期値tomato
(while (> (+ r g b) 0) ;だんだん色褪せる
(setq ret (append ret (list (format "#%02x%02x%02x" r g b))))
(setq r (* (/ r 10) 8)
g (* (/ g 10) 8)
b (* (/ b 10) 8)))
ret))
●エラー
Wrong type argument: symbolp, (* (/ b 10) 8)
0032デフォルトの名無しさん
2007/12/13(木) 14:07:350033デフォルトの名無しさん
2007/12/13(木) 19:21:51Emacsが日本語でやさしく教えてくれるようになるまで別のもの使っときw
0034デフォルトの名無しさん
2007/12/13(木) 19:35:30setqのgの後ろに幽霊が居るぞ
0035デフォルトの名無しさん
2007/12/13(木) 20:41:010036デフォルトの名無しさん
2008/01/27(日) 15:44:350037デフォルトの名無しさん
2008/01/28(月) 19:23:270038デフォルトの名無しさん
2008/01/28(月) 19:30:050039デフォルトの名無しさん
2008/02/10(日) 17:03:580040デフォルトの名無しさん
2008/02/10(日) 18:17:530041デフォルトの名無しさん
2008/02/10(日) 20:18:00(defun hoge()
(interactive)
(setq self (second (backtrace-frame 3)))
(message "%s" self)
)
お、できた。
サンクス
0042デフォルトの名無しさん
2008/02/13(水) 17:30:07selfが汚染されるだろ
0043デフォルトの名無しさん
2008/02/17(日) 23:27:54こんな感じだと思うんですが
(and (stringp arg) (not (string= arg "")))
これに相当する標準のコマンドってありますか?
0044デフォルトの名無しさん
2008/02/17(日) 23:34:220045デフォルトの名無しさん
2008/02/17(日) 23:37:090046デフォルトの名無しさん
2008/02/21(木) 02:30:34あれ何のためにあるの?
0047デフォルトの名無しさん
2008/02/21(木) 04:11:130048デフォルトの名無しさん
2008/02/21(木) 10:15:45a2ps-j とかはそれを認識して改ページしてくれるので、
見やすくするために入れる。
0049デフォルトの名無しさん
2008/02/21(木) 13:19:31一つのソースファイルをいくつかのセクションに分けたいときに使ってるね。
Emacsではbackword-page (C-x [), forward-page (C-x ])でページ単位で移動できる。
0050デフォルトの名無しさん
2008/02/22(金) 00:51:29なるほど。勉強になりました。
0051デフォルトの名無しさん
2008/03/28(金) 02:29:22(defun foo (str num)
(let (i result)
(dotimes (i num result)
(setq result (concat result str)))))
こんなのを作るしかないんですかね?
0052デフォルトの名無しさん
2008/03/28(金) 02:48:27(defun X (s n) (apply 'concat (make-list n s)))
0053デフォルトの名無しさん
2008/03/28(金) 03:10:46おお、素晴らしい。
そっちの方が色々応用できそうですね。
0054デフォルトの名無しさん
2008/03/28(金) 03:21:42カキコしたあと思い出したんだけど、前スレで同じ質問あったな。いくつかレスがついてる。
http://pc11.2ch.net/test/read.cgi/tech/1068467385/936
> perl の x 演算子みたいな関数って無い?
> make-string の文字列版というか、
> (hogefunc 3 "abc")
> => "abcabcabc"
> みたいなやつ。
0055デフォルトの名無しさん
2008/03/28(金) 03:31:06mapconcat の方がいろいろ対応できるよ
0056デフォルトの名無しさん
2008/03/28(金) 03:36:39確認しました。 ありがとうございます。
941 :デフォルトの名無しさん:2007/09/08(土) 00:20:18
ということは、まとめると
(mapconcat 'identity (make-vector 3 "abc") nil)
が一番速いのかね
>>55
みたいですね。
こういうコードをさらっと書けるように修行します。
0057デフォルトの名無しさん
2008/03/28(金) 08:20:28ぱっとみて思いついた。
0058Zeno ◆5nZQbNmQPs
2008/03/28(金) 09:47:16でもそれは >>51 のように順々に concat していくのと同様だから遅すぎである。
(reduce 'concat (make-vector 10000 "abc"))
Time: 5182 ms
(mapconcat 'identity (make-vector 10000 "abc") nil)
Time: 2 ms
0059デフォルトの名無しさん
2008/03/28(金) 10:29:12さっさと本スレで初心者にやさしく答えてあげてください。
0060デフォルトの名無しさん
2008/03/28(金) 22:07:36(mapconcat (lambda (x) "abc") (make-bool-vector 10000 nil) nil)
くり返し回数が十分大きい場合はこっちのが速い
(with-temp-buffer
(let* ((n 10000) (s "abc") (l nil))
(while (/= n 0)
(setq l (cons (= 1 (logand n 1)) l))
(setq n (lsh n -1)))
(while (progn (if (car l) (insert s)) (setq l (cdr l)))
(insert-buffer-substring (current-buffer) (point-min) (point-max)))
(buffer-string)))
0061デフォルトの名無しさん
2008/03/28(金) 22:50:02思いつく柔軟さはいいと思うけど、
そんなコード氾濫してたら嫌だというのが正直なとこだな
0062デフォルトの名無しさん
2008/03/29(土) 14:02:440063デフォルトの名無しさん
2008/04/19(土) 05:38:06$foo =~ s/abc/def/;
みたいにして変数の中身を正規表現を使って置換することはEmacsLispで出来ますか?
perfume-replaceをどう使っていいのか分かりません
0064デフォルトの名無しさん
2008/04/19(土) 06:58:41replace-regexp-in-string
0065デフォルトの名無しさん
2008/04/19(土) 06:58:49replace-regexp-in-string でいいんじゃね? と思ったが、
s/abc/def/ じゃなくて s/abc/def/g になっちまうな。
(let ((foo "abc123abc"))
(setq foo (replace-regexp-in-string "abc" "def" foo)))
⇒ "def123def"
replace-match なら s/abc/def/ になるかな。
(let ((foo "abc123abc"))
(string-match "abc" foo)
(setq foo (replace-match "def" nil nil foo)))
⇒ "def123abc"
0066デフォルトの名無しさん
2008/04/19(土) 07:09:01あー s/abc/def/gでいいんです。すいません
とりあえずreplace-regexp-in-stringとstring-matchの使い方を覚えます
どうもありがとうございました
0067デフォルトの名無しさん
2008/04/27(日) 07:34:32how-manyのソースを見てみたところ
(defun how-many (regexp &optional rstart rend)
と、引数を3つしかとらないみたいなのですが
バッファ内で(how-many "aa" nil nil nil)と引数を4つ渡して評価しても何故か
普通に動作します。
どうして引数を4つ渡しても動作するんでしょうか?
emacsのバージョンは22です
006867
2008/04/27(日) 07:50:01使ってるバージョン(22)と見たソースのバージョン(21)が異なってただけでした。orz
22のソースだとちゃんと引数は4になってました。
あともう1つわからない点があって、22のcount-matchesの説明をc-h fで見ると
the function behaves in all respects has if it had been called interactively.
という英文があるんですが、これはどういう意味なんでしょうか?
特にin all respects has という部分がわかりません。
0069Zeno ◆5nZQbNmQPs
2008/04/27(日) 08:12:30>>68
その英文は少々不自然である。 例えばそれは
if interactive is t, the function behaves as if it had been called interactively (in every respect).
(もし `interactive' が t であるならば、この関数は interactive に呼ばれた時と同じ動作をする。)
と訂正されるべきだろう。 "has" は "as" であって、単純なタイポである。
0071Zeno ◆5nZQbNmQPs
2008/04/27(日) 08:40:00貢献できて嬉しいよ。
0072デフォルトの名無しさん
2008/04/30(水) 03:42:360073デフォルトの名無しさん
2008/04/30(水) 03:52:540074デフォルトの名無しさん
2008/04/30(水) 20:39:140075デフォルトの名無しさん
2008/05/05(月) 15:16:22Google Desktop の検索結果に time というプロパティがあり、それを通常の日付/時間表示に変換する方法が分かりません。どうすればいいのでしょうか?
;Google Deskitop の time の値(milie second): 128542440648970000
; 試してみたこと。
; current-time-string に渡すため (high low)のフォーマットにしようとこころみた。
(let* ((second 128542440648970)
(high (/ second 65535))
(low (logand second 65535)))
(List high low))
;こんな結果になる。
(-380 28938)
0076デフォルトの名無しさん
2008/05/05(月) 19:21:47(high (calc-eval (concat second " / 65535")))
(low (calc-eval (concat "and(" second ",65535"))))
(list high low))
=> ("1961431916.52" "28938")
で結果は正しい?
0077デフォルトの名無しさん
2008/05/08(木) 12:32:31レスありがとう。
'high' が integer じゃないって怒られた。だめみたいです。
0078デフォルトの名無しさん
2008/05/08(木) 13:15:070079デフォルトの名無しさん
2008/05/08(木) 14:11:3165535 じゃなくて 65536 じゃないか?
0080デフォルトの名無しさん
2008/05/08(木) 16:53:42の出力が日本語を含むリストのはずなのですが
\222 が連続して並んでます
nkfでも変換できないみたいです
どうすれば普通の日本語にできるのでしょうか?
0081デフォルトの名無しさん
2008/05/08(木) 17:05:32--batch の出力は必ず iso-2022 になるはず。
0082デフォルトの名無しさん
2008/05/11(日) 18:02:06ちなみに、
http://www.jaist.ac.jp/~n-yoshi/tips/junk_elisp.html#bytecompile
の、保存時に自動バイトコンパイルするよう設定を参考に、(byte-compile-file "~/.emacs.el")を(eval-current-buffer)に書き換えたりしてみたのですが、それだと、Emacsが重くなってダメでした。
高林哲氏のauto-save-buffersを使っているせいもあるんでしょうが。
0083デフォルトの名無しさん
2008/05/11(日) 22:45:10その真上にある終了時に byte-compile ってやつはダメなの?
0084デフォルトの名無しさん
2008/05/12(月) 02:51:56kill-buffer-query-functions で eval してはどうでしょうか。
(add-to-list 'kill-buffer-query-functions
(lambda ()
(when (string= (expand-file-name "~/.emacs.el")
(buffer-file-name))
(eval-buffer))
t))
008582
2008/05/12(月) 05:10:30さっそく試したところ、うまいこと動きました。
ただ、やはり、バッファ終了時ではなく、手動保存時に
add-hookすることができればそれがベストかなと、
思い直した次第です。
つまり、'after-save-hookだとauto-save時にも適用されてしまいますが、自分でC-x C-sした時だけeval-bufferするようなことって、できますでしょうか?
たびたびすいませんです。これで最後の質問にいたします。
0086デフォルトの名無しさん
2008/05/12(月) 08:28:30eval-bufferして本来の動作をするようなelispを定義して
C-xC-s のコマンドに上書きすればいいだけじゃないか。
0087デフォルトの名無しさん
2008/05/12(月) 08:28:310088デフォルトの名無しさん
2008/05/12(月) 08:58:59interactive-p で auto-save かどうかを判定できるかも。
0089デフォルトの名無しさん
2008/05/12(月) 09:30:03どうすればいいですか?
わかる方がいましたら教えてください。
0090デフォルトの名無しさん
2008/05/12(月) 09:43:01マークして C-x r t C-q TAB RET
基本的な操作は本スレで質問しような。
0091デフォルトの名無しさん
2008/05/12(月) 15:52:28なぜかうちの環境ではならない
ubuntu7.10
0092デフォルトの名無しさん
2008/05/13(火) 12:03:29そんな長いコマンドがちょっといやで,
C-c C-tあたりでできるようにしたいです
0093デフォルトの名無しさん
2008/05/13(火) 13:28:35じゃあチラシの裏に書く前にさっさとそうしてください。
0094デフォルトの名無しさん
2008/06/20(金) 07:24:040095デフォルトの名無しさん
2008/07/04(金) 09:18:57(defmacro definsert (name str)
(let ((dstr (gensym)) (len (gensym)))
`(defun ,name ()
(let* ((,dstr (concat ,str ,str)) (,len (length ,str)))
(insert ,dstr)
(backward-char ,len)))))
( definsert insert-double-aho "aho")
(insert-double-aho) => ahoaho カーソルの位置 最初のahoの後ろ
インデントは適当になおしてね。また、これは車輪の再発明でinsert-pairが
標準であることを付け加えておきますね。
0096デフォルトの名無しさん
2008/09/28(日) 07:16:03取り合えず手元にあるものではこんな感じ。
(defun duplicate-line (n)
(interactive "p")
(save-excursion
(copy-region-as-kill (line-beginning-position)
(progn (forward-line 1) (point)))
(dotimes (i n)
(yank))))
ちなみに、コピー後のカーソル位置は任意です。(カラムが移動するのはイヤン)
0097デフォルトの名無しさん
2008/09/28(日) 08:05:33(defun duplicate-line (n)
(interactive "p")
(save-excursion
(let ((str (concat (buffer-substring (line-beginning-position)
(line-end-position))
"\n")))
(forward-line)
(when (= (line-end-position)
(point-max))
(insert "\n"))
(dotimes (i n)
(insert str)))))
0098デフォルトの名無しさん
2008/09/28(日) 10:44:45[?\C-a ?\C- ?\C-e escape ?w ?\C-m ?\C-y ?\C-a ?\C-p])
009996
2008/09/28(日) 11:13:49>>97
確かに最終行が改行で終わってないと動作がおかしいですが、
ある意味正しいというか、あまりないことなので現状でも
いいかなという気もします…
>>98
マクロも考えたんですが、カーソルのカラム位置が移動しちゃうのと
一回のUndoで元に戻らないのがちょっと微妙です。
010096のお父さん
2008/09/28(日) 11:34:40(insert (save-excursion (concat (buffer-substring (line-beginning-position) (line-end-position)) "\n")))
010196のお父さん
2008/09/28(日) 11:36:45× (insert (save-excursion (concat (buffer-substring (line-beginning-position) (line-end-position)) "\n")))
○ (save-excursion (insert (concat (buffer-substring (line-beginning-position) (line-end-position)) "\n")))
どっちでもいいけどな。
0102デフォルトの名無しさん
2008/11/22(土) 13:26:48grep-find で、あちこちの .svnディレクトリ以下を無視したいのですが、
参考:.svnを除外してfindする
http://snak.tdiary.net/20081008.html#p02
今は毎回、-name .svn -prune -o を手で付け加えていて面倒なのです。
そこで、デフォルトでこのオプションが追加されるようにしたいのですが、で
きたらgrep.elはそのままで、.emacs.el で設定したいのです。どうしたら良い
でしょうか?
0103デフォルトの名無しさん
2008/11/22(土) 13:35:06デフォルトで無視してくれてるみたいです。
もっと調べてから質問するべきでした。すみません。
0104デフォルトの名無しさん
2008/11/22(土) 14:24:45Emacs本スレに書いたつもりの誤投稿でした。本当にごめんなさい。
0105デフォルトの名無しさん
2008/12/03(水) 11:27:340106デフォルトの名無しさん
2008/12/03(水) 15:34:26x と lst が与えられたとき、x を lst から取りだす CAR と CDR の適用列を返す
関数 co を定義しなさい。 coは、そのような適用列が存在しない場合は NIL を
返すものとする。
0107デフォルトの名無しさん
2008/12/03(水) 15:43:05> x と lst が与えられたとき、x を lst から取りだす CAR と CDR の適用列を返す
> 関数 co を定義しなさい。
この文章は 命令 とか 指示 とかいった文章で
> coは、そのような適用列が存在しない場合は NIL を返すものとする。
この文章は 補足 とか 追加説明 とかいった文章だな。
で質問は何?
0108デフォルトの名無しさん
2008/12/03(水) 17:02:51(mapc 'require (cl el-expectations))
(defun co (x lst &optional acc)
(assert (listp lst))
(macrolet
((recur (&rest lst) `(co ,@lst)))
(let ((cur (car lst)))
(cond ((null cur) nil)
((and (atom cur)) (if (eq x cur) (cons 'car acc)
(recur x (cdr lst) (cons 'cdr acc))))
((listp cur) (or (recur x (car lst) (cons 'car acc))
(recur x (cdr lst) (cons 'cdr acc))))
(t (error "unexpected lst: %s" cur))))))
;; test cases
(expectations
(error (co 'a '()))
(expect (co 'not-found '()))
(expect (co 'a '(a)) '(car))
(expect (co 'b '(a b c)) '(car cdr))
(expect (co 'c '(a b c)) '(car cdr cdr))
(expect (co 'x '((x) a b c)) '(car car))
(expect (co 'x '((a b c x) d e f)) '(car cdr cdr cdr car))
(expect (co 'x '(a b (c x d) e f)) '(car cdr car cdr cdr)))
0109デフォルトの名無しさん
2008/12/03(水) 17:04:03ね
0110デフォルトの名無しさん
2008/12/03(水) 18:41:44どこの学校の宿題 ?
0111デフォルトの名無しさん
2008/12/03(水) 21:04:290112デフォルトの名無しさん
2008/12/03(水) 21:40:53(defun* co (x lst &optional (compare 'eq))
"COMPAREで比較関数を指定できるようにしてみた。
引数無しでは`eq'を使って比較する。"
(assert (listp lst))
(labels ((f (lst acc)
(let ((cur (car lst)))
(cond ((null cur) nil)
((and (atom cur)) (if (funcall compare x cur) (cons 'car acc)
(f (cdr lst) (cons 'cdr acc))))
((listp cur) (or (f (car lst) (cons 'car acc))
(f (cdr lst) (cons 'cdr acc))))
(t (error "unexpected lst: %s" cur))))))
(f lst '())))
;; てすけ
(expectations
(error (co 'a '()))
(expect (co 'not-found '()))
(expect (co 'a '(a)) '(car))
(expect (co 'b '(a b c)) '(car cdr))
(expect (co 'c '(a b c)) '(car cdr cdr))
(expect (co 'x '((x) a b c)) '(car car))
(expect (co 'x '((a b c x) d e f)) '(car cdr cdr cdr car))
(expect (co 'x '(a b (c x d) e f)) '(car cdr car cdr cdr))
(expect (co "foo" '("bar" "foo") 'string=) '(car cdr)))
0113デフォルトの名無しさん
2008/12/04(木) 15:17:06関数coを定義しなさいという問題でした。
みなさんのおかげできました。
ありがとうございました。
0114デフォルトの名無しさん
2008/12/05(金) 16:07:00read-string等でminibufferから読み込みをしている最中にC-x C-bとかすると
(if enable-recursive-minibuffers
(error "Command attempted to use minibuffer while in minibuffer")
(error "Cannot switch buffers in minibuffer window"))
なんですが
condition-caseでは捕まえられないし(switch-to-buffer中のエラー?)
*Backtrace*でqを押すとread-stringが戻る事無くトップレベルに返ってしまいます。
こういう場合はどう対処すればよいのでしょうか?
非同期プロセスと通信するプログラムを書いているので
いきなりtop-levelに返ってもらっては困るのです。
よろしくお願いします。
0115114
2008/12/05(金) 16:18:250116デフォルトの名無しさん
2008/12/17(水) 23:20:41>>106を>>108>>112
より簡単に書けませんか?
よく分かりません
0117デフォルトの名無しさん
2008/12/17(水) 23:50:38コードが綺麗すぎて困っているのですね、わかります。
0118デフォルトの名無しさん
2008/12/18(木) 15:56:12(let ((f (lambda (node acc)
(cond ((eq node x) acc)
((consp node)
(or (funcall f (car node) (cons 'car acc))
(funcall f (cdr node) (cons 'cdr acc))))))))
(funcall f lst '())))
0119デフォルトの名無しさん
2008/12/24(水) 16:57:33開発中に eval-buffer したときは eval せずに,
compile 時のみに eval したいんですが,
どうするんでしょうか?
(eval-when (compile) (hoge))
これはうまくいっていないように思う.
Emacs 22.
0120デフォルトの名無しさん
2008/12/24(水) 22:25:200121デフォルトの名無しさん
2008/12/25(木) 00:44:53質問の仕方を変えると, byte compiling 中のみ Non-NIL に
なる変数はどうすれば定義できるか?
(defvar hoge-byte-compiling-p ...)
0122デフォルトの名無しさん
2008/12/25(木) 09:15:490123デフォルトの名無しさん
2008/12/25(木) 12:25:52eval-when-compile は eval-buffer のときも byte-compile のときも eval されるが,
今どちらなのかを区別したいです.
0124デフォルトの名無しさん
2008/12/25(木) 16:32:59backtrace/backtrace-frame を使って byte-compile-form あたりの有無で判定
できると思う.
0125デフォルトの名無しさん
2009/02/07(土) 11:11:43春休みを使って、emacs lispを勉強して、より快適な環境を作り、雑多な手間を省きたいんですが
どのくらいのレベルに行けば、emacs lispを扱えるレベルと言えるんでしょうか?
現在、自分はレベル1でしょうか
実は、Pythonのほうが興味があって、Pythonのほうがメインの勉強だったりします
Pythonでも下記のリンクのようなことは、できそうですよね?
Lisp(emacs lispとの違いがまだよくわかっていませんが)のほうがスマートなんでしようか
古いネタですが、叩き台のネタに
Scheme:Schemeプログラマのレベル10
ttp://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3aScheme%a5%d7%a5%ed%a5%b0%a5%e9%a5%de%a4%ce%a5%ec%a5%d9%a5%eb10
0126デフォルトの名無しさん
2009/02/07(土) 23:23:43できるようになれば十分扱えてるといっていい状態だろうね
それ以外の項目については何が言いたいのかよくわからない
0127デフォルトの名無しさん
2009/02/08(日) 00:28:15なんとなく思いだしたのでこれ貼っとく。
ttp://www.aoky.net/articles/steve_yegge/tour_de_babel.htm
0128デフォルトの名無しさん
2009/02/08(日) 06:58:22リンク、サンクスです
この人の寸評だと、このころはRubyのほうが優れた言語とされていたんだね
elispで何ができるかというのは、漠然とだけど、掴めるんだけど
Schemeでなにができるかがよく掴めない(どういう用途に優れているとか)
単なる教養としての言語なのかな
言語仕様として一貫性があるとか、そんな感じなのかな
Scheme関連のチュートリアルを読んでみます
0129デフォルトの名無しさん
2009/02/08(日) 11:50:11括弧になれるとか入口程度に思っておいた方がいいよ。
Emacs Lispは、見た目、Lispなだけだから。
末尾再帰を最適化できないから、再帰で書くことが事実上できなかったり、色々とLispらしくないから。
0130デフォルトの名無しさん
2009/02/08(日) 12:40:51>>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.
0131デフォルトの名無しさん
2009/02/08(日) 13:02:07コメント欄みてみるとハウルネタがやたらウケてるな。このアニオタどもめ!
0132デフォルトの名無しさん
2009/02/08(日) 13:11:50プロファイラあり勿論ディスアセンブラもありと割と至れり尽せりだったりする
0133デフォルトの名無しさん
2009/02/08(日) 13:43:30ハウル、みていないんだが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歳
0134デフォルトの名無しさん
2009/02/08(日) 16:19:28"the car that's always in front of you."
は、俺だったら
「いつもそこにある車」 って訳すかな
(=古くてダサくて定番中の定番で面白くないけど、結局乗るのはこの車なんだよね、
的な意味で)
あと、「Scheme」 だぞ。typoかと思ったけど全部Schmeって書いてるってことは
本気で勘違いしてる?
0135デフォルトの名無しさん
2009/02/08(日) 16:27:08この規則を使って階層になったライブラリの関数、hogeライブラリの中にあるfooライブラリの関数fの名前を付けると
hoge-foo-fのようになってしまう
長くなるのは仕方ないけど、この規則ででかいアプリケーションは書きたくないよね
0136デフォルトの名無しさん
2009/02/08(日) 16:31:26あまりに売れすぎて、「どんなレーシングカーもフォードTの前に出ることはできない。どれだけ抜いてもまだ前にもう1台いる」というジョークが生まれたので。
スーパーカーとの対比で、性能はプアだけどみんなが使ってる普及版っていうニュアンスだろうな。
elispはよくも悪くもEmacsと切り離せないものなので、本当に言語の勉強をしたいならcommon lispかschemeのほうがいいよ。
逆にEmacsいじって遊びたいならelisp使うしかないし。
0137デフォルトの名無しさん
2009/02/08(日) 16:39:45134だが勉強になった。トン
0138デフォルトの名無しさん
2009/02/08(日) 18:12:24> elispはよくも悪くもEmacsと切り離せないものなので、本当に言語の勉強をしたいならcommon lispかschemeのほうがいいよ。
言語の勉強したいまでは、まだ至っていません
Emacsを使いこなせるようになりたいだけで
Schemeは、知っていて損はなさそうですね
チュートリアルの語彙も特徴的で好奇心をそそられる
英語・日本語の資料も豊富そうで資料には、困らないだろうし
プログラマとしての幅が広がるなら、なおうれしいかな
0139デフォルトの名無しさん
2009/02/14(土) 00:26:28map関数を書いてよく使ってるんだがこれ便利よ
色々関数を別途定義しといて
関数を行に対して呼び出す
2chに書き込むときによくやるのは
タブ→スペース変換と
半角スペース→nbsp変換
こうするとプログラムはインデントされて見やすい
ところで、久しぶりにここきたんだが
xyzzyスレってどこいったの?
見つからないんだけど
0140デフォルトの名無しさん
2009/02/14(土) 00:34:370141デフォルトの名無しさん
2009/02/14(土) 00:45:020142デフォルトの名無しさん
2009/02/19(木) 18:25:06とりあえず思いついた
'(("^......................................................\
.........................\\(.\\)" 1 highlight-long-line-face append))
というのをfont-lock-add-keywordsして加えたところ、
当然ながら全角文字をいれると後ろにずれました
半角で80文字目の位置をを色づけする方法について、
なにかお知恵を拝借できませんでしょうか?
0143デフォルトの名無しさん
2009/02/19(木) 19:21:130144デフォルトの名無しさん
2009/02/19(木) 22:19:43めちゃめちゃ重いなそれw
0145デフォルトの名無しさん
2009/02/20(金) 15:29:29ありがとうございます
そんなものが作られてたんですね、試してみます
0146デフォルトの名無しさん
2009/02/23(月) 22:05:35うまい工夫をしないと速くならないだろうからなぁ。常に80文字目を数えるって
いうことだしね。
0147デフォルトの名無しさん
2009/02/23(月) 23:00:47行ごとに色を変えたいんですが教えてください
まさに自分がやりたいことがこれ
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)
0148デフォルトの名無しさん
2009/02/23(月) 23:02:070149デフォルトの名無しさん
2009/02/24(火) 00:19:05(put-text-property 1 20 'font-lock-face 'highlight)
0150デフォルトの名無しさん
2009/02/24(火) 00:39:13それを実行したときはtが返るんですよね?
M-x list-faces-displayで書いてあるフェイスをいくつかうちこんでは見ましたが
自分の環境ではnilが返ってきて色が変わらないです
↓動作はよくわかってませんが、これを切り替えた場合はちゃんと色が変わります
(global-font-lock-mode t)
(global-font-lock-mode nil)
今日は寝て、また明日調べてみますわ
0151デフォルトの名無しさん
2009/02/25(水) 12:19:45replace-match では使えない(不正な\エラーになる)のは何で?
こんな感じ↓
(re-search-forward "\\(.+\\)" nil t)
(replace-match "\\,(my-func \\1)" nil nil)
=> Invalid use of `\' in replacement text
0152デフォルトの名無しさん
2009/02/25(水) 15:06:590153デフォルトの名無しさん
2009/02/25(水) 17:08:20君の頭が腐っているというのを疑った方がいいよ
0154デフォルトの名無しさん
2009/02/27(金) 00:26:35プログラマブル正規表現だっけ?
よくわからん
0155デフォルトの名無しさん
2009/02/27(金) 01:11:40NEWS
*** 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))
0156151
2009/02/28(土) 01:47:45そんな名前があるとは知らなんだ。
google先生は記号の検索には弱いしね・・・
>> 155
サンクス。インタラクティブ専用だったんだ。
よく使う置換の組を「お気に入り」みたいに登録して一発で呼び出せるlispを作ってたんだけど、
仕組み上、正規表現は自由に指定可能だから関数決めうち実行ができなくて。
プログラマブル正規表現は非対応とあきらめるしかないか。
0157デフォルトの名無しさん
2009/02/28(土) 03:23:530158デフォルトの名無しさん
2009/02/28(土) 22:18:392画面で起動して、片方にSchemeインタプリタを起動したい
2画面の分割は、.emacsに(split-window-vertically)を追記したらうまくいったが
M-x run-schemeが呼び出せないんだ
0159デフォルトの名無しさん
2009/02/28(土) 22:50:340160デフォルトの名無しさん
2009/02/28(土) 23:14:03Wrong 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
0161デフォルトの名無しさん
2009/02/28(土) 23:18:460162デフォルトの名無しさん
2009/02/28(土) 23:29:14(run-scheme scheme-program-name)
0163デフォルトの名無しさん
2009/03/01(日) 09:48:570164デフォルトの名無しさん
2009/03/01(日) 14:28:41�d牛�d牛トーン・・カツ!
すばらしく快適な環境になった
0165デフォルトの名無しさん
2009/03/01(日) 17:07:00(call-interactively 'run-scheme)
これしらんかった、すげぇ勉強になった、ありがとう
いままでintaractive関数の機動失敗時はいつも.elの中調べてた。
0166デフォルトの名無しさん
2009/03/26(木) 03:01:420167デフォルトの名無しさん
2009/03/26(木) 15:59:27ヘルプ見る限り、create-imageはファイルからだけじゃなくデータも直接読んで
画像を作ってくれるみたいなんですが、うまくいきません。
insert-file-contents-literallyでテンポラリバッファに読み込んで渡してるんですが
なにかやり方に問題があるのでしょうか?
(insert-image (create-image "~/hoge.gif"))
だと画像が出ますが、
(insert-image (create-image (with-temp-buffer
(insert-file-contents-literally "~/hoge.gif")
(buffer-string)) 'gif))
だとトウフが出てしまいます。
0168デフォルトの名無しさん
2009/03/26(木) 16:33:41set-buffer-multibyte -> nil
DATA-P -> t
でどうです。
0169デフォルトの名無しさん
2009/03/26(木) 16:43:04素早い指摘陳謝です。
無事表示されるようになりました。
ヘルプはちゃんと読まないとだめですね。
unibyteとかmultibyteはまだよく理解してないので勉強します。
ありがとうございました。
0170デフォルトの名無しさん
2009/03/28(土) 13:49:09Infoとか書籍以外にこれは参考にすべきといったパッケージってなにがありますか?
色々眺めてるんですがみんな結構やり方が違っててよくわからなくなってきました。
0171デフォルトの名無しさん
2009/03/28(土) 15:03:54Infoによるとtext-modeが最もシンプルだと言うから、text-modeがいいと思うよ。
Emacs22からdefine-derived-modeが使われててより簡単に作れるようになってる。
たった1行でも実行可能なのを今やってみて初めて知った。
(define-derived-mode hoge-mode nil "Hoge")
あとは、キーマップを定義するだけ。
ま、そういうわけでEmacs21と22のtext-modeが参考になる。
0172デフォルトの名無しさん
2009/03/28(土) 15:55:22回答ありがとうございます。
見てみましたが雛形に丁度良い感じですね。
text-modeを足掛りにして頑張ってみようと思います。
標準配布されてるパッケージのコードは
基本的に正しいやり方(?)で書かれていると思ってよいんですよね?
#もっとスマートな方法があるのに変なやり方で無駄に処理を増やしてるとか
#メモリを無駄に使ってしまう書き方だったりとか....
0173デフォルトの名無しさん
2009/03/28(土) 17:33:24必要なことを必要なだけ書けばいいんですよ。
メジャーモードとして機能するためには最低限何が必要か。
そこに、自分が欲しいものを追加していくだけです。
またそのために、例えばsyntax-tableを独自に定義した方がいいならそうするし。
defcustomなんかはdefvarで済ますこともできるけど、ひとが作ったパッケージを
利用するときはdefcustomの方が分かりやすいと思うので、そう考えるならそうするしとか。
コードを書く上では、自分でこれでいいと思うコードを書けばいいんです。
あとは、慣習に従うと。
0174デフォルトの名無しさん
2009/03/30(月) 18:51:55なにか歴史的理由とかバージョン間互換性とかの理由があったりするんでしょうか?
alistのcarとかオプショナルな引数が沢山ある関数での&restで引数とる時のラベリングとか
値を取らないことを明示的に示してて便利だと思うんですけど(elispモードで色分けもされるし)、
色々ソース眺めた感じ、使ってるパッケージはガンガン使ってるんですが、
まったく使ってないところはcustomとかtext-property等ぐらいでしか使ってません。
0175デフォルトの名無しさん
2009/04/15(水) 16:51:290176デフォルトの名無しさん
2009/04/15(水) 18:05:50値が設定出来無い=ラベルとか専用ってことがコンパイラレベルで保証されてて
よさげだと思うんですが・・・
とりあえずassocのcarはシンボル、plistと関数のrestはキーワードシンボルで
書き進めちゃってるんですが、いいんだろか・・・
0177デフォルトの名無しさん
2009/04/15(水) 20:11:53こんなコード書いてみました。スマートじゃない部分あるのでまだ改良しますが、
方向性として他に方法ないかアドバイスお願いします。
0178デフォルトの名無しさん
2009/04/15(水) 20:13:51KGRlZnVuIGhpZGUtY29tbWVudC1mYWNlICgpIAogICJmYWNlIGNvbW1lbnQgaGlkZSIgCgkoaW50
ZXJhY3RpdmUpCiAgIDs7JygxIDIgMyAuLi4uIGNvbW1lbnQgZmFjZSBwb2ludCBsaXN0KQoJKHNl
dHEgY29tbWVudC13YWxrCgkJCQkobG9vcCBmb3IgeCBmcm9tIDEgdG8gKHBvaW50LW1heCkKCQkJ
CQkJCWZvciBsb2ZhY2UgPSAobGlzdCAoZ2V0LXRleHQtcHJvcGVydHkgeCAnZmFjZSkgeCkKCQkJ
CQkJCWlmIChvcgoJCQkJCQkJCQkobWVtYmVyICdmb250LWxvY2stY29tbWVudC1kZWxpbWl0ZXIt
ZmFjZSBsb2ZhY2UpCgkJCQkJCQkJCShtZW1iZXIgJ2ZvbnQtbG9jay1kb2MtZmFjZSBsb2ZhY2Up
CgkJCQkJCQkJCShtZW1iZXIgJ2ZvbnQtbG9jay1jb21tZW50LWZhY2UgbG9mYWNlKQoJCQkJCQkJ
CQkpIGNvbGxlY3QgKG50aCAoLSAobGVuZ3RoIGxvZmFjZSkgMSkgbG9mYWNlKSkpCgkoYWRkLXRv
LWxpc3QgJ2NvbW1lbnQtd2FsayAnLTEpIDsgYmFkIGNvZGUKCShhZGQtdG8tbGlzdCAnY29tbWVu
dC13YWxrICctMiB0KSA7IGJhZCBjb2RlCgogICA7Oycoc3RhcnQgZW5kIHN0YXJ0IGVuZCBzdGFy
dCBlbmQgLi4ub3ZlcmxheSByZWdpb24gbGlzdCkKCShzZXRxIGNvbW1lbnQtd2FsawoJCQkJKGxv
b3AgZm9yIHJpZ2h0U3RlcCBpbiBjb21tZW50LXdhbGsKCQkJCQkJCWZvciBsZWZ0U3RlcCBpbiAo
Y2RyIGNvbW1lbnQtd2FsaykKCQkJCQkJCWlmIChub3QgKGVxICgrIHJpZ2h0U3RlcCAxKSBsZWZ0
U3RlcCkpIGFwcGVuZCAobGlzdCByaWdodFN0ZXAgbGVmdFN0ZXApKSkKCShzZXRxIGNvbW1lbnQt
d2FsayAoZGVscSAnLTEgY29tbWVudC13YWxrKSkgOyBiYWQgY29kZQoJKHNldHEgY29tbWVudC13
YWxrIChkZWxxICctMiBjb21tZW50LXdhbGspKTsgYmFkIGNvZGUKCgkoc2V0cSBjb21tZW50LW92
LWxpc3QKCQkJCShsb29wIGZvciBzdGFydCBpbiBjb21tZW50LXdhbGsgYnkgIydjZGRyIAoJCQkJ
CQkJZm9yIGVuZCBpbiAoY2RyIGNvbW1lbnQtd2FsaykgYnkgIydjZGRyIGNvbGxlY3QgKG1ha2Ut
b3ZlcmxheSAoLSBzdGFydCAxKSBlbmQpKSkKICAgOzsgd2h5IG5lZWQgcmVzPwoJKGxldCAocmVz
KQoJCShkb2xpc3QgKG92IGNvbW1lbnQtb3YtbGlzdCByZXMpCgkJCShvdmVybGF5LXB1dCBvdiAn
Y2F0ZWdvcnkgJ2hpZGUtY29tbWVudC1mYWNlKQoJCQkJCQkJCQkJCQkJCQkJCQkJCTsJCShvdmVy
bGF5LXB1dCBvdiAnY2xlYW51cCB0KQoJCQkob3ZlcmxheS1wdXQgb3YgJ2ludmlzaWJsZSB0KQoJ
CQkJCQkJCQkJCQkJCQkJCQkJCTsJCShvdmVybGF5LXB1dCBvdiAnZGlzcGxheSAiIikKCQkJKSkp
0179デフォルトの名無しさん
2009/04/15(水) 20:16:39コメントのfaceを見て、overlay作成し不可視にするlispです。
0180デフォルトの名無しさん
2009/04/15(水) 20:29:36ループのところってnext-property-changeで検索じゃだめなん?
0181デフォルトの名無しさん
2009/04/15(水) 20:34:18elisp-manual-21-2.8.tar.gz を見てみたが、
keyword-symbols-constant-flag はすでになかった。
0182177
2009/04/15(水) 20:37:10ありがとございます、それ知らなかったので調べてみたら、
自分がやってることは非効率極まりないことまでわかりました。
ちょっと書き換えてみます。
0183デフォルトの名無しさん
2009/04/15(水) 20:37:210184デフォルトの名無しさん
2009/04/15(水) 20:43:06自分は使ったことないけど、
comment-search-forward と backward なんていう
もっとよさげな関数があったよ。
0185デフォルトの名無しさん
2009/04/16(木) 23:21:38Emacs19 用 Elisp マニュには keyword で始まる名前自体がなくて : に関する記述もなさげだから
Emacs20 あたりで追加された新機能だと思われ
古い Emacs との互換性が不要なら使ってもいいんでないかな
0186デフォルトの名無しさん
2009/04/17(金) 16:03:55具体的にはバッファの内容を別の形式で別ウィンドウに表示するアプリを作っています。
編集中の内容をリアルタイムに反映させるため post-command-hook で監視を行なおうと思っているのですが、
変換後の表示バッファが消されていた場合、自分自身で remove-hook して後始末をしたいなと・・・
0187デフォルトの名無しさん
2009/04/17(金) 16:44:34別ウィンドウで表示しているbufferのkill-buffer-hookに
buffer local で post-command-hookのhookをremove するものを
仕掛けておくって思いついたんだけど、どうかな?
0188デフォルトの名無しさん
2009/04/17(金) 17:12:30なるほど!
どう考えてもその方がスマートですよね。一々 buffer-live-p しなくて済みますし。
ありがとうございます。
0189デフォルトの名無しさん
2009/04/24(金) 01:48:31同じことをelispでしたい場合どうすれば良い?
バッククォートはlispでは別な意味なのでアレだが
(print `date`)で"Fri Apr 24 01:47:15 JST 2009"のようなことは出来ないかな
0190デフォルトの名無しさん
2009/04/24(金) 01:55:51(print (shell-command-to-string "date"))
0191デフォルトの名無しさん
2009/04/24(金) 23:42:190192デフォルトの名無しさん
2009/05/05(火) 12:11:19単語とその出現回数のAssociationListを作って、新規に作ったbufferにinsertするようにしました。
できないのがありまして、
アルファベット順にsortするのが上手くできないです。(出現回数の方も同様にオプションでsortするようにしたいけど、後回しになってます)
(sort (mapcar '(lambda (x) (car x)) word-alist) 'string-lessp)
とsortしたら、sort対象のcar部分だけでなく、元のリストがsortされて、値がもどってくるにはどうしたらいいのでしょう?
(defun my-list-words ()
(interactive)
(save-excursion
(goto-char (point-min))
(let (word word-alist cu-word)
(while (re-search-forward "[-_a-zA-Z]+" nil t)
(setq word (buffer-substring (match-beginning 0) (match-end 0)))
(if (assoc word word-alist)
(setcdr (assoc word word-alist) (1+ (cdr (assoc word word-alist))))
(setq word-alist (cons (cons word 1) word-alist))))
;;;この下のS式が、上手く表現できない
(setq word-alist (sort (mapcar '(lambda (x) (car x)) word-alist) 'string-lessp))
(pop-to-buffer "*words list*")
(erase-buffer)
(mapc '(lambda (x) (insert (format "%s\n" x))) word-alist)
)))
他の点でもアドバイスがあれば、お願いします。
0193デフォルトの名無しさん
2009/05/05(火) 15:35:33sort は破壊的関数。元のリストを残して置きたいならリストのコピーを sort する。
でも、この場合には必要ないと思う。
比較関数の例: (lambda (x y) (> x y)) == '>
word を取得するには、match-string が使える。
局所変数を使えば、assoc の呼び出しは1回でいい。
push を使ってもいい。
0194192
2009/05/05(火) 17:54:22おかげさまで、想定通りに動くようになりました。
比較関数の書き方もわかりました。
pushについては、後ほど調べて、また書き込みます。
直したところ:
match-string
(setq word (match-string 0))
局所変数、
(let、、に入れて、(setq current-word (assoc word word-alist))
比較関数の書き方を直しました。
(sort word-alist '(lambda (x y) (string-lessp (car x) (car y))))
このようになりました。
(defun my-list-words ()
(interactive)
(save-excursion
(goto-char (point-min))
(let (word word-alist current-word)
(while (re-search-forward "[-_a-zA-Z]+" nil t)
(setq word (match-string 0))
(setq current-word (assoc word word-alist))
(if current-word
(setcdr current-word (1+ (cdr current-word)))
(setq word-alist (cons (cons word 1) word-alist))))
(sort word-alist '(lambda (x y) (string-lessp (car x) (car y))))
(pop-to-buffer "*words list*")
(erase-buffer)
(mapc '(lambda (x) (insert (format "%s\n" x))) word-alist))
))
0195192
2009/05/05(火) 18:22:13sortした結果を
(setq re-list (sort word-alist '(lambda (x y) (string-lessp (car x) (car y)))))
のように受けないといけませんでした。
sort対象のリストは、破壊されてしまうのですね。sortされるように破壊されると思い込んでました。
(setq lst '((banana . 1) (apple . 2) (orange . 1)))
(setq r (sort lst '(lambda (x y)(string-lessp (car x) (car y)))))
r => ((apple . 2) (banana . 1) (orange . 1))
lst => ((banana . 1) (orange . 1)
もう一度、直したものを張っておきます。
(defun my-list-words ()
(interactive)
(save-excursion
(goto-char (point-min))
(let (word word-alist current-word)
(while (re-search-forward "[-_a-zA-Z]+" nil t)
(setq word (match-string 0))
(setq current-word (assoc word word-alist))
(if current-word
(setcdr current-word (1+ (cdr current-word)))
(setq word-alist (cons (cons word 1) word-alist))))
(setq re-list (sort word-alist '(lambda (x y) (string-lessp (car x) (car y)))))
(pop-to-buffer "*words list*")
(erase-buffer)
(mapc '(lambda (x) (insert (format "%s\n" x))) re-list))
))
0196デフォルトの名無しさん
2009/05/05(火) 18:52:20ttp://paste.lisp.org/display/79688
0197デフォルトの名無しさん
2009/05/05(火) 19:17:11http://paste.lisp.org/display/79690
0198デフォルトの名無しさん
2009/05/05(火) 19:37:33>>197の方が圧倒的に速いね。
0199デフォルトの名無しさん
2009/05/05(火) 20:40:33なんでも assoc で済まそうって癖がついてしまった。
0200デフォルトの名無しさん
2009/05/05(火) 20:53:17kwsk
0201デフォルトの名無しさん
2009/06/24(水) 03:26:29infoには、10項目以内なら連想リストの方が速いけど、それ以上の場合は
ハッシュを使ったほうがいいと書いてあるぞ。
0202デフォルトの名無しさん
2009/07/02(木) 23:02:53使い方はこんな感じで良いのでしょうか?
(defun iota (count &optional start step)
(or start (setq start 0))
(or step (setq step 1))
(loop for n from start to (+ start (* (1- count) step)) by step collect n))
0203デフォルトの名無しさん
2009/07/03(金) 00:02:58省略時にnil以外の値という扱いのときはdocstringに書いておいた方がいいかな
0204202
2009/07/03(金) 00:59:59docstringね
ありがとう
それとこの場合はこうか
(setq start (or start 0))
(setq step (or step 1))
0205202
2009/07/03(金) 01:05:030206デフォルトの名無しさん
2009/07/03(金) 02:58:28(defun* foo (a &optional b (c 5)
&key d (e (user-login-name)))
(list 'a a 'b b 'c c 'd d 'e e))
(foo 1)
(a 1 b nil c 5 d nil e "bar")
clだと全部使える。やっぱ、clはいいね。
0207デフォルトの名無しさん
2009/07/03(金) 12:19:010208デフォルトの名無しさん
2009/07/27(月) 01:26:010209デフォルトの名無しさん
2009/08/11(火) 17:39:12emacs-lisp 上での common lisp の関数/マクロ名と
ピュアな common lisp の関数/マクロ名との
マッピングの在処を知っている方いませんか?
例えば、
defun* → defun
(cl*/el → cl)
とかです。
0210デフォルトの名無しさん
2009/08/11(火) 17:47:10cl.el を見ればわかるんじゃね?
CL と emacs-lisp では根本的に違うところもあるから
必ずしも一対一に対応してるとは限らんが
0211デフォルトの名無しさん
2009/08/14(金) 06:09:190212デフォルトの名無しさん
2009/08/14(金) 09:02:490213デフォルトの名無しさん
2009/08/14(金) 09:06:49最適化が成されていないから使う必要がない。
だから末尾再帰を使う人がCLに比べるとかなり少なくなる。
それは最適化していないことの理由ではない。
違いわかるよね?
0214デフォルトの名無しさん
2009/08/14(金) 11:48:42コンパイル時に最適化してしまうと後で困る。
よく誤解している人がいるけど、
cl や emacs-lisp は関数型言語なんかじゃありませんから!!
0215デフォルトの名無しさん
2009/08/14(金) 11:58:15そんなの「吉野屋やすき屋は牛丼なんかじゃありませんから!」並の理屈だぞ。
0216デフォルトの名無しさん
2009/08/14(金) 12:11:12手続的、関数的、オブジェクト指向の連携をサポートしたマルチパラダイム言語
0217デフォルトの名無しさん
2009/08/14(金) 12:52:25マルチパラダイムうんぬんは関係ないかと
0218デフォルトの名無しさん
2009/08/14(金) 14:27:05emacs-lisp は "ほぼ" 関数型言語。
cl は関数型言語。
0219デフォルトの名無しさん
2009/08/14(金) 21:49:360220デフォルトの名無しさん
2009/08/14(金) 22:20:31実装が面倒くさいから。
ってcompile.elのソースに書いてあったと思ったよ
ソースすら読まない馬鹿は本当にしょうがないな
0221デフォルトの名無しさん
2009/08/15(土) 03:33:360222デフォルトの名無しさん
2009/08/15(土) 03:38:57\
∧ニユ/ ̄ヽ
\ ( ´∀/) i
\.\ _(」つ/とl) . | \
;::;::\i\ 匚レ| .〈/ ) | \
。::;;:'\.\ (_,)ー' |_,, -'''"!
^人;:'::;゚:;.\l\ _,,, -''"|_,, -''"|
^^从::;;:。':\.\_,, -''"|_,, -''"| . :|
へ ^へ;;::';;:'\l_,, -''" . | 从^ 〜
^ ^ヘ^人从::;;;:| ,ィ人^. | ^ ^へ^^
〜 ^.へ' ^':レ^从 へ' | 〜 ^
へ ^^ へ 〜人^ ^ へ〜 〜
0223デフォルトの名無しさん
2009/08/15(土) 15:50:25最近 emacs スレッドにもいる、前頭葉が未発達で可哀想な方ですよね。
わかります。
$ grep -E '\b(tail|recursion)\b' compile.el | wc -l
0
0224デフォルトの名無しさん
2009/08/16(日) 16:02:44こんな感じに
% date | emacsclient
これとか、
% date | emacsclient -
% date | emacsclient --eval '(read)'
試したんだけど、違った。
0225デフォルトの名無しさん
2009/08/16(日) 22:25:43> ってcompile.elのソースに書いてあったと思ったよ
byte-opt.elの間違いじゃないの?
>>223
もうちょっと頭使えば正解にたどり着けたのにね
0226デフォルトの名無しさん
2009/08/16(日) 22:30:130227デフォルトの名無しさん
2009/08/16(日) 22:41:080228デフォルトの名無しさん
2009/08/17(月) 00:10:510229デフォルトの名無しさん
2009/08/17(月) 12:31:160230デフォルトの名無しさん
2009/08/17(月) 20:21:52起動時に
https://bugs.launchpad.net/ubuntu/+source/a2ps/+bug/248134
と同様、
Error while loading 50a2ps
のメッセージが出て気持ち悪いです.(動くことは動く)
patchのあて方が分かりません.どなたか教えてください.
0232デフォルトの名無しさん
2009/08/21(金) 07:48:16Emacs Lisp全く関係ないと思うけど、
ttp://ja.wikipedia.org/wiki/Patch
ttp://www.linux.or.jp/JM/html/GNU_patch/man1/patch.1.html
でも、そこにあるパッチって、一ヶ所クォートするだけだから、
どう考えてもエディタで編集した方が早いよ。
0233デフォルトの名無しさん
2009/08/21(金) 18:50:290234デフォルトの名無しさん
2009/08/21(金) 21:05:19expand-filename ?
0235デフォルトの名無しさん
2009/08/21(金) 21:41:25expand-file-name ですね。
ありがとうございます。期待通りの動作ができました。
0236231
2009/08/22(土) 04:16:29でいけました。lispとは関係なかったですか。
0237デフォルトの名無しさん
2009/08/22(土) 07:09:48だって、知りたいのはpatchコマンドの使い方だったわけじゃない?
例えば、LinuxカーネルがC言語で書かれてるからって、
C言語のスレでカーネルのコンパイルの仕方とか聞かないでしょ?
diffとpatchは、UNIX系のOSを使う上で知っていると便利だから、
当て方、作り方、読み方は知っておくといいと思う。
ともあれ、無事に当たって良かったね。
0238名無しさん@そうだ選挙に行こう
2009/08/30(日) 11:07:48def foo (*args):
...
の関数を
L = (1, 2, 3)
foo(*L) # foo(1, 2, 3) と同じ意味
と実行することが可能なのですが、emacs lisp でも同様に
(defun foo (&rest args)
...)
の関数の引数をpre-expandすることは可能ですか? イメージとしでは
(setq L '(1 2 3))
(foo *L)
のような感じです。
0239名無しさん@そうだ選挙に行こう
2009/08/30(日) 11:19:51詳しい使い方は(info "elisp")見てくれ
(let ((strs '("foo" "bar" "baz")))
(assert (string= (apply 'concat strs)
(concat "foo" "bar" "baz"))))
0240名無しさん@そうだ選挙に行こう
2009/08/30(日) 11:28:59ありがとうございました。
0241名無しさん@そうだ選挙に行こう
2009/08/30(日) 11:40:52`sleep-for' は "without updating display" なので、
(insert foo)
(sleep-for n)
をしても foo の中の文字列がバッファ上に表示される前に
n 秒止まる作用があるのですが、 foo の内容を "表示させた後" に
sleep する方法はありますか?
0242名無しさん@そうだ選挙に行こう
2009/08/30(日) 11:44:27自己解決しました。 (redisplay t)
0243デフォルトの名無しさん
2009/09/01(火) 16:21:410244デフォルトの名無しさん
2009/09/02(水) 14:43:290245デフォルトの名無しさん
2009/09/03(木) 03:31:39M-x hoge 3
の用に引数を与えるか、もしくは
M-x hoge
Input number:
の用にプロンプトを出したいです。
両方の方法について調べてみたのですが
どちらについても解説が見つかりませんでした。
どのようにすれば良いのかご教授ください。
0246デフォルトの名無しさん
2009/09/03(木) 04:06:45前者は interactive の引数に N だか p だかを加える。
後者は (defun hoge () (read-number "Input number: "))
0247デフォルトの名無しさん
2009/09/03(木) 04:26:39助かりました.
0248デフォルトの名無しさん
2009/09/03(木) 22:16:510249デフォルトの名無しさん
2009/09/05(土) 17:29:11(interactive "nInput number:")
(message "%d" num))
0250デフォルトの名無しさん
2009/09/05(土) 18:10:26便利そうに見せかけて逆にプログラムを汚くするから嫌い。
コードレターが文字列に混ざっていてキモイので嫌い。
0251デフォルトの名無しさん
2009/09/05(土) 18:23:590252デフォルトの名無しさん
2009/09/05(土) 19:58:02たった今、今年一番のセックルしてきたからこの際素直になるわ。
ごめん、文句言うだけだった。
0253デフォルトの名無しさん
2009/09/06(日) 11:39:53特定のchildプロセスは生き残るようにする方法はありますか?
0254デフォルトの名無しさん
2009/09/06(日) 13:31:57daemon化するのと同じような処理をする。
二段forkしたり、ttyやプロセスグループを切り離したり。
0255デフォルトの名無しさん
2009/09/06(日) 14:22:33いままでは bash 経由でそれを実現していたのですが、
emacs の関数でそういったオプション指定は可能なのかと思って質問しました。
0256デフォルトの名無しさん
2009/09/11(金) 10:26:26emacs 23.* コンパイラーでwarningがでないように、コードクリーンアップ
した人いる?
0257デフォルトの名無しさん
2009/09/13(日) 16:36:02rm ./sense-region.el
0258デフォルトの名無しさん
2009/09/13(日) 16:48:22つまらない。
0259デフォルトの名無しさん
2009/09/13(日) 17:36:23むしろ本質をついたレスだと思う。
哲学的な嫌いはあるけどね。
0260デフォルトの名無しさん
2009/09/13(日) 18:34:100261デフォルトの名無しさん
2009/09/13(日) 18:51:22sense-region.elある故に問題あり
一つの正答だろう。
0262デフォルトの名無しさん
2009/09/13(日) 19:06:250263デフォルトの名無しさん
2009/09/13(日) 19:21:470264デフォルトの名無しさん
2009/09/13(日) 19:24:23┌┐
ヽ / /
γ⌒^ヽ / / i
/:::::::::::::ヽ | (,,゚Д゚)
/::::::::(,,゚Д゚) |(ノi |)
i:::::(ノDole|) | i i
゙、:::::::::::::ノ \_ヽ_,ゝ
U"U U" U
0265デフォルトの名無しさん
2009/09/13(日) 22:27:05コードがちと orz 故に問題あり
と思われ
0266デフォルトの名無しさん
2009/09/15(火) 17:23:24dired-do-shell-command したところ、
*Shell Command Output*
のバッファーが kill-bufferで削除できなくなりました。
emacs -Q で起動して試すと削除出来たので、
自分で入れているelispの設定だと思うのですが、
見当がつきません。
kill-bufferで削除できなくするflagとか有りませんでしょうか?
それを単語を元にひっかけようかと思うんですが…
0267Zeno ◆5nZQbNmQPs
2009/09/15(火) 17:36:11>>266
(progn
(setq kill-buffer-hook nil)
(ignore-errors (ad-disable-advice 'kill-buffer 'any ".")))
を実行してみたまえ。
0268266
2009/09/16(水) 00:42:32レス、どうもです。
上記、S式を評価しても、削除出来ませんでした。
その後、しばらくイジっても削除できず、
結局、再起動したのちshell-command を使って、
そのbufferを削除すると、出来ました。
そして、おかしくなった前回のsessionでやったようなことを順番に行っては
shell-command -> buffer の削除
と、繰り返してみたのですが、すべて削除できてしまいました。
この事象は、今回だけではなく、少し前にも起きたことなので、
まるっきり偶発的でもないと思っています。
ただ、どのような仕組みで、bufferが削除できないのか良く判らないので、
ご存知の方、教えてください。
; 実害は、ないんですけどね。
; 結果を見た後、C-x k を押して、bufferが残ってると
; ちょっと、イラッとくるぐらいで。
0269デフォルトの名無しさん
2009/09/24(木) 19:45:25quote や lambda の内部で予め式を評価する方法がわかりません.
例えば
(let ((v 10))
(lambda (n) (+ n v)))
=> (lambda (n) (+ n v))
これを以下のように評価することは可能でしょうか.
(lambda (n) (+ n 10))
初歩的な質問で申しわけありませんが,ご教示願います.
0270デフォルトの名無しさん
2009/09/24(木) 20:19:27`(lambda (n) (+ n ,v)))
0271デフォルトの名無しさん
2009/09/24(木) 20:36:03ありがとうございます.
やはり方法があったんですね,非常に助かりました!!
0272Zeno ◆5nZQbNmQPs
2009/09/25(金) 08:16:26>>269
>>270
その場合は意味合い的に
(lexical-let ((v 10))
(lambda (n) (+ n v)))
とした方が良い。
0273デフォルトの名無しさん
2009/09/25(金) 08:49:41しかしこういう場合には>>270のやり方の方がいいんではなかろうか。
(setf foo nil)
(lexical-let ((v 10))
(push (lambda (n) (+ n v)) foo)
(incf v)
(push (lambda (n) (+ n v)) foo))
(message (format "%S" (cons (funcall (car foo) 1) (funcall (cadr foo) 1)))) => (12 . 12)
0274Zeno ◆5nZQbNmQPs
2009/09/25(金) 09:03:55>>273
"こういう場合には" とは言うが、そのような
馬鹿げたコードを書く人間は放置されるであろう。
同様のことをしたいのであれば、以下のように書けば良い
(というか、以下のスタイルにするべき)。
(setf foo nil)
(defun bar (v)
(lexical-let ((v v))
(lambda (n) (+ n v))))
(push (bar 10) foo)
(push (bar 11) foo)
(message (format "%S" (cons (funcall (car foo) 1) (funcall (cadr foo) 1))))
=> "(12 . 11)"
0275デフォルトの名無しさん
2009/09/25(金) 14:43:030276デフォルトの名無しさん
2009/09/25(金) 18:14:350277デフォルトの名無しさん
2009/09/26(土) 01:26:35ついでにもう一つ、macroexpand-系を使って、
マクロ動作を勉強してるんですが、
*Message*バッファには省略形のリストしか表示されないです。
全部理解するには、edebug-defunでデバッガ起動するしかないのですか?
0278Zeno ◆5nZQbNmQPs
2009/09/26(土) 03:08:07>>277
> let と let* で二つに分ける理由ってなんですか?
(let* ((x 1)
(y x))
(cons x y))
=> (1 . 1)
(let ((x 1)
(y x))
(cons x y))
=> Error ...
let* は (let 変数定義1 (let 変数定義2 (let ...)))
という風にletでネストされていると考えても良い。
分かったら固定ハンドルを付けろ。
0279デフォルトの名無しさん
2009/09/26(土) 03:09:450280Zeno ◆5nZQbNmQPs
2009/09/26(土) 03:11:02>>279
> いや意味の違いじゃなくて”何故”両方ある必要があるのかって質問でしょ
| let* は (let 変数定義1 (let 変数定義2 (let ...)))
| という風にletでネスト
するのが面倒だから。
0281269
2009/09/26(土) 04:27:21回答頂きありがとうございます.
まだ未熟でコードの善し悪しの判別は付きませんが,提示頂いた lexical-let
を使って書くことにしました.
ちなみに quote 内で評価する場合は(回答頂いた中では) >>270 でしか展開さ
れないみたいですね.
(lexical-let ((s "test"))
(quote s))
=> s
(let ((s "test"))
`(quote ,s))
=> "test"
非常に勉強になりました!!
0282Zeno ◆5nZQbNmQPs
2009/09/26(土) 04:41:58>>281
> ちなみに quote 内で評価する場合は(回答頂いた中では) >>270 でしか展開さ
> れないみたいですね.
当たり前だ。 quote は数ある special form の一つで、
その引数は評価されないまま内部に渡される。
根本的に理解できていないようだから、まずは common lisp から
学んでみることを勧める。
わかったらさっさと本屋に直行しろ。
0283Zeno ◆5nZQbNmQPs
2009/09/26(土) 04:47:51私は emacs スレを長らく留守にしていたのだが、
フンバリャーウンコ・ヨーデルは現れなかったかね?
フンバリャーウンコ・ヨーデルはいるかね? 見ているなら返事をしたまえ。
0284269 ◆PC9p7J5igw
2009/09/26(土) 05:59:41quote については理解しているつもりですが,
今回は引数を渡す前に例外的に評価されるようにしたかったのです.
quote でも渡される前に評価されると思ったのは, lambda が function で内
包して返すマクロだからです.
(macroexpand (lambda () "test"))
=> (function (lambda nil "test"))
しかし,function でも渡される前に評価されるわけではないんですね
(lexical-let ((s "test"))
(function s))
=> s
そもそも help に書いてありました...
>lambdas inside BODY will create lexical closures
lisp を理解できていないのは自覚しているのでアドバイス通り common lisp
から勉強したいと思います.
0285デフォルトの名無しさん
2009/09/26(土) 08:39:51少しは、「少しは本を読め」な質問減るかなぁ。
0286デフォルトの名無しさん
2009/09/26(土) 09:37:27EmacsLispが嫌になっちゃったりして。
0287デフォルトの名無しさん
2009/09/26(土) 11:05:12Macで使えたらなぁ…
0288デフォルトの名無しさん
2009/09/26(土) 11:12:080289デフォルトの名無しさん
2009/09/26(土) 18:52:570290Zeno ◆5nZQbNmQPs
2009/09/26(土) 20:56:17>>289
ああ、在る。
0291Zeno ◆5nZQbNmQPs
2009/10/02(金) 16:10:23>>284
頑張れよ
ttp://www.gnu.org/software/emacs/manual/html_mono/elisp.html
0292デフォルトの名無しさん
2009/10/05(月) 22:29:10私はUbuntuにclispをインストールし、端末上でClispを起動した後,(format t "Hello World")と打ち込んでEnterを押しました。
実行結果として、端末にHello Worldと表示されました。
しかし、Emacs上で上記を打ち込んでCtrl + jを押しますと、エラーらしき文章が・・・
Emacs Lisp と Common Lispというのは方言の違いを表しているのでしょうか、
実際に、出来ることと出来ないことの差というものもあるのでしょうか?
0293デフォルトの名無しさん
2009/10/05(月) 22:37:440294デフォルトの名無しさん
2009/10/05(月) 22:43:04Emacs lispの使われる用途
Common lispの使われる主な用途
を教えてください。
また、上記両方のlispに関して参考サイトとしての大御所・・・と言えるような海外サイトがあれば教えて頂きたい
0295デフォルトの名無しさん
2009/10/05(月) 22:50:08Common Lisp はもっと計算速度が欲しいとか大規模なものを作る人々が使う。
大御所ねぇ。権威が欲しいならHaskellとかScalaとかピカピカのやつやったほうがいいと思うよ。
0296デフォルトの名無しさん
2009/10/05(月) 22:53:29わかりました。最初はCommon Lispから始めようと思います。それでは
0297デフォルトの名無しさん
2009/10/05(月) 22:54:26Emacs Lisp は Emacs の名を冠するだけあって Emacs の拡張・カスタマイズ用に決まっておろうが。
Emacs は本当に基本的なコアを除いて Emacs Lisp で書かれてるんだぜ。
Common Lisp の主な用途って言っても汎用言語の主な用途なんて言ってもしょうがないと思う。
とりあえず Common Lisp スレがあるからそっち行け。
0298デフォルトの名無しさん
2009/10/05(月) 23:10:480299デフォルトの名無しさん
2009/10/06(火) 09:26:110300デフォルトの名無しさん
2009/10/06(火) 23:01:430301デフォルトの名無しさん
2009/10/07(水) 00:35:000302デフォルトの名無しさん
2009/10/07(水) 00:39:370303デフォルトの名無しさん
2009/10/07(水) 00:42:55Scheme なら SRFI
0304デフォルトの名無しさん
2009/10/07(水) 17:19:58ウェブできればグラマーの幅が広がって共有ノウハウも増えるはずなんだけど。
0305デフォルトの名無しさん
2009/10/07(水) 18:11:570306デフォルトの名無しさん
2009/10/07(水) 18:40:550307デフォルトの名無しさん
2009/10/07(水) 19:13:58そりゃ書けると思うけどグラマーの幅が広がるって意味がわからん。
ウェブアプリってのもクライアントなのかサーバアプリなのかわからん。
前者なら普通に存在してるよ。
あと昔Emacsで動くhttpdなんてのも作られてたよ。
こんなん。
ttp://sachachua.com/notebook/emacs/httpd.el
ttp://elserv.sourceforge.net/
0308デフォルトの名無しさん
2009/10/07(水) 22:58:12ウェブのソフトウェアなんてシェルスクリプトでも書けるんだぜ。
Emacs のノウハウを心配するより、君自身のノウハウを増やした方が良いと思うぞ。
0309デフォルトの名無しさん
2009/10/09(金) 12:57:59anything, anything-config を使っています。
anything-sources に anything-c-source-* 一つずつ足していって試してみているのですが
anything-c-source-info-elisp を足したところで
progn: Symbol's function definition is void: Info-find-node
とエラーを吐いて止ってしまいます。
Enter Debugger on Error を使ってみたところ、*Backtrace*に次のようなメッセージ(次レスに貼ります)が出ました。
どうやら Info-find-node が定義されていないとのことですが
どう対処してよいかわかりません。
何かアドバイスをいただけませんでしょうか?
0310デフォルトの名無しさん
2009/10/09(金) 12:59:28(Info-find-node "elisp" "Index")
(progn (Info-find-node "elisp" "Index") (setq anything-c-info-elisp (split-string ... "\n")) (Info-exit))
(unwind-protect (progn (Info-find-node "elisp" "Index") (setq anything-c-info-elisp ...) (Info-exit)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
(save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))
(with-current-buffer temp-buffer (unwind-protect (progn ... ... ...) (and ... ...)))
(let ((temp-buffer ...)) (with-current-buffer temp-buffer (unwind-protect ... ...)))
(with-temp-buffer (Info-find-node "elisp" "Index") (setq anything-c-info-elisp (split-string ... "\n")) (Info-exit))
(if anything-c-info-elisp nil (with-temp-buffer (Info-find-node "elisp" "Index") (setq anything-c-info-elisp ...) (Info-exit)))
(unless anything-c-info-elisp (with-temp-buffer (Info-find-node "elisp" "Index") (setq anything-c-info-elisp ...) (Info-exit)))
(save-window-excursion (unless anything-c-info-elisp (with-temp-buffer ... ... ...)))
(lambda nil (save-window-excursion (unless anything-c-info-elisp ...)))()
apply((lambda nil (save-window-excursion (unless anything-c-info-elisp ...))) nil)
(let ((anything-source-name ...)) (apply func args))
anything-funcall-with-source(((name . "Info Elisp") (init lambda nil (save-window-excursion ...)) (candidates lambda nil (loop for i in anything-c-info-elisp if ... collect ...)) (ここで改行を挿入)
(action lambda (candidate) (Info-find-node "elisp" "Index") (Info-index ...)) (volatile) (requires-pattern . 2)) (lambda nil (save-window-excursion (unless anything-c-info-elisp ...))))
0311デフォルトの名無しさん
2009/10/09(金) 12:59:35(let ((--cl-dolist-temp-- ...) func) (while --cl-dolist-temp-- (setq func ...) (anything-funcall-with-source source func) (setq --cl-dolist-temp-- ...)) nil)
(catch (quote --cl-block-nil--) (let (... func) (while --cl-dolist-temp-- ... ... ...) nil))
(cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil)))
(block nil (let (... func) (while --cl-dolist-temp-- ... ... ...) nil))
(dolist (func (if ... ... it)) (anything-funcall-with-source source func))
(if it (dolist (func ...) (anything-funcall-with-source source func)))
(let ((it ...)) (if it (dolist ... ...)))
(anything-aif (assoc-default sym source) (dolist (func ...) (anything-funcall-with-source source func)))
(while --cl-dolist-temp-- (setq source (car --cl-dolist-temp--)) (when (symbolp source) (setq source ...)) (anything-aif (assoc-default sym source) (dolist ... ...)) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--)))
(let ((--cl-dolist-temp-- ...) source) (while --cl-dolist-temp-- (setq source ...) (when ... ...) (anything-aif ... ...) (setq --cl-dolist-temp-- ...)) nil)
(catch (quote --cl-block-nil--) (let (... source) (while --cl-dolist-temp-- ... ... ... ...) nil))
(cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil)))
(block nil (let (... source) (while --cl-dolist-temp-- ... ... ... ...) nil))
(dolist (source (anything-get-sources)) (when (symbolp source) (setq source ...)) (anything-aif (assoc-default sym source) (dolist ... ...)))
anything-funcall-foreach(init)
ad-Orig-anything-initialize()
(setq ad-return-value (ad-Orig-anything-initialize))
(let (ad-return-value) (setq anything-c-adaptive-done nil) (setq ad-return-value (ad-Orig-anything-initialize)) ad-return-value)
anything-initialize
0312デフォルトの名無しさん
2009/10/09(金) 19:30:54(require 'info)
とでも書いたらどうかな。
0313デフォルトの名無しさん
2009/10/09(金) 19:53:14ありがとうございました。できました。
0314デフォルトの名無しさん
2009/10/10(土) 00:32:010315デフォルトの名無しさん
2009/10/10(土) 21:12:340316デフォルトの名無しさん
2009/10/10(土) 22:31:51内容は region が活性だったら google 用の検索 URL 作って
browse-url で デフォルトのブラウザ呼び出すだけのシンプルなのだったけど。
0317デフォルトの名無しさん
2009/10/10(土) 22:54:01探せばすぐに見つかるものでしたね
お手数をかけました
0318デフォルトの名無しさん
2009/10/10(土) 23:37:360319デフォルトの名無しさん
2009/10/10(土) 23:55:470320デフォルトの名無しさん
2009/10/15(木) 16:27:560321Zeno ◆5nZQbNmQPs
2009/10/15(木) 16:41:39>>320
自分でソースを引っ張ってきて、ソース内、そしてファイル名に含まれる
[Ee]macs を [Ee]wins に変換すれば良いだろうが。
0322Zeno ◆5nZQbNmQPs
2009/10/15(木) 16:45:56>>320
それと一応教えておくが、MacよりもEmacsの方が先だ。
もしそういうことにしたいのであれば「Emacsがmacびいきな名前」ではなく、
「MacがEmacsびいきな名前」と解釈するのが正しい。
0323デフォルトの名無しさん
2009/10/15(木) 17:14:51なんでそうなったかっていうと、圧倒的大多数を占めるWindowsに
インターフェースを合わせなかったからだろうな。
標準をWindowsに合わせて、オプションで旧Emacsを選べるのが
本来の正しい姿。
0324デフォルトの名無しさん
2009/10/15(木) 17:17:24君面白いねw
というかWindowsがEmacsにあわせるべき。
Macはもう合わせてる。
0325Zeno ◆5nZQbNmQPs
2009/10/15(木) 17:31:04中身が理解できていない為、デフォルトの見た目について
あれこれ文句を言うことしかできない真性の阿呆は放っておけ
0326デフォルトの名無しさん
2009/10/15(木) 17:35:420327デフォルトの名無しさん
2009/10/15(木) 19:00:120328デフォルトの名無しさん
2009/10/15(木) 20:07:390329デフォルトの名無しさん
2009/10/15(木) 21:24:17ttp://www.ueda.info.waseda.ac.jp/~ichibe/pub/members.tripod.co.jp/zzyyb/mit/doc-ja/user_8.html
Emacs ライクな Scheme ベースのエディタ Edwin
ただし日本語は通らないらしいが
0330デフォルトの名無しさん
2009/10/15(木) 22:15:20windowsアンチなの?
0331デフォルトの名無しさん
2009/10/15(木) 22:28:12Emacsアンチなの?
0332デフォルトの名無しさん
2009/10/15(木) 22:41:050333デフォルトの名無しさん
2009/10/15(木) 23:12:350334デフォルトの名無しさん
2009/10/16(金) 00:20:170335デフォルトの名無しさん
2009/10/16(金) 00:29:150336デフォルトの名無しさん
2009/10/16(金) 00:42:280337デフォルトの名無しさん
2009/10/16(金) 00:46:580338デフォルトの名無しさん
2009/10/16(金) 16:43:290339デフォルトの名無しさん
2009/10/16(金) 19:42:53・これだったら Emacs で十分だぜ
・これなら十分 Emacs の代替になるな
・こ、これは Emacs より断然スゲー!
0340デフォルトの名無しさん
2009/10/16(金) 19:52:420341デフォルトの名無しさん
2009/10/16(金) 20:10:490342デフォルトの名無しさん
2009/10/16(金) 20:18:49エディタ全般的に見ると xyzzy には xyzzy の良さがある。
着想の元が Emacs だとしても今では別物。
比較するようなもんじゃない。
0343デフォルトの名無しさん
2009/10/16(金) 20:26:26ありがと。
0344デフォルトの名無しさん
2009/10/16(金) 22:59:31Windowsアプリとして見るとEmacsより違和感が無いって感じ(´・ω・`)
0345デフォルトの名無しさん
2009/10/16(金) 23:00:560346デフォルトの名無しさん
2009/10/16(金) 23:08:320347デフォルトの名無しさん
2009/10/17(土) 08:41:20Emacs好き好きすぎるとかえってストレスたまるかもしれんね。
0348デフォルトの名無しさん
2009/10/17(土) 09:17:51今のWindows用EmacsはUSBに入れて持って歩けるしね。
0349デフォルトの名無しさん
2009/10/24(土) 18:44:320350デフォルトの名無しさん
2009/10/24(土) 20:49:56大昔にマイコンさわったときの最初のエディタがmince(micro emacs)だったと言うだけでemacs以外さわれない体になった俺みたいなのもいる(普通はwordmasterだった頃)
RPN電卓さわってしまった工学系学生とおなじようなもんだけど
0351デフォルトの名無しさん
2009/10/24(土) 20:56:13単に適応能力が普通の人に比べて足りてない能無しってだけだよね。
価値のある体験談でもないし勿論自慢にはならない。
0352デフォルトの名無しさん
2009/10/24(土) 21:09:32必要にせまられればどんなエディタでも結構なんとかなったりする
0353デフォルトの名無しさん
2009/10/24(土) 21:26:45もちろん君はQwerty配列でもDvorak配列でも全く同等に使えるんだよね?
0354デフォルトの名無しさん
2009/10/24(土) 21:41:26emacsとvi好きに喧嘩売るとはなんという宗教戦争マニア!
0355デフォルトの名無しさん
2009/10/24(土) 21:47:06エディタとか割とよく使うもの(鉛筆とノートのように)だと最初の原体験で得た物と次にさわった物の間で入力速度に差があると二度と他に移りたくなくなる物だよ
今の時代のようにしょっちゅう入れ替えができたり物が選べる時代じゃないならなおのことだ(当時はストレージがFDドライブ二個が上限だったしエディタ買うのだってものすごく高価だった)
今でも各種IDEのキーバインドにエディタ名を冠した設定がある事がそれを物語ってるよ
0356デフォルトの名無しさん
2009/10/25(日) 01:38:280357デフォルトの名無しさん
2009/10/25(日) 01:51:57それ、良い喩えだね。面白い。
0358デフォルトの名無しさん
2009/10/25(日) 02:00:11どっちも十分に経験していれば、当然どっちも十分に使えるだろうね。
普通の人は。
脳に欠陥のある人は、二つ目の経験が一つ目を吹き飛ばしてしまうかも。
0359デフォルトの名無しさん
2009/10/25(日) 02:16:32携帯していたので電卓の出番が無くて結局覚えられなかったなあ。
bc って打つ代わりに dc って打てば良いだけだったんだけど、そこは
やっぱり人の性、要らん物は覚えないね。
0360デフォルトの名無しさん
2009/10/25(日) 03:16:49まず一つの事を深く知ることが大事だろ。
0361デフォルトの名無しさん
2009/10/25(日) 03:48:27>どっちも十分に経験していれば、当然どっちも十分に使えるだろうね。
ただし、
日本ではQwertyを強制される機会は多くてもDvorakを強制される機会はほとんどないため
普通の人はQwertyしか使えない。
自分で乗りかえようと思い立った人か幸運にも最初がDvorakだった人のみが
Dvorakを使えるというのが現状。
だからどっちも十分に経験していれば、という前提が非常にレアケース。
普通の大部分の人は
「最初にQwertyをさわったからQwertyしか使えない。」
0362デフォルトの名無しさん
2009/10/25(日) 05:14:32もっともらしく文章書いてるが結論でいきなり論理が飛躍している上に間違っている。阿呆。
最初にQwertyをさわったからQwertyしか使えない。
ではなく
QwertyしかないからQwertyしか使わない。
程度の事しかおまえさんの文章では結論できない。
0363デフォルトの名無しさん
2009/10/25(日) 05:21:04>QwertyしかないからQwertyしか使わない。
そこらじゅうにDvorakに触れる機会はあるよ。
ただみんなそれを選んでないしそうする必要もないだけ。
だから普通は選ばない。
理由は慣れてないから。
なぜ慣れていないかと言うと普通は最初にDvorakを触っていないから。覚えるコストも大きい。
どこか違うの?
0364デフォルトの名無しさん
2009/10/25(日) 09:32:36最初に触れたのが Common Lisp だから Emacs Lisp が気持ち悪いって話題ならともかく・・・
0365デフォルトの名無しさん
2009/10/25(日) 09:51:46もれはASCII配列のQWERTYしか使えない
0366デフォルトの名無しさん
2009/10/25(日) 10:53:590367デフォルトの名無しさん
2009/10/25(日) 10:55:25a)操作性が同じじゃないので使えない。
b)XXXというEmacsLispと同等のものを、他のエディタ上で用意できない。
c)作り貯めたマクロを移行するのが大変すぎる。
aは極論すれば慣れればなんとかなるわけだが、Emacs歴20年です、
という人なんかはb, cが大変だと思われ。
0368367
2009/10/25(日) 11:00:48d)クラスプラットフォームでGUIでもターミナルエミュレータでも使えるエディタが極めて限られる。
てのがあって、Emacsを捨てたくてたまらないのに(今のところ)移行先が見当らないという……。
0369デフォルトの名無しさん
2009/10/25(日) 11:26:48困ってない事を解決するのは余程の暇人じゃないと難しい。
0370デフォルトの名無しさん
2009/10/25(日) 12:12:36UNIX上での仕事メインならEmacs使うのになんの支障もないだろし
他のOSでもエディタの指定がゆるいならバリアントを入れればいいし
仕事じゃなくて趣味ならおさっしだし。
navi2chしか使ってないくせにEmacsしかもう使えない!なんていってるやつは
死ねばいい
0371デフォルトの名無しさん
2009/10/25(日) 12:23:04>死ねばいい
流石にネタだと思いたい
0372デフォルトの名無しさん
2009/10/25(日) 14:31:24UbuntuインストールしただけでLinuxマスター(笑)になっちゃって
わけしり顔でWindows批判はじめだすような人種だな
0373デフォルトの名無しさん
2009/10/25(日) 15:36:310374デフォルトの名無しさん
2009/10/25(日) 17:56:560375デフォルトの名無しさん
2009/10/25(日) 18:58:430376デフォルトの名無しさん
2009/10/25(日) 19:25:34このdeffaceの引数と同じ書式で上書き可能な関数ってあります?
(set-face-* ...)もあるけど、できればまとめて定義したいので
0377デフォルトの名無しさん
2009/11/08(日) 15:28:54set-face-attribute とか?
0378デフォルトの名無しさん
2009/11/13(金) 21:23:30それだと引数がリストじゃないんですよね。。
とりあえず自分でdeffaceを弄ったものが期待どおりに動いたのでよしとします
http://paste.lisp.org/display/90293
0379デフォルトの名無しさん
2009/12/01(火) 21:03:37【プログラミング万歩計】
ファイルの拡張子ごと、日付ごとに自分が何回タイプしたか統計を取る。
健康増進的なノリでプログラミング力を鍛える励みにする。
0380デフォルトの名無しさん
2009/12/01(火) 21:20:13outputz.el みたいなの?
0381デフォルトの名無しさん
2009/12/01(火) 21:26:16拡張子毎ってあたりは適当に細工しなきゃいけないだろうけど。
0383デフォルトの名無しさん
2009/12/02(水) 00:41:200384デフォルトの名無しさん
2009/12/02(水) 06:15:340385デフォルトの名無しさん
2009/12/04(金) 14:20:130386デフォルトの名無しさん
2009/12/04(金) 20:44:03(defun describe-timer ()
(interactive)
(let ((tl timer-list)
timer)
(pop-to-buffer (get-buffer-create "*timer*"))
(erase-buffer)
(insert
"TIME FUNCTION\n"
"-------------- --------------------------\n")
(while tl
(setq timer (car tl))
(insert
(concat
(format-time-string "%m/%d %T"
(list (aref timer 1)(aref timer 2)(aref timer 3)))
" "
(symbol-name (aref timer 5))
"\n"))
(setq tl (cdr tl)))))
0387デフォルトの名無しさん
2009/12/06(日) 01:38:29すばらしい。ありがとう!!
0388デフォルトの名無しさん
2009/12/09(水) 04:58:04さっきMeadowを使っている人は少なくて本家のgnu emacs winバイナリを使っている人が主流みたいに書いてあったのですが、みなさん日本語入力はどうしてます?
0389デフォルトの名無しさん
2009/12/09(水) 08:35:320390デフォルトの名無しさん
2009/12/09(水) 08:43:22そもそも使う方法はないのでしょうか。
0391デフォルトの名無しさん
2009/12/09(水) 16:37:41なぜ、このスレで質問してるのか、よくわからないが、MS-IMEでMeadowに入力できたと思うけどなあ。
で、Meadowで何をしたいんだ?
emacsを使いたいなら、マウスを持たずにCUIで作業するのが理想だと思うなあ。
0392デフォルトの名無しさん
2009/12/09(水) 16:48:44いきなりマウスの話題が出てきた理由って何なの?
0393デフォルトの名無しさん
2009/12/09(水) 17:32:46ん?
Meadow じゃなく gnu emacs win バイナリで日本語入力はどうしてるの?
って質問じゃないかと。
0394デフォルトの名無しさん
2009/12/09(水) 18:31:320395デフォルトの名無しさん
2009/12/09(水) 20:05:24elispスレなので、本家のgnu emacsを好む方が多いかなと思って質問させていただきました。
>>394
23baseがあれば嬉しいですが、すみません、わがまま言いすぎですよね。
0396デフォルトの名無しさん
2009/12/09(水) 20:10:24すみません。リンク先をよく見ていませんでした!
emacs23のIMEパッチをしてくださったんですね。早とちりしてNTemacsのことだと思っていました。すみません。
さっそく試してみます。ありがとうございました!
0397デフォルトの名無しさん
2009/12/10(木) 00:13:25* 端末から利用するとQuit(\C-g)が効く
* Xから利用するとQuitが効かない
てのは、正しい動作なんでしょうか?
0398デフォルトの名無しさん
2009/12/10(木) 01:44:250399デフォルトの名無しさん
2009/12/10(木) 23:00:27てことは、ウチの環境だけみたいですかね。。
正しくはXじゃなくてGTK@Ubuntuなんですけど
0400デフォルトの名無しさん
2009/12/20(日) 05:31:59remark 文の中の '09/12/20 みたいな ' 文字がでる度に string だと認識されて困る
0401デフォルトの名無しさん
2009/12/30(水) 17:25:390402デフォルトの名無しさん
2010/01/18(月) 17:31:37出力する関数ってありますか?
0403デフォルトの名無しさん
2010/01/18(月) 17:53:44よくわからんが mmm-mode とか使えないの?
0404デフォルトの名無しさん
2010/01/18(月) 18:11:53format
0405デフォルトの名無しさん
2010/01/18(月) 19:04:47set-buffer して insert しないといけないんでしょうか。
質問ばかりですみません。
0406デフォルトの名無しさん
2010/01/18(月) 19:21:32(with-current-buffer buf
(insert (apply #'format fmt args))))
みたいな関数を自分で作っちゃえばいいんじゃない?
標準にありそうな匂いがプンプンするけど
0407デフォルトの名無しさん
2010/01/18(月) 19:43:12とりあえずありがとう。やりたい事がやっとできました。
0408デフォルトの名無しさん
2010/01/19(火) 20:10:59sprintfのようにフォーマットの指定まではできないが
文字列の出力先を指定する関数はいくつかある。print/prin1/princなんかがそう
(princ (format "Hello %s.\n" "Emacs") (find-buffer "*scratch*"))
(info "(elisp) Output Streams") も参照
emacsの場合はファイルよりもバッファをやりくりするのが基本かな。
0409デフォルトの名無しさん
2010/01/19(火) 21:12:16(defun ins-comma (start end)
"insert comma to digits in region."
(interactive "r")
(let ((res t))
(while res
(save-excursion
(goto-char start)
(if (setq res
(re-search-forward "\\([0-9]+\\)\\([0-9]\\{3\\}\\)" end t))
(replace-match "\\1,\\2" nil nil))))))
とすると、リージョンの尻にある数字にマッチしません。
どこが間違ってるでしょうか。
re-search-forwardの第二引数をnilにすればマッチするんですが。
0410デフォルトの名無しさん
2010/01/21(木) 19:22:28・replace-matchにより該当部分の長さが変わる
・前から順に書き換えている
から。
0411デフォルトの名無しさん
2010/01/21(木) 19:25:320412デフォルトの名無しさん
2010/01/22(金) 08:51:54部として使っているような場合に、edebug してトレースしたいときは、どう
すれば良いのでしょうか? (以下の場合では、anything-c-source-recentf の
中をトレースしたい。 )
(defvar anything-c-source-recentf
'((name . "Recentf")
(candidates . recentf-list)
(match . (anything-c-match-on-file-name
anything-c-match-on-directory-name))
(type . file))
"See (info \"(emacs)File Conveniences\").")
(anything 'anything-c-source-recentf)
0413デフォルトの名無しさん
2010/01/22(金) 17:09:300414デフォルトの名無しさん
2010/01/23(土) 03:29:24前提というのは、「defvar で定義されたリストを関数の一部」かなと思うから
anything コードを見てみたら、必要に応じてリストから部分的に取り出して
使ってるように見えるから前提があってない。 そういうこと?
だから edebug でトレースは無理ということで終了?
0415デフォルトの名無しさん
2010/01/23(土) 14:47:01> anything コードを見てみたら、必要に応じてリストから部分的に取り出して
> 使ってる
この部分になるでしょう。
0416デフォルトの名無しさん
2010/01/27(水) 03:38:30レスありがとう。やってみます!!
0417デフォルトの名無しさん
2010/01/31(日) 08:49:080418デフォルトの名無しさん
2010/02/08(月) 16:01:36(defun case-fold-string= (a b)
(compare-strings a nil nil b nil nil t))
(defun case-fold-string-hash (a)
(sxhash (upcase a)))
(define-hash-table-test 'case-fold
'case-fold-string= 'case-fold-string-hash)
(setq lang-hash (make-hash-table :test 'case-fold))
elisp info にあるように上記のようにして、ハッシュを作成してみましたが、
キーによっては、以下のようにハッシュ値が同じになってしまい、うまくいき
ません。こういう場合は、どうするんでしょうか?
(case-fold-string-hash "RU")1397
(case-fold-string-hash "SE")1397
0419デフォルトの名無しさん
2010/02/08(月) 16:30:25ハッシュ値は関係ないと思う
完全ハッシュ関数を作らないかぎり、ハッシュ値はふつう重複する
Wikipedia のハッシュテーブルとかハッシュ関数の頁を参照
で、問題は compare-strings は文字列が一致しないときに数値を返すこと
(defun case-fold-string= (a b)
(string-equal (upcase x) (upcase y)))
ならうまく動いた
0420デフォルトの名無しさん
2010/02/11(木) 09:52:56ありがとうございます。同じハッシュ値をもつキーでもバリュー値を上書きす
るわけじゃないんですね。
0421デフォルトの名無しさん
2010/02/12(金) 14:13:420422デフォルトの名無しさん
2010/02/12(金) 14:52:360423デフォルトの名無しさん
2010/02/12(金) 14:58:350424デフォルトの名無しさん
2010/02/12(金) 15:20:200425デフォルトの名無しさん
2010/02/18(木) 02:41:54下のlispを.emacsに書いても反映されません。 C-x C-e でも同様でした。
.emacsに書いてる他の部分は反映されています。
(add-hook 'java-mode-hook
'(lambda ()
(setq default-tab-width 2)
(setq tab-width 2)))
何がおかしいのか調べるにはどうすべきでしょうか?
Emacsの単なる使用にあたるのか、
Lispになるのかわからなかったのでこちらに書き込ませて頂きました。
0426デフォルトの名無しさん
2010/02/18(木) 02:55:150427デフォルトの名無しさん
2010/02/18(木) 04:42:31できました!
ありがとうございます。
0428デフォルトの名無しさん
2010/02/18(木) 09:45:25フック書かなくてもできる。
(c-add-style "java2" '("java" (c-basic-offset . 2)))
(setq c-default-style
'((java-mode . "java2")
(other ."k&r")))
0429デフォルトの名無しさん
2010/03/11(木) 00:38:15syntaxテーブルにREM追加すりゃよいかも。
-- で検索すれば雰囲気つかめるんじゃない。
0430デフォルトの名無しさん
2010/03/11(木) 00:41:58をさ、
+ 1 じゃなくて、 + 2にしたいときってどうすればlispっぽくかけます?
0431デフォルトの名無しさん
2010/03/11(木) 03:03:52(if (< n 2)
(+ 1 arg)
(a (arg (+1 n))))
(a num 0)
0432デフォルトの名無しさん
2010/03/11(木) 03:05:10(if (< n 2)
(+ 1 arg)
(a arg (+1 n)))
(a 12 0)
0433デフォルトの名無しさん
2010/03/11(木) 03:43:32質問の意味がまるでわからないけど
(defun a (arg &optional n)
(+ arg (or n 1)))
ということ?
>>432
n >= 2 のとき停止しないような
あと、 Emacs Lisp は末尾再帰の最適化が効かないから
適当にループを使った方がいい
0434430
2010/03/11(木) 23:25:22+ 1 じゃなくて + 2 にしたいなー
っていう時です。
複雑で便利な関数がすでに定義されてあるけど、
なんでこの部分だけこうなんだ!コピペするのはなんだかなぁ・・・
ってときに、リストってのを利用して良い方法はないものかと。
0435430
2010/03/11(木) 23:27:04さらに、a はすでに定義されてていろんなパッケージで使われてるから、
aの使い方は崩したくない。
そして、aにパッチも送りたくないから、aの定義があるソースコードは
変更しない。って感じ。
0436430
2010/03/11(木) 23:31:32処理が(別な言語で表現すると
array( +, 1, arg )
ってあるんだから、
newfunc = [ array[0], 2, array[2] ]
みたいなノリで、新しい関数作れないのかな?ってのを
試行錯誤してる感じです。
0437デフォルトの名無しさん
2010/03/11(木) 23:38:220438デフォルトの名無しさん
2010/03/12(金) 00:05:57それってclosureやCLOSの抽象関数などに向かう話だと思われ。
つまりCommon Lisp方面。
0439デフォルトの名無しさん
2010/03/12(金) 00:33:52defadvice が使えることがある。例えば >>430 の例なら
(defadvice + (after foo)
(setq ad-return-value (- ad-return-value -1)))
ってするとか。
ただし、 + みたいな基本関数にこんな advice をつけて大丈夫かは知らない。
たぶん大丈夫じゃない。
ある程度用途が限定されている関数なら defadvice で少し動作を変えるというのはたまにやる。
0440デフォルトの名無しさん
2010/03/12(金) 01:55:32evalで出来なくはないだろうけど、手間が掛かるだけで全然便利じゃない。
あとは、ダイナミックスコープを利用した+の再定義とかもできるだろうけど、
これもバグの元でオススメできない。>>439の言うdefadviceもあるけど、
あれも限定的にしか使えない。
Lispでのそういう場合のセオリーは、関数を渡せるようにしておいて、
行いたい処理はその中で実行して、適宜切り替えられるようにするんだけど、
そういう風に設計されてなきゃそれまでだしなー。
その関数を書いたやつを内心で罵りながら書き直すに一票。
0441デフォルトの名無しさん
2010/03/12(金) 09:48:16(defvar plus (symbol-function '+))
(defun a (n) (+ n 1))
(flet ((+ (&rest args) (apply plus 1 args)))
(a 2))
ただし、この方法ももとの関数の実体をうまく退避しないと
簡単に無限再帰になってスタックオーバーフローするのでまったくオススメしない。
;; これを書いてるときも何度かスタックオーバーフローさせた
Common Lisp だったら function-lambda-expression をごにょごにょして
eval もできるかもしれないけど、 Emacs Lisp じゃできないし、何よりも不毛。
もとの関数をちょっと書き換えていいなら、変数の動的束縛をはさんで
(defvar *b* 1)
(defun a (n) (+ a *b*))
(let ((*b* 2)) (a 2)) ; => 4
とかも。
defadvice でどうにかできないか検討して、それで無理だったら諦めるのが無難かなあ。
0442デフォルトの名無しさん
2010/03/12(金) 14:36:38url.el とかそんなんばっかり。
0443デフォルトの名無しさん
2010/03/12(金) 19:26:16といってもemacs lisp,CL,schemeの3種くらいか、今悩むのは
0444430
2010/03/13(土) 00:10:38アドバイスは知っていましたが、引数に気をつけないと後遺症が怖いんですよね。
もーちょい皆さんの意見参考にしつつ、粘ります。
>>442
> そこはコールバックにしとけよ、みたいなの結構あるよね。
ありますよねー。でも作った人には利用の仕方が無数に思いつくから、
面倒なんだと思います。
すべてがリスト、っていうプログラムの表現の仕方にあこがれてるので、がんばります、
みなさんありがとー
0445デフォルトの名無しさん
2010/04/05(月) 18:54:200446デフォルトの名無しさん
2010/04/07(水) 01:39:49iphoneアプリの人気がすごかった。
0447デフォルトの名無しさん
2010/04/07(水) 01:50:38こういうのは研究室で身に付けてくるか、入社してから師匠に叩き込まれる物かと思ってた。
0448デフォルトの名無しさん
2010/04/07(水) 08:22:500449デフォルトの名無しさん
2010/04/07(水) 13:35:210450デフォルトの名無しさん
2010/04/07(水) 13:54:08mewじゃなくてgmailだし。
0451デフォルトの名無しさん
2010/04/07(水) 16:02:15あとなんでもかんでも emacs 中でやろうと思うのは結構時間の無駄なんじゃ?って思うようになった。
一つの端末をずっと使い続けられない職場だからなのかもしれないけど。
0452デフォルトの名無しさん
2010/04/07(水) 18:07:23Elispアプリでは、mewは使わなくなったけど、
navi2chやlookupは使ってる。
HTML/CSSの世界ではFirefox + Javascriptを、
Emacs + elispのように使うようになるのかと想像していたが、
そんなことは全くなかった。
HTML/CSS界のEmacsが現れて欲しい。
XMLで七面倒くさいXULは使わなかったが、
chrome拡張ならなんとかなるかもなあ。
Lispならいいのになあ。
0453デフォルトの名無しさん
2010/04/07(水) 22:16:13javascript がベストな言語だとは思えないけどねえ。
つか「HTML/CSS界のEmacs」()笑っていったいどんなの想像してんのよwww
0454デフォルトの名無しさん
2010/04/07(水) 22:22:49>()笑
って書く人初めて見たwww
0455デフォルトの名無しさん
2010/04/07(水) 22:38:32仕事だとJavaのコードばっかり書いてるからeclipseメインだわ。
0456デフォルトの名無しさん
2010/04/08(木) 06:48:38>って書く人初めて見たwww
漏れも時々そうなる
()を先に入力してから
カーソルを()の中に入れて笑を書くと
一部のIMEでいつのまにか()の外に笑が移動するんだよ
気付いたら治すけど
0457デフォルトの名無しさん
2010/04/08(木) 06:50:49>()を先に入力してから
の理由は()が全角になるのを嫌って半角にするんだが
半角(
笑
半角)
の順で入力すると切替が面倒なので
先に()を書いてしまう習慣がある
単語登録しろとかいう突っ込みは野暮というもの
0458デフォルトの名無しさん
2010/04/08(木) 08:04:510459デフォルトの名無しさん
2010/04/08(木) 12:09:35草生やしちゃわない?
0460デフォルトの名無しさん
2010/04/08(木) 13:18:520461デフォルトの名無しさん
2010/04/08(木) 20:51:24Tシャツとnilシャツ
ウエイトレス:食後は珈琲でよろしいですか?
客:T
とか言うのと同じ楽屋落ちネタつーか
0462デフォルトの名無しさん
2010/04/08(木) 20:58:330463デフォルトの名無しさん
2010/04/08(木) 22:01:150464デフォルトの名無しさん
2010/04/08(木) 22:29:050465デフォルトの名無しさん
2010/04/08(木) 23:14:110466デフォルトの名無しさん
2010/04/09(金) 03:35:580467デフォルトの名無しさん
2010/04/13(火) 14:40:33local-abbrev-table をセットしても使えませんでした。
0468デフォルトの名無しさん
2010/04/13(火) 14:46:37により \C-z がマップする関数が定義してあると仮定して、その場合、
「\C-z がマップする関数に \C-x もマップする」
という意味の関数を書きたいのですが、どうすれば良いですか?
イメージとしては
(map-same-keyfunc "\C-x" "\C-z")
により、'foo が \C-x がマップされるといったものです。
0469デフォルトの名無しさん
2010/04/13(火) 15:09:30* (elisp) Active Keymaps
(key-binding "\C-x\C-f")
=> find-file
とか
* (elisp) Functions for Key Lookup
(lookup-key (current-global-map) "\C-x\C-f")
=> find-file
0470デフォルトの名無しさん
2010/04/13(火) 22:42:35> C-z がマップする関数に C-x もマップする
とはちょっと異なりますが、C-z に C-x をマップするってのが
global-set-key じゃなくて define-key を使えばできます。(キーボードマクロの登録)
これでどうでしょうか。具体的には以下の通りです。
(define-key global-map "\C-x" "\C-z")
0471デフォルトの名無しさん
2010/04/14(水) 03:30:56ミニバッファーで展開されるのはfundamental-mode-abbrev-tableと
global-abbrev-tableみたい。
0472デフォルトの名無しさん
2010/04/14(水) 21:18:58y-or-n-p関数の挙動について少し分かったので自己カキコ
Gnome側で「CapsLockをCtrlとして扱う」に設定した擬似Ctrl-gだと
Emacs側ではC-S-gとして扱われるみたい
C-g (translated from C-S-g) runs the command keyboard-quit
# もちろん通常のCtrlキー使用なら変換なしにC-gになる
y-or-n-pのソース(fns.c)を見てみると、生のC-g以外は入力やり直しに
なるのでEmacsの動作としては問題なし。
…と、ここまで書いたはいいが結局解決策は見つかりませんでした。。
0473デフォルトの名無しさん
2010/04/14(水) 22:35:42> Gnome側で「CapsLockをCtrlとして扱う」に設定した擬似Ctrl-gだと
Gnomeのコントロールパネルで変えると、
keysym自体が置き換わるんじゃない?
問題はadd Control = Caps_Lockした時なんじゃないのかな?
これはどの規定だったか忘れたけど、違反する使い方。
昔のXEmacsはこの状態見つけるとログ吐いていたと思う。
0474デフォルトの名無しさん
2010/04/22(木) 20:03:41反応が遅くてスマン
nocapsとswapcapsではkeysym?の挙動が違うみたい。
自分が使ってるのはnocapsの方。
swapcapsだと単純にCapsLockがControlに置き換わるけど
nocapsだと"translated from C-S-g"となるらしい
X11のキーコードの話は今までよく分かってなかったので
現在ググって調べ中…そろそろスレ違いになってきたぞ
0475デフォルトの名無しさん
2010/05/05(水) 22:56:01流石にもうelispの時代は終わってしまったのかのう
0476デフォルトの名無しさん
2010/05/05(水) 23:07:020477デフォルトの名無しさん
2010/05/05(水) 23:52:37言語を作れるっていう宣伝が巷に溢れているが、
マクロのことであって、特に一般的に想像するような言語を作れるってのとは違う、
どちらかというとXMLで言う言語を作ってという感じに近い、
プログラミング言語の出来方でいえば、ある構造を別の原始的構造に翻訳する、というものだ。
あと抽象的とは言うが、オブジェクト指向的な意味での抽象性がない。
たとえば、リストがIterableだからリストじゃないものもIterableに振舞えば
リストのように扱えるというか、そういうものが無いように見える。
まあそれはともかくとして、Elispは秀丸マクロよりマシだと思うよ。
0478デフォルトの名無しさん
2010/05/06(木) 01:03:440479デフォルトの名無しさん
2010/05/06(木) 01:47:07他のエディタで此処までかけるのってVisualStudioのVBマクロだろうけど、あれは細かいことするのがちょっと大変過ぎるし
Briefも割と良くできてたけど大物書くのはイヤになるっていう感じだし
Eclipseのプラグインがもっと柔軟になる以外elisp環境に対抗できるのってSmalltalk位じゃないの?
0480デフォルトの名無しさん
2010/05/06(木) 07:24:140481デフォルトの名無しさん
2010/05/06(木) 10:51:22> 言語を作れるっていう宣伝が巷に溢れているが、
Paul Graham 氏がそれを流行らせたのではなかろうか。
>>480
elispは楽しいよ。ただ、pythonとかに比べるとコーディングが
かなり遅くなっちゃう。名前空間がないから、同じ
関数を再コーディングするハメになったり、lispがlispである故、
「綺麗に書かなきゃな」ってのがあって、綺麗に書くこと自体が
割と面倒だったりする。
0482デフォルトの名無しさん
2010/05/06(木) 11:44:07defunとかは勝手にインデントされるけど、
defmacroしたのはdefunとかと同じようなインデントルールにしてますか?
正直インデントは構文にかかわらないわりに面倒。
まあ、視覚的に関数の構造を見られるのはいいけれども。
0483デフォルトの名無しさん
2010/05/07(金) 14:32:200484デフォルトの名無しさん
2010/05/07(金) 15:32:370485デフォルトの名無しさん
2010/05/08(土) 18:54:52入門本とかだと、表面的なことしかやってないから、全然面白くないよね。
Lispでの抽象っていうのは、OOP的な手法じゃなくって、
関数的な手法を使ってることが多い。つまり、クロージャを渡して、
それを内部で呼び出すことで、柔軟性を確保するとかそういうの。
OOPでもMOPとかどぎついのがあるけど。
On Lisp辺りは、邦訳がネットで無料で公開されてるから、読んでみたら良いよ。
言語を作るというのがどういうことなのか、関数的な抽象化とは何なのか、
具体的な例が乗ってるから。他の言語でも参考になる考え方だと思う。
0486デフォルトの名無しさん
2010/05/08(土) 19:01:05忘れてた。
> たとえば、リストがIterableだからリストじゃないものもIterableに振舞えば
> リストのように扱えるというか、そういうものが無いように見える。
これは流石に誤解。CLならGray Stream、Schemeならポートがまさにそれだし、
動的型付けを利用した手法は、日常的にみんな使ってる。Emacs Lispでも。
0487デフォルトの名無しさん
2010/05/08(土) 22:24:49Scala あたりに移っちゃったのかな
0488デフォルトの名無しさん
2010/05/08(土) 22:31:10関数型スキーはHaskell、S式スキーはCommon LispやScheme、
Java資産を活かしたい実用派がScalaやClojure、
並列処理スキーがErlangみたいな気がする。
0489デフォルトの名無しさん
2010/05/09(日) 06:08:11関数型を学ぶなら今はHaskellがいいんだろうな多分
個人的にはCoqのGallinaもいいんだけど、依存型はまだ難しすぎるから…
0490デフォルトの名無しさん
2010/05/09(日) 10:01:520491デフォルトの名無しさん
2010/05/09(日) 10:23:52Lispだって、社会人になってからは、ハードコアなEmacs使いが
いじり倒したいから趣味で学ぶぐらいでしょ。
そうやって関数型には適度に慣れておくぐらいで十分。
Haskell学んだからって使える場所がないし後にも残らん。
どうせならElispに近いCommon Lisp学んで、CLのコードをポートしたりするのが良い。
0492デフォルトの名無しさん
2010/05/09(日) 12:25:15format の辺りなど色々な部分が elisp と違っていて微妙だった。
elisp は C 言語系列をやってきた人に取っ付きやすいよう作られてるなと感じた.
0493デフォルトの名無しさん
2010/05/09(日) 12:25:30そういう意味じゃ Scala はまだ現実的な線だし elisp も emacs 使い続けるなら悪くないよね。
0494デフォルトの名無しさん
2010/05/09(日) 13:06:23> たしかに Haskell を実務で・・・なんて普通のやつらの上を行くぐらいの人じゃないと無理だろな
言っている意味がわからない。
「普通のやつらの上を行くぐらいの人」だと Haskell を実務で使わせてもらえると言っているの?
>>492
> format の辺りなど色々な部分が elisp と違っていて微妙だった。
底が浅いなー。 format なんてほとんど表面上のみの違いでしょ。
そんな関数1つより、もっと言語の中を突つかなきゃ。
0495デフォルトの名無しさん
2010/05/09(日) 13:14:50例えば C を書く時と elisp を書く時では自分の中で切り替えが上手く出来るが、
elisp と Common Lisp ではどうしても似た気分で書いてしまう。
それゆえに細かなところが違っていると、ストレスになる。
まあ、書いていて思ったがこれは自分の問題だな。
0496デフォルトの名無しさん
2010/05/09(日) 14:05:27Paul Graham の「普通のやつらの上を行け」で Lisp を業務に使った話になぞらえたんだけど・・・
0497Zeno ◆5nZQbNmQPs
2010/05/09(日) 14:22:14まあ Haskell はプロジェクトには使わせてもらえんだろうな。
VCS で管理もされない個人用のツール程度だったら自由に Haskell を使っても問題はない。
というより、その用途であれば何の言語を使っても良い。
0498デフォルトの名無しさん
2010/05/09(日) 14:59:12あと自社製品とかWebサービスみたいなのだったらHaskell使ったって良いとは思うけど。
請負いで納品するようなのだと運用・保守がかわいそうだなぁ。
0499デフォルトの名無しさん
2010/05/09(日) 16:58:280500デフォルトの名無しさん
2010/05/09(日) 17:08:09状況じゃないと雇われの身としては主流以外の言語使えないよな。
0501デフォルトの名無しさん
2010/05/09(日) 17:19:30客観的に説明出来るなら良いんだけど、実際業務アプリ作るとかの場合
C#とかJavaあたりで書いた方が楽なんだよねえ。
0502デフォルトの名無しさん
2010/05/10(月) 01:13:14フレームワークに従った方がうまくいく領域なら自由すぎる Lisp 系言語はかえってつらいってのはわかる。
Lisp が DSL 構築できるったって、わざわざ構築せずに済む言語環境があるならそっち使った方がそりゃ楽だ。
それはそれでいいんじゃないの。
ものごとはトレードオフだ。 Lisp がある条件で活躍するためには切り捨てざるを得なかったものだってあるだろうさ。
0503デフォルトの名無しさん
2010/05/10(月) 06:50:40並列化しやすいからスケールアウト時のコストが低いですよ!ぐらいなのかなぁ。
0504デフォルトの名無しさん
2010/05/10(月) 07:28:42すでに並列化されてるんだよね。
リクエストごとにスレッド割り当ててるから。
リクエスト内部の処理を別スレッドにぶった切ったからといって
そこまで早くなるとは考えづらい気がする。
0505デフォルトの名無しさん
2010/05/10(月) 23:27:250506デフォルトの名無しさん
2010/05/30(日) 02:05:04見やすさのためにEmacsにcsharp-modeというのを取り入れようとしていますがうまくいきません
取りあえずsite_lispに拾いもののcsharp-mode.elを入れホームディレクトリで.emacsの設定を軽く追加しました
Emacsを--debug-initから.csファイルを開くと以下のように出ます。
Debugger entered--Lisp error: (file-error "Cannot open load file" "csharp-mode")
require(csharp-mode)
eval-buffer(#<buffer *load*> nil "/Users/host名/.emacs" nil t) ; Reading at buffer position 13
load-with-code-conversion("/Users/host名/.emacs" t t)
load("-/.emacs" t t)
#[nil "・・・・$
command-line()
normal-top-level()
.csファイルを新規に作成してもcsharp-modeに認識されずに通常のmodeで開いてしまいます
解決法などご教授頂けたら幸いです
0507デフォルトの名無しさん
2010/05/31(月) 06:30:05そのエラーメッセージが全てだと思うんだけど。
Cannot open load fileって書いてあるじゃない。
ちゃんとsite-lispにファイルはあるの?
あと、こういう場合に一番大事な、
* どう「入れ」たのか
* どのような「設定を軽く追加」したのか
といったことを全略されると、まともな回答貰いづらいよ。
ついでに言えば、多分スレ違い。
0508デフォルトの名無しさん
2010/06/04(金) 17:52:110509デフォルトの名無しさん
2010/06/05(土) 15:35:50(lexical-let (x) (mapatoms (lambda (y) (push y x))) x)
0510デフォルトの名無しさん
2010/06/05(土) 16:26:24(append obarray nil)
0511デフォルトの名無しさん
2010/06/05(土) 16:56:24そう、それどぁ。
elisp manual読んでぃて便利だと思ってとぉあ。
アリャガトネ
0512デフォルトの名無しさん
2010/06/24(木) 21:31:27内容がemacs自体とは関係なくなってきたような気がしたのでここで質問します。
2バイト文字のあとに1バイト文字が来たらそこを単語の区切りにしたいのですが、
どうしたらいいのでしょうか?
何をword-separating-categoriesに入れていいものかわかりません。
category-tableを使えばいいのはわかったのですが、
2バイト文字すべてを要素に持つようなcategory-tableの作り方がわかりません
どうにかヒントだけでも教えていただければと思います。
0513デフォルトの名無しさん
2010/06/24(木) 21:50:42(re-search-forward "\\cj")
0514デフォルトの名無しさん
2010/06/24(木) 22:26:08(add-to-list 'word-separating-categories (cons ?j ?a))
でよかったのか。
ありがとうございます。
が、駄目orz
auto-completeはsyntaxがwordの文字が並んでるとすべてcompletionの餌にするのかー、、、
どこでその処理やってるのかわかんない…
全角のあとに半角が着たら半角だけ餌にしたいんだけどなー
もうちょっとがんばってみます。
>>513
なんというか申し訳なかったです
ありがとうございました
0515デフォルトの名無しさん
2010/07/05(月) 23:16:10--
国産LISPマシンELISの設計者である、JAIST副学長日比野先生が、この夏、ELISの復活祭を企画されています。
復活祭には、竹内先生をはじめ、TAO/ELISに関わった方々に多数ご講演いただきます。
会場が石川県とちょっと遠いですが、小旅行気分で、ぜひぜひ多くのLISPファンのみなさまにご参加いただきたいと思います。(yshigeru)
日時:8/7(土)〜8/9(月)
場所:JAIST(石川県美濃市)
詳細と参加申し込みは、ELIS復活祭ページをご参照下さい
http://www.jaist.ac.jp/elis-revival/home.html
0516デフォルトの名無しさん
2010/07/05(月) 23:59:54skkじゃだめ?誤入力を考えるとskkちょー便利だと思うけど。
0517デフォルトの名無しさん
2010/07/06(火) 19:01:35引数を1以上にして M-x で動作させるとエラーになってしまいます。
デバッガー?を使ってもいかんせんよくわかりません
sentence-endを評価した値が nil なのが原因?
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
re-search-forward(nil 592 t)
(if (re-search-forward sentence-end par-end t) (skip-chars-backward " \n") (goto-char par-end))
(let ((par-end ...)) (if (re-search-forward sentence-end par-end t) (skip-chars-backward " \n") (goto-char par-end)))
(while (> arg 0) (let (...) (if ... ... ...)) (setq arg (1- arg)))
forward-sentence1(1)
call-interactively(forward-sentence1 t nil)
execute-extended-command(1)
call-interactively(execute-extended-command nil nil)
追記:M-eはきちんと動作しています
0518デフォルトの名無しさん
2010/07/06(火) 19:53:09skkも考えたんですが、そもそもこれ作ろうと思った発端は、
入力方式の切換えが面倒だった事なのですよ。
須く日本語入力ソフトは切換えが必要なので、
どうにか良い方法はないかと思って辿り着いたのがauto-completeなんです。
自動的に候補が出る形です。
取り敢えず一応完成させました。
入力方式の切換えが必要無いのは便利ですね。
日本語と英語の入り乱れたリストとか
テンプレートがあってそれを編集するような場合は使える気がします。
あと、skk だと日本語と英語で配列が違う場合設定が面倒だっていうのもあります。
今打っているのもそれなのですが、これなら配列が違う方が良いというか、むしろ同じだと駄目というか。
0519デフォルトの名無しさん
2010/07/07(水) 00:08:38re-search-forwardの第一引数にnilが渡ってるのが原因だと思う。
想像の通り、sentence-endがnilだから。本来、正規表現を文字列で渡す所。
(wrong-type-argument stringp nil)
(間違った型の引数 文字列かどうかを判別する関数 nil)
って意味。その下にずらずら出てるのは、バックトレース。
どこから呼ばれたコードがエラーになったのか、それで判断できる。
下に行くほど上位の関数。forward-sentence1とかも出てるでしょ?
0520デフォルトの名無しさん
2010/07/07(水) 00:39:47sentence-end を参照している部分は (sentence-end) に変えてください。
sentence-end はnilでデフォルト値を使うことを意味するようになったので、
正規表現そのものが欲しい場合は関数sentence-endを使うようになりました。
C-h v sentence-end とすれば説明の中に次の記述があります。
> The value nil means to use the default value defined by the
> function `sentence-end'. You should always use this function
> to obtain the value of this variable.
0521デフォルトの名無しさん
2010/07/07(水) 00:48:24ちゃんと反映されているようなので↓は取り消します。
> Emacs Lisp プログラミング入門のその部分が変化に追いついてないみたい。
なんかおかしいなと思ったらお使いのEmacsのバージョンにあったものを
参照してくださいってことで。
0522デフォルトの名無しさん
2010/07/07(水) 20:31:34特に Google IME・・・
0523517
2010/07/07(水) 20:58:59ちゃんとヘルプ読んでるつもりだったんですが全然できてなかったみたいで・・・
今後はちゃんと読みまくるよう頑張って先に進んでいきます。
レスくださった方々ありがとうございました
0524名無しさん@そうだ選挙に行こう
2010/07/11(日) 02:17:01kill-read-only-ok がnilの場合はキルできないと書いてあるはずなんだが
変数がどうあれC-kで行コピーができるような気がするんだが…
俺の解釈が間違ってるのか?
0525名無しさん@そうだ選挙に行こう
2010/07/11(日) 04:38:330526名無しさん@そうだ選挙に行こう
2010/07/11(日) 23:05:07つまりコピーできるのは間違ってないのね…
0527デフォルトの名無しさん
2010/09/13(月) 23:29:260528デフォルトの名無しさん
2010/09/14(火) 07:19:590529デフォルトの名無しさん
2010/09/14(火) 08:57:42SuoerASCIIの連載
ttp://www.asahi-net.or.jp/~dp8t-asm/elisp/
ttp://e-arrows.sakura.ne.jp/2010/02/vim-to-emacs.html
ttp://www.google.co.jp/search?hl=ja&q=lisp+emacs
0530527
2010/09/15(水) 04:43:420531デフォルトの名無しさん
2010/09/25(土) 23:48:03どうすれば、文字化けしないように出来ますか?
0532デフォルトの名無しさん
2010/10/09(土) 06:16:18数値を増やす以外で上手い解決策ってないのかね。
0533デフォルトの名無しさん
2010/10/09(土) 14:59:130534デフォルトの名無しさん
2010/10/11(月) 02:44:25文句を言われるのはdefadviceなんでそれを使うなってことになるのか。。
0535Zeno ◆5nZQbNmQPs
2010/10/16(土) 17:02:04>>534
やり方はいろいろあるが、
(setq debug-on-quit t)
にして、問題のsexpを実行しろ。
途中で \C-g を押せば問題箇所までのトレースができる。
それでわからなければdefadvice中で使用されるであろう自分で関数を調べろ。
debug-on-error で関数本体をデバッグすることも可能だ。
0536デフォルトの名無しさん
2010/10/21(木) 09:33:40見つからなかったとき普通のdiredコマンド開きたいけど(dired nil)だとミニバッファで止まらない。
インタラクティブなコマンドはどう呼べばいいのでしょう?
0537デフォルトの名無しさん
2010/10/21(木) 10:05:30あ、自分で書いた日本語が答えになってたw
インタラクティブに呼ぶつう関数みつけた。落ち着け、おれwww
0538デフォルトの名無しさん
2010/11/12(金) 12:10:30例えば (foo 12345) => '(1 2 3 4 5) みたいな。
0539デフォルトの名無しさん
2010/11/12(金) 18:24:5812345を1234と5に分ける、
1234を123と4に分ける、
……ってやれば作れるよ。
っていうのでは意味がないんでしょうか。
(defun nat-to-list (n &optional lst)
(cond ((< n 1) lst)
(t (nat-to-list (/ n 10) (cons (mod n 10) lst)))))
(require 'cl)
(defun nat-to-list-2 (n0)
(do ((n n0 (/ n 10))
(lst nil (cons (mod n 10) lst)))
((< n 1) lst)))
ふだんLispを使わないので変なところあったら教えてほしかったりする。
0540デフォルトの名無しさん
2010/11/12(金) 18:39:26ELISP> (mapcar (lambda (c) (- c 48)) (string-to-list (format "%d" 12345)))
(1 2 3 4 5)
0541デフォルトの名無しさん
2010/11/12(金) 18:45:12(mapcar #'(lambda (c)
(string-to-number (char-to-string c)))
(append (format "%d" 12345) nil))
;=> (1 2 3 4 5)
0542デフォルトの名無しさん
2010/11/12(金) 18:52:01>>539 <= >>540 < >>541
← 速い 遅い →
でした。ありがとうございました。
0543デフォルトの名無しさん
2010/11/12(金) 19:16:40(mapcar (lambda (c) (- c ?0)) (number-to-string 12345))
=> (1 2 3 4 5)
0544デフォルトの名無しさん
2010/11/12(金) 19:33:18(mapcar #'identity "hello")
=> (104 101 108 108 111)
0545デフォルトの名無しさん
2010/11/12(金) 20:26:530546デフォルトの名無しさん
2010/11/16(火) 00:00:50スレチ気味だがCommon Lispではmapcar関数はリストのみ扱えるはず
文字列を引数に与えるのはおススメできない(互換性的な意味で)
0547デフォルトの名無しさん
2010/11/16(火) 10:08:39...馬鹿馬鹿しい。
0548デフォルトの名無しさん
2010/11/16(火) 14:58:23注意はした方がいいけど、使わない方がいいとまでは言えないかな。
Emacs Lispとかじゃなくてもっと新しい言語なら「将来使えなくなるかも」みたいな
見方もあるかもしれないけどw
0549デフォルトの名無しさん
2010/11/22(月) 20:30:590550デフォルトの名無しさん
2010/11/23(火) 07:19:49(add-to-list 'element 3))
;;=> (3 . 3)w
◇ ミ ◇
◇◇ / ̄| ◇◇
◇◇ \ |__| ◇◇
彡 O(,,゚Д゚) /
( P `O
/彡#_|ミ\
</」_|凵_ゝ
【ラッキーAA】
このAAを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0551デフォルトの名無しさん
2010/12/17(金) 23:45:59これ、解決策が思いつかないw
仮引数に使われる記号が隠されちゃうっていう
0552デフォルトの名無しさん
2010/12/18(土) 02:06:05本来マクロで書くべきものだと思う。
0553デフォルトの名無しさん
2010/12/19(日) 03:27:54引数を一度しか評価しないという点を守ると……
0554デフォルトの名無しさん
2010/12/19(日) 03:38:440555デフォルトの名無しさん
2010/12/19(日) 11:41:180556デフォルトの名無しさん
2010/12/20(月) 12:35:060557デフォルトの名無しさん
2010/12/20(月) 12:57:000558デフォルトの名無しさん
2010/12/20(月) 13:41:380559デフォルトの名無しさん
2010/12/20(月) 13:45:460560デフォルトの名無しさん
2010/12/20(月) 14:08:21(setq ipython-command "/some-path/ipython")
(require 'ipython)
のsome-pathはどのように指定すればいいのでしょうか?
0561デフォルトの名無しさん
2010/12/20(月) 14:37:140562デフォルトの名無しさん
2010/12/20(月) 15:10:10(setq ipython-command "C:/Python26/Scripts/ipython")
(require 'ipython)
と.emacsに書いてemacs起動してM-x py-shellと打ってみたら
Process Python exited abnormally with code 1
と出てうまくいきません...
0563デフォルトの名無しさん
2010/12/20(月) 15:26:220564デフォルトの名無しさん
2010/12/20(月) 15:32:29(setq ipython-command "C:/Python26/python.exe C:/Python26/Scripts/ipython")
これでやってみたんですが、普通のpythonシェルが起動しました...
0565デフォルトの名無しさん
2010/12/20(月) 15:53:330566デフォルトの名無しさん
2010/12/20(月) 16:35:110567デフォルトの名無しさん
2010/12/20(月) 19:08:540568デフォルトの名無しさん
2010/12/20(月) 21:07:23死を
# kill -9 1
0569デフォルトの名無しさん
2011/01/07(金) 10:37:11http://d.hatena.ne.jp/rubikitch/20110106/elispenq
だってサ
0570デフォルトの名無しさん
2011/01/13(木) 01:25:32この年にこういうことがあったとか
0571デフォルトの名無しさん
2011/01/13(木) 02:13:240572デフォルトの名無しさん
2011/01/13(木) 09:08:150573デフォルトの名無しさん
2011/01/13(木) 11:25:21一番の思い出は uucp 経由で fj.sources に、Emacs 日本語化パッチα版が流れたときだったな。
まだまだHDDは高価で、テープもぽつぽつ残っていた。
その次が Emacs 20.2 から 20.3 のバージョンアップ。
(length "漢") が、3から1になった。あれで劇的にプログラムが作り易くなった。
あのとき議論(flame)の中心だった Erik Naggum 氏もとっくに鬼籍に入られて...
0574デフォルトの名無しさん
2011/01/13(木) 12:43:310575デフォルトの名無しさん
2011/01/13(木) 15:52:26テープ回覧させてもらった覚えがある
0576デフォルトの名無しさん
2011/01/13(木) 18:40:250577デフォルトの名無しさん
2011/01/14(金) 03:16:020578デフォルトの名無しさん
2011/01/15(土) 02:54:04uucpすらできない貧乏機関は FSF に頼めばEmacsのソースコードを実費で
磁気テープに入れて送ってもらえた。
そういう時代だった。
0579デフォルトの名無しさん
2011/01/15(土) 21:10:290580デフォルトの名無しさん
2011/01/15(土) 22:05:29とか、いいながらfjの回覧テープのコピーが会社の倉庫に残ってるような記憶が…
0581デフォルトの名無しさん
2011/01/15(土) 23:36:56代々「大切に保管汁」と申し送りされてるのな
0582デフォルトの名無しさん
2011/01/16(日) 13:40:350583デフォルトの名無しさん
2011/01/16(日) 14:23:540584デフォルトの名無しさん
2011/01/17(月) 03:20:010585デフォルトの名無しさん
2011/02/01(火) 05:38:56ぐぐったら上の方に出てくるのはあるんだけどなんか高々移動幅変えるのに
あんな大層な設定がいるのか疑問に思い質問しました。もし他に
簡潔な設定がありましたら教えていただきたいです。
0586デフォルトの名無しさん
2011/02/02(水) 01:02:03私は 3 にしてる。
(define-key global-map (kbd "<mouse-4>") (lambda () (interactive) (scroll-down 3)))
(define-key global-map (kbd "<mouse-5>") (lambda () (interactive) (scroll-up 3)))
0587デフォルトの名無しさん
2011/02/14(月) 12:23:35lookupで、4GBを超えるHONMONファイルを扱うことは可能でしょうか?
今、lookup 1.99.95を使用しているのですが、Wikipediaデータをダンプして
作成したHONMONファイル(9GB強)が認識されません。
アドバイスいただけると嬉しいです。
0588587
2011/02/14(月) 13:10:47eblookをver 1.4から1.6.1にアップデートしたところ、問題なく検索できました。
ご迷惑おかけいたしました。
0589デフォルトの名無しさん
2011/02/24(木) 04:16:35.85guile をインスコするより emacs をインスコする方が簡単なのがアレだけど・・・
0590デフォルトの名無しさん
2011/04/18(月) 00:42:13.95http://dantorop.info/project/emacs-animation/
elisp で文字ベースの簡単なアニメーションを実装するという内容で、
初心者レベルの人に良いかも。
0591デフォルトの名無しさん
2011/04/21(木) 11:29:01.15http://d.hatena.ne.jp/kiwanami/20110420/1303319508
新機軸だな。どんどん盛り上げるんだ。
0592デフォルトの名無しさん
2011/04/30(土) 09:08:17.96例
(foo "abaca" "a")
=> 3
みたいな。m/(_ _)\m
0593デフォルトの名無しさん
2011/04/30(土) 09:39:12.00ソースを見ると簡単に数える関数は無いみたいだね。
0594デフォルトの名無しさん
2011/04/30(土) 09:43:18.590595デフォルトの名無しさん
2011/04/30(土) 12:39:36.14これは?
(defun how-many-regexp-in-str (str regexp)
(with-temp-buffer
(insert str)
(goto-char (point-min))
(how-many regexp)))
(how-many-regexp-in-str "abaca" "a")
3
0596デフォルトの名無しさん
2011/05/04(水) 00:20:16.200597デフォルトの名無しさん
2011/05/04(水) 08:07:25.26(count ?a "abaca")
=> 3
0598デフォルトの名無しさん
2011/05/05(木) 13:48:55.61♪ | ノ ⌒ ⌒ヽハッ __ _,, -ー ,, ハッ / ⌒ ⌒ 丶|
/ (●) (●) ハッ (/ "つ`..,: ハッ (●) (●) 丶
| ( _●_) ミ :/ :::::i:. ミ (_●_ ) |
___ 彡 |∪| ミ :i ─::!,, ミ、 |∪| 、彡____
ヽ___ ヽノ、`\ ヽ.....::::::::: ::::ij(_::● / ヽノ ___/
/ /ヽ < r " .r ミノ~. 〉 /\ 丶
/ /  ̄ :|::| ::::| :::i ゚。  ̄♪ \ 丶
/ / ♪ :|::| ::::| :::|: \ 丶
(_ ⌒丶... :` | ::::| :::|_: /⌒_)
| /ヽ }. :.,' ::( :::} } ヘ /
し )). ::i `.-‐" J´((
ソ トントン ソ トントン
0599デフォルトの名無しさん
2011/06/07(火) 22:36:45.000600デフォルトの名無しさん
2011/06/08(水) 01:26:54.90これで bzr の遅さに悩まされずに済む
https://github.com/emacsmirror/emacs
0601デフォルトの名無しさん
2011/06/17(金) 09:28:23.62リージョンの各行を引数としたコマンドを実行するプログラムを書いたんですが
動的に行数がかわるためeolpで判定してみたものの
空行があるとそこでとまってしまいます
(defun mapr (b e f)
(save-excursion
(save-restriction
(narrow-to-region b e)
(goto-char (point-min))
(while (not (eolp))
(let* ((end (progn (end-of-line) (point)))
(start (progn (beginning-of-line) (point)))
)
(if (not (= start end)) (funcall f start end))
(forward-line 1))))))
(defun mapl (b e str) ""
(interactive "r\nsInputShellCommand:")
(mapr b e `(lambda (b e)
(narrow-to-region b e)
(let* ((text (buffer-string))
(command (concat str " " text))
)
(call-process-region b e "/bin/bash" t t t "-c" command)))))
利用例:範囲選択して、M-x maplしてlsと打つ
/home
/usr
0602デフォルトの名無しさん
2011/06/17(金) 09:48:23.44(= (point) (progn (forward-char) (point)))
0603デフォルトの名無しさん
2011/06/17(金) 10:16:31.90eolp の代わりに、eobp を使ったらどう?
0604デフォルトの名無しさん
2011/06/17(金) 11:22:54.980605デフォルトの名無しさん
2011/06/18(土) 02:36:28.49ありがとう、後で試してみます
ところで、全然関係ないけど、Ctrl+hをBSに割り当ててたせいで
C-h a/C-h v/C-h f等便利なキーが使えなかったことに最近気づきました
Webによく落ちてる色んな.emacsに長らく騙されてきた気がする
0606デフォルトの名無しさん
2011/06/18(土) 03:47:54.530607603
2011/06/18(土) 05:25:24.46(tty-run-terminal-initialization (selected-frame) "bobcat")
(define-key mode-specific-map (kbd "h") 'help-command)
(define-key help-map (kbd "<DEL>") 'help-for-help)
自分はこれで、C-c h に help を設定してる。
0608デフォルトの名無しさん
2011/06/19(日) 01:34:27.81DeleteとC-hを交換したら、元々C-hと打ちたい時にはDeleteを打てばいい。
0609デフォルトの名無しさん
2011/06/19(日) 13:03:07.10eobpで動きました、ありがとう
設定参考になります。
皆それぞれのやり方ですね
0610デフォルトの名無しさん
2011/06/19(日) 22:58:16.080611デフォルトの名無しさん
2011/06/19(日) 23:16:56.09ネットはそこまで闇じゃなくて、目を開けば色々あると思うけどw、
初期段階でうっかり「本来の情報の流れ」からはぐれるっていうのはありがちだと思う。
ttp://kamuy.c.u-tokyo.ac.jp/~tnakae/c/emacs.html
> この時ヘルプが使えなくなるので、C-x h でヘルプを開くように変更するとかしておく。
0612デフォルトの名無しさん
2011/06/20(月) 01:43:46.71伝統的に多くの人がやってる割り当てなのは事実。
Windows だと f1 が C-h のかわりに使えるけど、
これって他の環境では違ったりすんの?
0613デフォルトの名無しさん
2011/06/20(月) 02:04:26.93初めて知った...
0614デフォルトの名無しさん
2011/06/20(月) 02:53:15.09古いマニュアルを漁ってみた。19.28から19.30の間に説明が加わっていた。
ttp://www.ps.uni-saarland.de/courses/info-i/emacs/emacs_11.html
> To cancel, type C-g.
ttp://www.math.utah.edu/docs/info/emacs_11.html
> To cancel, type C-g. The function key F1 is equivalent to C-h.
0615デフォルトの名無しさん
2011/06/20(月) 03:08:22.06Emacs 19.28 and 19.29 Antinews
ttp://www.chemie.fu-berlin.de/chemnet/use/info/emacs/emacs_37.html
> # F1 is no longer an alias for the Help key; you must actually type C-h if you want help.
0616デフォルトの名無しさん
2011/06/20(月) 10:55:19.13同様の設定FAQはずっと前からある。
0617デフォルトの名無しさん
2011/06/20(月) 20:25:22.91文書化の微妙な食い違い
0618デフォルトの名無しさん
2011/06/21(火) 11:32:12.0319.28→19.30の変更が(逆向きの表現で)書かれてるんでしょ。
だから食い違いはない。Antinewsの方が大雑把なだけ。
0619デフォルトの名無しさん
2011/06/21(火) 20:24:05.49アウトかと言えばアウトかと。
0620デフォルトの名無しさん
2011/06/21(火) 20:27:50.420621デフォルトの名無しさん
2011/07/01(金) 21:44:45.65単に;が入力されるだけだったでござる
0622デフォルトの名無しさん
2011/07/01(金) 22:16:05.35ターミナルでC-,やC-.に割り当てたい - (ひ)メモ
ttp://d.hatena.ne.jp/hirose31/20040219/1160403206
0623デフォルトの名無しさん
2011/07/08(金) 14:31:58.68メジャーバージョンアップなみに変更あったはず
19.29 から 19.30 はそれほどではないはず
なので 19.28->19.29 の差分だろうという感じはする
0624デフォルトの名無しさん
2011/07/17(日) 23:57:28.33https://github.com/nicferrier/elnode
http://emacswiki.org/wiki/Elnode
0625デフォルトの名無しさん
2011/08/11(木) 17:57:17.391. 現在リージョンの選択中であるか否かの判別はどのようにすればよいのでしょうか?
2. Shift-クリックでカーソル位置からクリック位置までの選択を行いたいのですが、どのようにすればよいのでしょうか?
よろしくお願い致します。
0626625
2011/08/11(木) 22:46:27.240627625
2011/08/12(金) 03:38:36.76ありがとうございました。
0628デフォルトの名無しさん
2011/08/15(月) 03:21:35.561. Emacs Lispにはlabels相当の命令はありますか?
2. (require 'cl)をちょっとぐぐったところ Emacs 付属lispには使うな的な事が書いてあって賛否両論で云々〜
とあったのですが、これはなんででしょう?
以上よろしくです。
0629デフォルトの名無しさん
2011/08/15(月) 04:12:40.771. あります。
2. ググった先で喧々諤々やってたでしょうに。
簡単に説明すると、Emacs LispはCのように、名前空間がひとつしかないのです。
そのため、ライブラリの関数などには接頭辞を付けるのがマナーになっています。
(fooというライブラリなら、foo-funcみたいな名前を付けます)
ですが、clライブラリではCommon Lispの関数やマクロと名前を合わせるため、
その接頭辞を付けていません。そのため、(require 'cl)でライブラリを読み込むと、
一般的な名前のマクロや関数が大量に定義され、それらの名前が使われることで、
プログラマが好きに付けられる名前が減ってしまいます。これを許せない人と、
許容して便利さを採る人がいて、議論の争点になります。
こういう構図です。理解できなかったら勉強するとじきに分かるようになると思います。
自分で書いたプログラムを配布するのでもなければ、気にすることはありません。
0630デフォルトの名無しさん
2011/08/15(月) 04:18:01.74Emacsに付属のclライブラリで提供されています。
0631628
2011/08/15(月) 05:50:20.73> 簡単に説明すると、Emacs LispはCのように、名前空間がひとつしかないのです。
> そのため、ライブラリの関数などには接頭辞を付けるのがマナーになっています。
> (fooというライブラリなら、foo-funcみたいな名前を付けます)
>
> ですが、clライブラリではCommon Lispの関数やマクロと名前を合わせるため、
> その接頭辞を付けていません。そのため、(require 'cl)でライブラリを読み込むと、
> 一般的な名前のマクロや関数が大量に定義され、それらの名前が使われることで、
> プログラマが好きに付けられる名前が減ってしまいます。これを許せない人と、
> 許容して便利さを採る人がいて、議論の争点になります。
めっちゃ的確な解説ありがとう。
グローバルな名前空間汚すな云々ってことだったのですね。
C/C++使ってるので解説はとてもわかりやすかったです。
>補足。正確に言うと、labelsは標準の機能としては提供されていませんが、
>Emacsに付属のclライブラリで提供されています。
はい、こちらは(require 'cl)後にlabelsが使えることは確認してますー。
なのでclを使わない別の方法が標準で提供されてるのかな?とおもってますた。
0632デフォルトの名無しさん
2011/08/15(月) 09:21:43.98バイトコンパイルすると実行時にはclを必要としない(ものが多い)ので、
そういうのは使っても問題ない。labelsもその一つ。
それを前提とした使い方の場合は
(eval-when-compile (require 'cl))
とする。こういう使い方はEmacs標準のelispでも多用されている。
0633デフォルトの名無しさん
2011/08/21(日) 15:08:17.600634デフォルトの名無しさん
2011/08/22(月) 06:51:10.47(= (point-at-bol) (point-min)) ; ポイントがバッファ表示の最初の行にあるか?
(= (point-at-eol) (point-max)) ; ポイントがバッファ表示の最後の行にあるか?
バッファの可視領域が制限(ナローイング)されている場合、上記はその制
限された「見た目上の」先頭行・最終行を判定します。
ナローイングの有無に関らず「実際の」先頭行・最終行を判定したい場合
は次のようにします:
(= (point-at-bol) 1)) ; ポイントが実際のバッファ内容の最初の行にあるか?
(= (point-at-eol) (1+ (buffer-size))) ; ポイントが実際のバッファ内容の最後の行にあるか?
0635デフォルトの名無しさん
2011/09/02(金) 02:44:23.27buffer-file-nameがnilでなければ"a"を、nil だったら"b"を表示したくて
(setq frame-title-format '(if buffer-file-name "a" "b"))
のようにしてみたのですが、条件の判別がうまくいかないようです。
どうしたらうまくいきますか?
お願いします。
0636デフォルトの名無しさん
2011/09/02(金) 03:43:53.94なんかこうこんな感じだったはず
確かめてないけど
0637デフォルトの名無しさん
2011/09/02(金) 13:09:06.78ありがとうございます。
助かりました。
0638デフォルトの名無しさん
2011/09/05(月) 01:50:01.80この本は自腹で買わないと身に入らないだろw
0639デフォルトの名無しさん
2011/09/05(月) 01:51:01.390640デフォルトの名無しさん
2011/09/05(月) 19:17:46.570641デフォルトの名無しさん
2011/09/24(土) 12:19:32.59(setq tab-width 8) とするとタブ幅が半角16文字分になり、
これを8文字分にするには (setq tab-width 4) としなければなりません。
何故でしょうか?
よろしくお願いします。
0642デフォルトの名無しさん
2011/09/25(日) 03:04:50.10とりあえず C-h v (describe-variableだっけ?) あたりで、ちゃんと8になってるか見てみれば?
0643デフォルトの名無しさん
2011/09/25(日) 20:26:08.46ありがとうございます。
確認してみましたが、設定した通りになっているようです。
しかし実際のタブ幅はその値の2倍になってしまっています。
0644デフォルトの名無しさん
2011/09/25(日) 23:38:16.250645デフォルトの名無しさん
2011/09/26(月) 01:51:59.22たぶんこれと同じ現象では。
■Emacs23のフレーム幅が変、■Emacs23のフレーム幅が直った
http://garakuta.homelinux.org/~nosuke/diary/diary.html?y=2008&m=10&d=15&n=1
0646デフォルトの名無しさん
2011/10/07(金) 15:26:12.43(eq "abc" "abc")は何故nilなんでしょうか。
0647SCHEME餃子 ◆8X2XSCHEME
2011/10/07(金) 20:12:16.62シンボルは登場と同時にシンボルテーブルに登録 (intern) されるので字面が同じシンボルは常に同一と判定される。
0648デフォルトの名無しさん
2011/10/07(金) 23:38:19.22とてもわかりやすい説明ありがとうございます。
0649名無しさん@お腹いっぱい。
2011/10/10(月) 09:48:28.47(let ((s "\241"))
(list (string-match "[[:ascii:]]" s)
(string-match "[[:nonascii:]]" s)
(string-match "[[:unibyte:]]" s)
(string-match "[[:multibyte:]]" s)
(string-match "[[:print:]]" s)
(string-match "[[:punct:]]" s)
(string-match "[[:graph:]]" s)
(string-match "[[:word:]]" s)))
(nil nil nil nil nil nil nil nil)
0650デフォルトの名無しさん
2011/10/21(金) 05:00:14.950651デフォルトの名無しさん
2011/10/21(金) 11:59:34.580652デフォルトの名無しさん
2011/10/29(土) 12:40:09.17Stanford Engineering はコンピューターサイエンティストで A.I. 分野の草分け的存在だった
John McCarthy 博士が2011年10月24日、同氏のカリフォルニア州スタンフォードの自宅で
亡くなったと伝えた。84歳だった。
McCarthy 博士が世間の注目を集めたのは、1966年にロシア国内のライバルと
コンピューターチェスの対戦を主催したときのことだった。4試合同時に行われたこの
対戦は数か 月に及び、結果は McCarthy 博士側の2敗2引き分け。McCarthy 博士は後に
「完敗だった」と語っていた。
McCarthy 博士は、21世紀を迎えた現在やっと現実のものとなりつつある「人工知能
(Artificail Inteligence:A.I.)」という概念を50年以上も前から唱えていた A.I. 界の巨人。
同氏は1956年に英国の Dartmouth 大学で開催された人工知能に関する会議「ダートマス
会議」に提案書を提出し、「A.I.」という言葉をその提案書の中で歴史上初めて使用した。
1958年、McCarthy 博士はコンピューター言語 LISP を開発。これは、FORTRAN に次いで
2番目に古いプログラミング言語で、A.I. プログラムを記述する言語として現在も使用されている。
また、あまり知られていないことだが、「ガーベージコレクション(ゴミ収集)」と呼ばれる
技術を開発したのも McCarthy 博士。これは、プログラムが予約したメモリ領域のうち不要に
なった領域を自動解放する技術で、LISP 言語の機能強化の一環として開発された。。
1960年代の初頭には、McCarthy 博士はタイムシェアリングによるコンピューターの効率的な
利用というコンセプトをすでに発表しており、このコンセプトはその後の分散処理やクラウドへと
発展するコンピューティング技術の基礎となった。
0653デフォルトの名無しさん
2011/10/29(土) 12:40:35.53「多くの人々が、タイムシェアリングがコンピューターを使う賢い方法だということはわかって
いた。だが、どうすれば実現できるかについては、誰もわからなかった。John 以外は誰も」
氏の告別式は、近く執り行われる。
▽記事引用元 japan.internet.com
http://japan.internet.com/webtech/20111026/2.html
▽画像 John McCarthy 博士(Stanford Engineering)
http://japan.internet.com/img/20111026/1319617220.jpg
▽博士のホームページ
http://www-formal.stanford.edu/jmc/index.html
0654デフォルトの名無しさん
2011/10/29(土) 12:41:55.610655デフォルトの名無しさん
2011/11/15(火) 21:19:57.61http://gihyo.jp/book/2011/978-4-7741-4897-7
0656デフォルトの名無しさん
2011/11/17(木) 01:25:33.82単に「Emacs Lisp」と呼ぶ習慣はそろそろみんなに考え直してもらいたい
0657デフォルトの名無しさん
2011/11/17(木) 02:05:26.45なんて言えばいいの?
0658デフォルトの名無しさん
2011/11/17(木) 07:44:35.83小文字で書けばいいのかと問いたい
0659デフォルトの名無しさん
2011/11/18(金) 01:25:37.08「elispアプリ」とか「elispライブラリ」とか言えっての?
0660デフォルトの名無しさん
2011/11/18(金) 01:43:40.58概念的に近いのはブラウザの拡張とかかなぁ。
歴史的経緯を無視するならエクステンションとかプラグインとか呼ぶのが妥当だと思う。
使われている言語が Emacs Lisp なのは、
たまたま Emacs がそういうものだという実装に立ち入る話なので、
ユーザーに見せるべき筋合いのもではない。
0661デフォルトの名無しさん
2011/11/18(金) 02:28:09.290662デフォルトの名無しさん
2011/11/18(金) 03:01:18.580663デフォルトの名無しさん
2011/11/18(金) 04:49:59.57> 使われている言語が Emacs Lisp なのは、
> たまたま Emacs がそういうものだという実装に立ち入る話なので、
> ユーザーに見せるべき筋合いのもではない。
むしろユーザーが容易にみれる、弄れる、スクリプトを組めるという仕様で人をスクリーニング
しているのがemacsの良さなんじゃないの。Firefoxのエクステンション的使い方で敷居は低い
けど、emacs lispの書き方を覚えたら自分の使いやすいように弄りたいという野心がユーザーの
大多数の中にあるんじゃないかな。
自分はそういう野心を持ってFirefoxを使っていないなあ。
0664デフォルトの名無しさん
2011/11/18(金) 20:57:58.95お手軽で重宝してる
0665デフォルトの名無しさん
2011/11/18(金) 21:19:58.90一票。
0666デフォルトの名無しさん
2011/11/18(金) 22:43:03.03elispプログラムかパッケージで
0667デフォルトの名無しさん
2011/11/18(金) 22:53:56.79明確な機構で管理されてないこととも多少関係あるかも
0668デフォルトの名無しさん
2011/11/18(金) 23:01:29.59ちょっと混乱した
0669デフォルトの名無しさん
2011/11/18(金) 23:17:32.81その中核となるファイル群の集合を指して library
その集合の中の .el ファイルそれぞれが program
とかそんな感じでは
0670デフォルトの名無しさん
2011/11/20(日) 03:07:27.200671デフォルトの名無しさん
2011/11/21(月) 02:34:06.42Emacs Library や モジュール や ユーティリティー といった言葉が使われてる。
MULE プログラム や CCL プログラム って言葉も出てくる。
0672デフォルトの名無しさん
2011/11/21(月) 04:04:27.570673デフォルトの名無しさん
2011/11/21(月) 15:19:18.49defmacro以外で書いてある部分はどう呼ぶんだ?
0674デフォルトの名無しさん
2011/11/22(火) 02:01:47.780675デフォルトの名無しさん
2011/11/22(火) 02:16:46.620676デフォルトの名無しさん
2011/11/22(火) 19:38:59.290677デフォルトの名無しさん
2011/11/23(水) 00:02:21.530678デフォルトの名無しさん
2011/11/23(水) 08:26:25.14正解
EmacsはelispとCで出来てるので、Cの用語と調和できる表現が理想かと。
なのでマクロは…
0679デフォルトの名無しさん
2011/11/23(水) 08:38:22.220680デフォルトの名無しさん
2011/11/23(水) 11:49:43.280681デフォルトの名無しさん
2011/11/23(水) 21:32:52.180682デフォルトの名無しさん
2011/11/23(水) 23:02:07.70gosmacsとmock lispに切れたlisperのストールマンが
作った最強のlisp環境兼エディタなのにw
0683デフォルトの名無しさん
2011/11/23(水) 23:05:57.06Unipressの売り物になったから切れただけだろ
0684デフォルトの名無しさん
2011/11/25(金) 17:16:00.68でもMockじゃなくて
ちゃんとしたlisp使いたくて
弄ろうとしたんじゃなかたっけ
ある意味gosmacsはGNUの生みの親だなw
0685デフォルトの名無しさん
2011/12/04(日) 10:14:50.83そんときは別に切れてない。
そのあとGoslingがgosmacsの権利売ったから切れた。
0686デフォルトの名無しさん
2011/12/11(日) 00:00:16.59これでいいよ.
iアプリと似てるから世間で流行るかも知れん.
e電と同じく廃れるかも知れんけど.
0687デフォルトの名無しさん
2011/12/12(月) 02:45:01.23なぜかiは長生きする
0688デフォルトの名無しさん
2011/12/12(月) 03:05:15.280689デフォルトの名無しさん
2012/01/28(土) 08:21:48.92そういうシステムの用語としてはパッケージってだいたい言うんじゃね?
Emacs NetInstaller Packageということでどうか
0690デフォルトの名無しさん
2012/01/29(日) 10:39:04.45つ email
0691デフォルトの名無しさん
2012/01/31(火) 15:47:27.09キーの割り当ては個人設定まかせだったりするでしょ。
0692デフォルトの名無しさん
2012/02/04(土) 00:25:11.1269行目にdefmacroで
enh-command-with-authというマクロを宣言しているのですが
最初のローカル宣言で
`(let (error-code (try-func (lambda () ,@body)))
上のようになっています。
letといったら
(let ((変数宣言)) 式)
と言った形になると思うのですが、このマクロでは、
突然、宣言も何もやっていないerror-codeが出てきています。この部分では何をやっているのか知りたいです。
また、try-funcも上のlisp
後に(funcall try-func)という記述がありますので、普通の関数なのかと思い調べたのですが、見つかりません。try-funcとはなんなのかも分からなくて困っております。
どうか教えていただけますでしょうか、よろしくお願い致します。
0693デフォルトの名無しさん
2012/02/04(土) 00:55:00.25> let is a special form in `C source code'.
>
> (let VARLIST BODY...)
>
> Bind variables according to VARLIST then eval BODY.
> The value of the last form in BODY is returned.
> Each element of VARLIST is a symbol (which is bound to nil)
> or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).
> All the VALUEFORMs are evalled before any symbols are bound.
だからerror-codeにはnilが束縛されて、
try-funcに(lambda () ...)が束縛される。
普通の関数は(funcall try-func)として実行できない。
try-funcが評価されて返ってきた関数を実行する。
0694デフォルトの名無しさん
2012/02/04(土) 01:16:52.08お早い回答ありがとうございます!!
探しても載ってないletの取扱い方があるのかと思っていたのですが
そのままの文法にしたがって解読すればよかったということですね。
また、funcallの使い方も勘違いしておりました。
try-funcの定義部分を探して読めば問題ないということですね!
大変助かりました。
ありがとうございました!
0695デフォルトの名無しさん
2012/02/04(土) 10:48:46.39command実行をauthでラップしてるんでしょ、どうせ。
0696デフォルトの名無しさん
2012/03/02(金) 22:57:34.38けど、LISPに関する文章が悲しくて泣けた
Mewの開発者があれではなあ
0697デフォルトの名無しさん
2012/03/02(金) 23:14:04.60マルチうぜぇ
「リスト遊び」のときからわかってることを今更マルチで書き込んでやるなよ
0699デフォルトの名無しさん
2012/03/04(日) 19:15:58.060700デフォルトの名無しさん
2012/03/09(金) 07:48:01.98while回しながら見つけたファイルの名前と中身を
insertしようと
(if (file-exists-p filename)
(progn
(insert filename)
(insert-file-contents filename))
)
と書きましたが、書き込みがバッファされているようで、先にファイルの中身が
全部インサートされて後から(insert file)の結果がまとめてインサートされているようです。
(insert filename)
(sit-for 0)
(insert-file-contents filename))
とかやれば、そこでフラッシュされるかなと思ったのですが、
それもダメでした。何かいい方法はないでしょうか。
0701デフォルトの名無しさん
2012/03/09(金) 10:54:52.36バッファされてるんじゃなくてpointがダメな気がする。
insertとinsert-file-contentsはpointからデータを挿入するけど、
insert-file-contentsの方は挿入した後pointを動かさないから、
(goto-char (point-max))とかしてみたらどうかね。
0702デフォルトの名無しさん
2012/03/09(金) 13:25:16.800703デフォルトの名無しさん
2012/03/09(金) 13:40:54.66elispを関数型言語って言ってるんだけど
誤記たよね?
0704デフォルトの名無しさん
2012/03/09(金) 14:06:39.05でも、↓ではCLがHaskellと同列に書いてあるし、
http://en.wikipedia.org/wiki/Functional_programming
functional flavor languageで初期LISPも紹介してあるから、そんなに目くじらたてるほどでもないんじゃないの
0705デフォルトの名無しさん
2012/03/09(金) 14:15:26.74理論的なモデルのことを指してるんじゃないかなそれは。
0706704
2012/03/09(金) 16:37:17.520707デフォルトの名無しさん
2012/03/09(金) 18:00:53.800708デフォルトの名無しさん
2012/03/10(土) 05:38:23.01評価どうなん?
0709デフォルトの名無しさん
2012/03/10(土) 05:50:32.970710デフォルトの名無しさん
2012/03/10(土) 08:55:56.58遅くなりましたが、そのとおりでした。ありがとうございます。
>>702
何かのときのために覚えて起きます。
0711デフォルトの名無しさん
2012/03/10(土) 10:00:02.540712デフォルトの名無しさん
2012/03/10(土) 13:26:39.59内容以前に文章が稚拙すぎると思った。
0713デフォルトの名無しさん
2012/03/10(土) 13:44:11.30本書いたことがないとどれだけ大変か分からない。
それとも、お前サバンナでも同じ事言えんの?
0714デフォルトの名無しさん
2012/03/10(土) 13:54:05.09サバンナ?わからない。
上の本に関してはどこか作者の心の乱れみたいなのを感じちゃって
正視に耐えなかった。
0715デフォルトの名無しさん
2012/03/10(土) 14:08:06.87_,,-;" '' ゛''" ゛';__
ヽ/""゛゛''`';, ノr´)
,;'゛/__ _ "iヽ;ミ お前ってアレだよな…
,,'"|( d /oノ ド゛ `ミ サバンナじゃ真っ先に死ぬタイプだよな
r ";,| ▼ ド゛ `ミ
(`ヽ';ヽ_人__ノ / ,,ミ゛、
ヽ、 '';,i⌒⌒ / リ ヽ、
/` ィ'r`''''""´ ,,ミ゛ |
/ | ゛r、ノ,,トリ'" i |
/ | | |
 ̄ ̄ ̄ ̄ ̄i ノ ̄ ̄ ̄ ̄ ̄ ̄/ ノ ̄ ̄ ̄ ̄
`ー ´ / /
,-ー´ /
((_(_(_ノ
0716デフォルトの名無しさん
2012/03/10(土) 14:11:30.450717デフォルトの名無しさん
2012/03/10(土) 14:27:06.170718デフォルトの名無しさん
2012/03/10(土) 15:14:00.00, -――- 、
/ ヽ
| ノ ー | それっておかしくねぇ?
|(・) (・) | だって、ここ2chじゃん
| ( |
ヽ O 人
>ー-― ´  ̄ ̄\
⊂ニニ ̄ ̄ ̄ヽ / |
くメ) _ノ | | | | |
(/ | | / | | |
| |/ /| | |
| ト / | | |
ヽ__/ | | |
0719デフォルトの名無しさん
2012/03/10(土) 15:15:13.34Emacs Lispテクニックバイブルp. 82から引用してみよう
> 2-11-1 Lispファイルの置いているディレクトリを指定する
>
> ロードする方法を解説する前に、elispの置いてあるディレクトリを
> 指定しなければなりません。それを指定することで、ロードするときに
> Lispファイルのディレクトリ名を指定する必要がなくなります。
解説するのは誰か、ディレクトリを指定するのは誰か
本当に「しなければならない」のか
こういった論理の乱れが作用し読者はいつしか電波を発するようになるのである
0720デフォルトの名無しさん
2012/03/10(土) 15:37:12.21どんな表現だったら良かったんだろうね
編集さん大変だったろうなあ
0721デフォルトの名無しさん
2012/03/10(土) 15:49:21.27一般的に言うところの”パスを通す”と似た様な事をするんだろうなと読め、そんなに引っかかりは感じなかった。
精読や多読していくと違和感を感じるんだろうか。
0722デフォルトの名無しさん
2012/03/10(土) 15:57:55.82負けず嫌いだったりすると周りの言う事聞かなくなるからなあ。
小説の読み方の教科書とか
0723デフォルトの名無しさん
2012/03/10(土) 16:03:04.03お買い上げありがとうございます。
0724デフォルトの名無しさん
2012/03/10(土) 17:24:23.47教えた方が必要性が分かりやすくていいんじゃね」とか突っ込まれたときに
受け入れることも無視することもできなかった結果の産物っぽく感じる
だから、単に言うこと聞かずに我が道をゆく方がマシだったんじゃね
従わないけど聞かずにはいられないってタイプがもっとも支離滅裂な結果になる
>>721
基本的に著者の書きたいことを分かってる場合は(著者と同じく)おかしさを感じにくいからな
そういう脳内変換は2chやネットの文章あさるには必須の技能でもあるし
0725デフォルトの名無しさん
2012/03/10(土) 17:24:55.22ディレクトリ名を指定する必要がなくなります。
ロードディレクトリの指定は必須ではありませんが、
以降はロードディレクトリを指定した前提でロードする方法を解説します。
どう?
0726デフォルトの名無しさん
2012/03/10(土) 17:39:27.49その文章の方がいいことを説明する前に、>>719の方が圧倒的に面白い。
0727デフォルトの名無しさん
2012/03/10(土) 18:55:53.692ちゃんでは珍しくはっきりした結論がでたな
「理科系の作文技術」でも読んで寝るわ
0728デフォルトの名無しさん
2012/03/10(土) 19:59:39.57ねたみ酷いって書き込みが入ったものだが
0729デフォルトの名無しさん
2012/03/10(土) 21:03:33.050730デフォルトの名無しさん
2012/03/10(土) 22:03:22.91解説は本の役目で指定するのは自分、これ以外どう解釈するんだ?
0731デフォルトの名無しさん
2012/03/10(土) 22:22:48.16> あなたは指定しなければなりません。それをあなたが指定することで、ロードするときに
> Lispファイルのディレクトリ名をあなたが指定する必要がなくなります。
はっきりさせるとむしろおかしくね?w
0732デフォルトの名無しさん
2012/03/10(土) 22:24:37.67本人乙。そう解釈せざるをえないのだが、
| (本が)ロードする方法を解説する前に、(あなたは)elispの置いてある
| ディレクトリを指定しなければなりません。
一つの文で主語が切り替わるからイラつく。
0733デフォルトの名無しさん
2012/03/10(土) 22:25:21.44複文かつねじれた文ってやつだよ
大卒ならみんな知ってる
0734デフォルトの名無しさん
2012/03/10(土) 22:30:04.29あほすぎ。なんか Emacs スレみたいな感じになってきたね。
あっちスレの誰かがやってきたのかな?
0735デフォルトの名無しさん
2012/03/10(土) 22:43:07.93まあそうだね。>>733は引っこめるよ。すまなかった
0736デフォルトの名無しさん
2012/03/10(土) 22:51:18.59もしかしてその著者が大卒じゃないとかそういう流れでのレス?
0737デフォルトの名無しさん
2012/03/10(土) 23:32:52.39>【著者紹介】 るびきち
>早稲田大学大学院理工学研究科修士課程修了。
0738デフォルトの名無しさん
2012/03/10(土) 23:58:34.130739デフォルトの名無しさん
2012/03/11(日) 00:24:24.11素直に735の意に従うべきだったな
0740デフォルトの名無しさん
2012/03/11(日) 00:51:16.120741デフォルトの名無しさん
2012/03/11(日) 00:54:32.630742デフォルトの名無しさん
2012/03/11(日) 00:59:10.07あるあるすぎて困るけど作品の批評とはまた別の話
0743デフォルトの名無しさん
2012/03/17(土) 14:27:29.00*ediff control panel*で
(defun my-ediff-make-fine-diffs-all ()
(interactive)
(let ((i 0))
(while (< i ediff-number-of-differences )
(ediff-make-fine-diffs i)
(setq i (1+ i))
)))
として overlay で違いを強調するところまではやったのですが、
overlayのままでは、enriched-mode で保存も出来ないので、
overlay を text-property に変換して enriched-mode で保存できたら
いいなと思ってるんですが、どうすればいいでしょうか。
文章が長いのとOCRのノイズが多いので、手ではやりたくありません。
よろしくお願いします。
0744デフォルトの名無しさん
2012/03/17(土) 16:48:20.69テキストプロパティに変換して削除して回るだけっぽい
0745デフォルトの名無しさん
2012/03/17(土) 17:39:46.40http://www.gnu.org/software/emacs/manual/html_node/elisp/Finding-Overlays.html
の find-overlays-specifying を見てたんですが、
(overlay-get overlay 'face) とかでどんな overlay かは返ってきますね。
するとこれをスタックに積んで始まりと終わりが分かったら
そこを変換しろと言う訳ですね。ちょっとやってみます。
また分からなかったら質問します。ありがとうございます。
0746デフォルトの名無しさん
2012/03/21(水) 23:49:54.13もしかして、emacs lispで「?!」は使えないのでしょうか?
(re-search-forward ”abc(?!de)” nil t)
0747デフォルトの名無しさん
2012/03/22(木) 00:16:43.92(info "(elisp)Syntax of Regexps")
0748746
2012/03/22(木) 01:07:53.55special charactersに「!」が含まれていないので、
使えないという理解でいいんですよね?
うーん、書くのが面倒くさくなるなあ。
0749デフォルトの名無しさん
2012/03/22(木) 02:16:32.52バックスラッシュが括弧に必要
0750デフォルトの名無しさん
2012/03/22(木) 08:31:18.61拡張正規表現の話だぞ。
0751デフォルトの名無しさん
2012/03/22(木) 13:49:33.36すまん。Emacsに先読みが無いことに今気がついた。
普通は後続の正規表現を指定するか、単語境界いれるからあんまり使わないんだよね
0752デフォルトの名無しさん
2012/03/22(木) 16:17:30.37代替するとこんな感じか?わっかりにっきーな
(re-search-forward "abc[^d]\\|abcd[^e]\\|abc$\\|abcd$")
0753デフォルトの名無しさん
2012/03/22(木) 21:46:10.19「拡張正規表現」の定義によりますよ。
0754デフォルトの名無しさん
2012/03/22(木) 22:06:24.540755デフォルトの名無しさん
2012/03/22(木) 22:12:46.02emacsの正規表現でグループ化するには(をエスケープして\(としてやらないといけない
しかし単に"\("と書いてはいけない。
"\("が文字列として評価され(になり、その(が正規表現に渡されてとして評価される
正規表現に\(を渡したい時は文字列"\\("としないといけない
0756デフォルトの名無しさん
2012/03/22(木) 23:15:18.09エスケープはわかったからさ。>>746の
> deを含まないabcを探索したいのですが
これをemacsの正規表現で書いてくれや。
0757デフォルトの名無しさん
2012/03/23(金) 00:36:29.290758デフォルトの名無しさん
2012/03/23(金) 13:24:07.87>>753
0759デフォルトの名無しさん
2012/03/23(金) 16:20:20.63emacsの正規表現って定義あるよね?
0760デフォルトの名無しさん
2012/03/23(金) 23:21:27.61emacs24とかは知らんが。
abc(?!de)は、"abcxxxx" の最初の "abc" とマッチするんだよね。
>>752のは "abcx"とマッチすることになるから微妙に違ってくる。
emacs lispでは、ひとつの正規表現だけでは、これと同じことはできないんじゃないの?
0761デフォルトの名無しさん
2012/03/24(土) 01:31:35.63Emacs の正規表現の貧弱さにはいつもイライラする。
0762デフォルトの名無しさん
2012/03/24(土) 05:17:04.560763デフォルトの名無しさん
2012/03/24(土) 10:03:06.080764デフォルトの名無しさん
2012/03/24(土) 13:45:33.85本気で変えたいんならレキシカルスコープ変数やった人みたいに、
専用ブランチ作ってマージして、互換性の問題などを検証してみんなを納得させないといけない。
PEGはもういくつか実装あるような希ガス
0765デフォルトの名無しさん
2012/03/24(土) 15:24:09.42pcre-search-forward や pcre-match-string みたいな。
0766デフォルトの名無しさん
2012/03/24(土) 19:29:57.02(setq browse-url-generic-program "/usr/bin/open")
0767デフォルトの名無しさん
2012/03/24(土) 19:39:48.530768デフォルトの名無しさん
2012/03/24(土) 20:04:29.09(setq browse-url-generic-args (list "-g")))
でうまく行きました。ありがとうございます。
0769営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 21:59:31.62http://www.dina.kvl.dk/~abraham/custom/widget.html
(setq anyItem '(item "a")) ;;OK
上のように決めうちにすると、値が"a"のanyItemを取得できるのですが、
(setq itemName "b") ;;←この値を設定したい
(setq anyItem '(item itemName)) ;;NG
このようにすると、anyItemの値が"b"ではなくitemNameとなってしまいます。
itemの値として変数を与えるにはどう書けばよいですか?
0770営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 22:21:24.73とか
(setq anyItem (list 'item itemName))
とかかな。
0771営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 22:35:36.76できました。ありがとうございます。
0772営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 23:40:21.62入力終了まで次の処理を待たせる方法はないですか?
widget.elを使って書いたのですが、(widget-do-something)を呼び出した後、
すぐ次の処理に進んでしまいます。
(widget-do-something);;ユーザーからの入力が受け付ける何らかのウィジェットを出す
;;←ここでwidget-do-something終了まで待ちたい。
;;入力パラメータによって処理を変える
0773営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 01:27:33.22widget使うならコールバックで頑張るとか、イベントハンドラの連鎖で処理をつなげて自分で状態管理する必要がある
モーダルにしたいのなら、ミニバッファ使う関数か、orgmodeのようにread-char-exclusiveとかで1文字づつ読むしかない
0775営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 21:49:43.85変数として代入したいのですが、(2)をどのように書けば良いですか?
(setq pair '("aaa" . ()));;(1) OK
(setq label "aaa")
(setq pair '(label . ()));;(2) Error
(setq listdata (cons pair listdata)) ;;リストに追加
0776はちみつ餃子 ◆8X2XSCHEME
2012/03/31(土) 21:56:13.93お前がエラーと書いてるところではエラーにならず (LABEL) が返ってくるはずだぞ。
言いたいことがよくわからんがこういうことを言ってんのか?
(setq pair `(,label . ()))
0777775
2012/03/31(土) 22:53:33.10>(setq pair `(,label . ()))
求めていたのはまさにそれです。ありがとうございました。
>お前がエラーと書いてるところではエラーにならず (LABEL) が返ってくるはずだぞ。
エラーとなるのは、
(setf (cdr (assoc label listdata)) (cons "aa" (cdr (assoc label listdata))))
のように値を放り込もうとしたタイミングでした。
>let*: Wrong type argument: consp, nil
不正確な質問の仕方をしてすみません。
0778営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 18:19:27.23を見つけ、買おうか迷っています。
また、同名のサイトを見つけました。
http://www.bookshelf.jp/texi/elisp-manual/21-2-8/jp/elisp.html#SEC_Top
このサイトと内容は同じでしょうか。
関数とかすぐ調べられるリファレンス本を探しています。
0779営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 18:25:20.07;;そのサイト、ライセンスをちゃんと明記してあるかな?
0780営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 19:13:42.69原文のライセンスを継承します
とは書いてありますが、明記となるとよく分かりません。
本の内容はサイトとほとんど変わらないということですね
むしろ、最新のサイトを参照したほうが良さそうですね。
ありがとうございます。
0781営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 19:29:51.18しかし元のASCIIの版もftp.ascii.co.jpが到達不能でライセンス違反だなw
一応関係者に連絡しておくかな。
0782営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 20:38:23.66(func 1)で呼び出している場合など、
'で呼び出す関数funcに引数を与えるにはどのように書けば良いでしょうか?
(define-key global-map [(meta t)] 'func)
0783営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 21:07:40.780785営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 04:02:18.46Emacs実践入門 ~思考を直感的にコード化し、開発を加速する
http://www.amazon.co.jp/dp/4774150029/
0786営利利用に関するLR審議中@詳細は自治スレへ
2012/04/06(金) 00:29:55.27ELispは扱ってないし、説明もわかりにくいし
著者のおすすめ設定・拡張機能の紹介だけしか読むところはないけど、
こんなブログで済むような内容で2500円は高すぎる
Matzの紹介文や絶賛ばかりの書評に騙されたわ
Emacs付属のチュートリアルを読んで、Webで情報を補えば事足りるかと
0787営利利用に関するLR審議中@詳細は自治スレへ
2012/04/06(金) 01:21:22.780788営利利用に関するLR審議中@詳細は自治スレへ
2012/04/06(金) 01:45:21.36ただ、初心者向けなら今更感溢れるEmacsのノーマルな紹介じゃなくて
キャッチーな話題作りに基づく本が必要、つまり話題が先に必要だろうな
RubyでいうRailsとかそんな感じの、コアな話題に見せかけて初心者向けな
0789営利利用に関するLR審議中@詳細は自治スレへ
2012/04/06(金) 17:12:47.05普通の人っていちいち矢印キーでカーソル移動して操作してんだろ?
マウスやshift+カーソル移動で行を削除したり、
それがどれほど効率の悪いことか疑わず気づかずに過ごしている
0790営利利用に関するLR審議中@詳細は自治スレへ
2012/04/06(金) 17:28:20.28マウススクロール対応がしょぼいのをどうにかしないと流行らないだろうな
でもそのあたりをどうにか(今風に)してしまったらもはやEmacsじゃない
0791営利利用に関するLR審議中@詳細は自治スレへ
2012/04/06(金) 18:12:08.45n/p/f はまだいいけど b はなによ b は。
別に emacs これ以上普及する必要もないと思うけどなあ。
0792営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 09:53:18.430793営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 10:01:22.030794営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 10:07:44.79p previous
f forward
b backword
0795営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 10:10:13.24「か」行の欄探しても見つからなくて
「あ」行探したら見つかった
って話を思い出した
0796営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 10:28:39.280797営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 12:26:01.80HHKのスペースバーの左のキーをMにしてるんだけど。
M全般押しにくい。皆さんどうしてるの?
0798営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 12:39:23.31同じくスペースの左(うちは無変換)にMを振ってる
M-bはシェルでよく使うからそのうち慣れるよ
でもS式の編集みたいにプレフィクスがM-C-だとさすがに萎えるよ
0799営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 13:53:57.89個人的には C-b は別に普通に押せるけど、M-v が駄目だ。
……ここって Lisp のスレじゃなかったの?
0800営利利用に関するLR審議中@詳細は自治スレへ
2012/04/08(日) 16:45:55.02をそれぞれ作りたいのですが、以下のようにループでいちいち要素を判定するよりもっと簡単な書きかたはできますか?
(while (< i (length list1)) <中略> (setq i (+ i 1)))
(setq list1 '("1" "2" "3" "4"))
(setq list2 '("2" "3"))
;;(setq listUniqFromList2 '("1" "4")) ;;作りたいリスト
;;(setq listSortByList2 '("2" "3" "1" "4")) ;;作りたいリスト
0801営利利用に関するLR審議中@詳細は自治スレへ
2012/04/08(日) 20:05:48.61java っぽい。Lisp の集合を扱う関数は順序は思ったようにならないことが多
いので自前で while 書いた方が楽だと思うな。
関係ありそうな関数は (require 'cl) して union とか intersection,
set-difference あたりかなぁ。
0802800
2012/04/09(月) 02:09:51.23ありがとうございました
たしかにときどき順序が逆順になってて
あれって思いました
0803デフォルトの名無しさん
2012/04/11(水) 21:18:57.62これを普通のエディタのように選択中のテキストを削除してそこに文字を入力するにはどいうLispを書けばよいのでしょうか?
0804デフォルトの名無しさん
2012/04/11(水) 21:54:36.690805デフォルトの名無しさん
2012/04/12(木) 21:22:14.05(buffer-list)を使おうとしたのですがよく分かりませんでした。
(setq myBufferList (buffer-list))
(setq i 0)
(while (< i (length myBufferList))
(message (nth i myBufferList));;エラー
;;メッセージバッファなどを除いた存在している各ファイルパスを取得したい
(setq i (+ i 1)) )
0806デフォルトの名無しさん
2012/04/12(木) 22:12:07.74(let ((f-list nil))
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(let ((f buffer-file-name)) (if f (setq f-list (cons f f-list))))))
f-list)
0807デフォルトの名無しさん
2012/04/12(木) 22:24:29.25・関数buffer-file-name
でいいかと
0808デフォルトの名無しさん
2012/04/13(金) 00:28:24.53(remove-if-not 'identity (mapcar 'buffer-file-name (buffer-list)))
0810デフォルトの名無しさん
2012/04/13(金) 05:46:02.67これを表示させないようにする方法はないでしょうか。
(setq sample-string "12:")
(if (string-match "^[0-9]+\\:" sample-string)
(message (match-string 1 sample-string)) )
0811デフォルトの名無しさん
2012/04/13(金) 07:55:43.76> (setq sample-string "12:")
> (if (string-match "^[0-9]+\\:" sample-string)
> (message (match-string 1 sample-string)) )
どうして string-match が Mark set を出してると判断したの?
出ないんだけど。前後のコードも出してみたら?
0813デフォルトの名無しさん
2012/04/14(土) 07:21:43.71出来ました!
あ、でもEmac-Lisp-modeだと問題無いのにShell-Script-modeだとシングルクオートやダブルクオートを入力すると選択解除追加されてしまいまう…
<や>を入力しても解除される…
むぅ…
0814デフォルトの名無しさん
2012/04/17(火) 18:21:12.39(setq list1 (list 1 2 3 4))
を、(1 2 5 3 4)となるように途中に要素を途中に挟み込むにはどう書けばよいですか?
以下のようにconsだと先頭に追加されてしまいます。
;;(setq list1 (cons 5 list1));; -> (5 1 2 3 4)
0815デフォルトの名無しさん
2012/04/17(火) 18:32:01.37(setq list1 '(1 2 3 4))
(push 5 (nthcdr 2 list1))
0816デフォルトの名無しさん
2012/04/17(火) 18:36:33.15(if (or (= n 0) (null list)) (cons x list) ; 0オリジン
(cons (car list) (nth-insert x (1- n) (cdr list)))))
(nth-insert 5 2 '(1 2 3 4)) -> (1 2 5 3 4)
(nth-insert 5 10 '(1 2 3 4)) -> (1 2 3 4 5)
0817デフォルトの名無しさん
2012/04/17(火) 23:34:43.50目立つよう反転表示か色づけするにはどうやればいいですか?
0818814
2012/04/17(火) 23:36:42.03ありがとうございます。
>>815
>(push 5 (nthcdr 2 list1))
(5 3 4)になってしまったのですが。
>>816
これは便利ですね。nth-insert使わせてもらいます。
0819デフォルトの名無しさん
2012/04/17(火) 23:43:02.66(push 5 (nthcdr 2 list1)) の評価結果は (5 3 4) だけど
list1 を評価すればちゃんと(1 2 5 3 4)になってるよ。
0820デフォルトの名無しさん
2012/04/18(水) 00:14:26.46これ、リストがでかいときはどうなるの?
0822デフォルトの名無しさん
2012/04/18(水) 00:27:04.29リージョンに対して
facemenu-set-background とか
facemenu-set-foreground とか使えばできる。
0823デフォルトの名無しさん
2012/04/18(水) 01:16:03.75見てO(n)なことわからんのか?
0824817
2012/04/18(水) 01:50:47.69できました。ありがとう御座います。
色づけすると、バッファが更新されたものとして扱われてしまうので、
今のところ(revert-buffer t t)として元に戻しています。
readOnlyとしてファイルを扱いたいなら、表示用に一時的なバッファを作るのが順当なやり方でしょうか?
0825デフォルトの名無しさん
2012/04/18(水) 02:05:25.85(1)gdbのdisplayコマンドのように、ブレークポイントで停止するたびに自動的に式の評価をすることはできますか?
(2)C-u M-C-xでデバッグ対象に登録した関数を解除するにはどのコマンドを使えばよいでしょうか?
0826デフォルトの名無しさん
2012/04/18(水) 12:25:45.11Elisp で末尾再帰したくなるやつは馬鹿です。
0827デフォルトの名無しさん
2012/04/18(水) 12:37:34.91(nth-insert 'x 2000 (number-sequence 0 2000))
0828デフォルトの名無しさん
2012/04/18(水) 19:55:24.450829デフォルトの名無しさん
2012/04/20(金) 02:52:52.23(2) eval-defun かな。edebug-defun で再評価でも良いけど。
0831デフォルトの名無しさん
2012/04/21(土) 17:05:53.540832デフォルトの名無しさん
2012/04/21(土) 18:32:10.770833デフォルトの名無しさん
2012/04/21(土) 18:32:45.280834デフォルトの名無しさん
2012/04/22(日) 12:59:51.06set-buffer-modified-pで無理やり戻すという方法もあるけど、
overlayならそもそも変更フラグ変わらないよ。
0835デフォルトの名無しさん
2012/04/23(月) 00:50:25.50>'(:eval (if buffer-file-name "a" "b"))
この":eval"ってのはなんでコロンが必要なの?
#もちろんコロンがないと動かないのは手で試しているのですが……。
http://d.hatena.ne.jp/sonota88/?date=20110224§ion=1298557375
とかでもありますけど、この '(:eval …) という熟語のようなものがよく分からないのです。
0836デフォルトの名無しさん
2012/04/23(月) 00:53:52.450837835
2012/04/23(月) 01:35:49.05なるほど。
mode-line-formatのdoc見たら、それらしき記述があった。
特殊な文法なのかと思ってたから、docを見ることに気付かなかった。
もうちょっと、よくdoc読んでみます。
ありがとう。
0838824
2012/04/24(火) 21:28:17.40ありがとうございます。
overlayを試してみているのですが、使いかたが分からなくて困っています。
色づけをするのに(facemenu-set-background "red" line-begin-point line-end-point)の代わりに、
(move-overlay mouse-secondary-overlay line-begin-point line-end-point (current-buffer))
としてみたのですが、これはどうやって色を消せば良いのでしょうか?
0839デフォルトの名無しさん
2012/04/25(水) 10:59:54.93自前のoverlayならdelete-overlayで消すのがいいと思うけど、
mouse-secondary-overlayみたいに他の人が作ったものは勝手に消すとまずいので、とりあえずmouse.elでも覗いてみれば参考になるんじゃないかな。
0841デフォルトの名無しさん
2012/04/26(木) 15:53:58.98たとえば以下の関数get-array-from-stringでarray1を戻り値にしたいのですが、一般的なやり方が分からなくて、
現状とりあえず(setq array2 array1)としています。
(defun* get-array-from-string(string1);;文字列から配列を作成する関数
(setq array1 (split-string string1 "\n"))
;;なんらかの加工処理(略)
(setq array2 array1)
))
0842デフォルトの名無しさん
2012/04/26(木) 16:39:04.76> リストを関数の戻り値として渡すにはどのようにすればよいですか?
> たとえば以下の関数get-array-from-stringでarray1を戻り値にしたい
いまいち意味がわからない。
関数の戻り値にしたいのか外部変数の array1 に設定したいのか。
(defun* get-array-from-string(string1)
(setq array1 (split-string string1 "\n"))
;;なんらかの加工処理(略)
array1)
関数定義の最後の式が戻り値になるんだが。
0843デフォルトの名無しさん
2012/04/26(木) 17:17:31.800844デフォルトの名無しさん
2012/04/26(木) 18:45:12.220845デフォルトの名無しさん
2012/04/26(木) 19:06:40.760846841
2012/04/26(木) 19:56:40.66>array1)
ありがとうございます。array1単独で式として成立すると分かってませんでした。
>>845
そうですね。letつけ忘れていました。
letをつけ忘れを検出してくれるツールでもあればいいんですが。。
0847デフォルトの名無しさん
2012/04/26(木) 23:45:45.52付け忘れってのはありえないと思うんだけど
0848デフォルトの名無しさん
2012/04/27(金) 01:53:00.09cの癖が抜けず、使う変数をプログラムの頭でletでまとめて宣言とかやってしまっているので、
必要のない変数宣言が残っていたり、setqしている変数がローカル変数ではなく大域変数になっていたりということが結構あります。
組み方がまずいのですけど。
0849デフォルトの名無しさん
2012/04/27(金) 02:44:18.250850デフォルトの名無しさん
2012/04/27(金) 13:31:40.97すみません。
lispの変数は必要な範囲で括弧でくくって使用するものなのに、>>848 のようなコメントが出ること自体、考え方として間違っている
というニュアンスの理解でだいたい合っていますか?
0851デフォルトの名無しさん
2012/04/27(金) 18:53:13.83諦めろ
0852デフォルトの名無しさん
2012/04/27(金) 23:02:06.06未使用なローカル変数が残る事はどの言語でもある事だけど、ローカル変数と思っていたものが
グローバル変数になっていたというのは有り得ないと思うよ。
elispは、hoge.elだったらhoge-hensuuとプリフィックスを付ける事が必須のマナーになってる。
ローカル変数はiとかarray1にすれば、うっかり(?)グローバル変数を書き換える事は無くなる。
0853デフォルトの名無しさん
2012/04/27(金) 23:13:38.53ttp://www.emacswiki.org/emacs-ja/EmacsLisp%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9
>>1 になんかリンクがあったほうがいい気がする。
0854デフォルトの名無しさん
2012/04/27(金) 23:27:32.57とかもいいんじゃない?
ttp://www.bookshelf.jp/
その手の情報は↑に色々あるよ。情報としては大分古いけど役に立つものもある。
0855デフォルトの名無しさん
2012/04/27(金) 23:38:58.59あと、emacsはそれ自体のソースを見る事が超簡単なんで、既存のソースをざっと見るのも
いいと思うよ。
0856デフォルトの名無しさん
2012/04/27(金) 23:43:52.66setqは必要な時意外は使わない方がいいとかかね?
>>841とかは、setqまったく使う必要が無いし。
0857デフォルトの名無しさん
2012/04/28(土) 00:24:34.870858デフォルトの名無しさん
2012/04/28(土) 01:22:00.26俺には無理だな。
mapcとか使ってれば、とりあえずlispっぽいと思ってる。
0859848
2012/04/28(土) 01:23:18.20ありがとうございます。
>elispは、hoge.elだったらhoge-hensuuとプリフィックスを付ける事が必須のマナーになってる。
ちゃんと命名規則を調べずに書いてました。lispのルールに合わせます。
>>856
>setqは必要な時意外は使わない方がいいとかかね?
参考になりました。以後気をつけます。
0860デフォルトの名無しさん
2012/04/28(土) 01:36:34.14再帰的な書き方をループで使えないから、そのへんではsetqつかわんとだねelispは
0861デフォルトの名無しさん
2012/04/28(土) 17:03:38.53(defun string-match-count (regexp strings)
(let ((begin 0) (count 0))
(while (setq begin (string-match regexp strings begin))
(incf begin)
(incf count)
)
count
)
)
0862デフォルトの名無しさん
2012/04/28(土) 20:22:31.54(defun string-match-count (regexp strings)
(with-temp-buffer
(insert strings)
(loop for count = 0 then (1+ count)
while (re-search-backward regexp nil 'noerror)
finally return count)))
0863デフォルトの名無しさん
2012/04/28(土) 20:29:23.04whileの条件式を(string-match ...)だけにして
(incf begin)を(setq begin (match-end 0))に変更するとか。
これくらいのループ処理なら好みの間題かなあ
例えば、doマクロだとこんな感じ
(defun fn (regexp strings)
(save-match-data
(do ((begin 0 (match-end 0))
(count 0 (1+ count)))
((not (string-match regexp strings begin)) count))))
0864デフォルトの名無しさん
2012/04/28(土) 21:24:34.73strings って複数形なのが気になった。
0865863
2012/04/28(土) 23:57:10.720866デフォルトの名無しさん
2012/04/30(月) 14:49:40.12S式をバッファに文字列として記入するときはどのようにやるのが一般的なのですか?
色々検索しているうちに
(insert (format "%s" sexp))
というやり方は見つけたのですが、
これだと、 sexp が例えば ("hoge" "hage") の時だと、
バッファには (hoge hage) と書き込まれて引用符が抜けちゃうんですよね……。
0867デフォルトの名無しさん
2012/04/30(月) 14:56:42.840869デフォルトの名無しさん
2012/05/22(火) 22:07:07.19チューリング完全ですか?lispはチューリング完全との事でしたけど。
0870デフォルトの名無しさん
2012/05/22(火) 22:18:23.91それを知ったところで意味がない。
0871デフォルトの名無しさん
2012/05/22(火) 22:27:54.640872デフォルトの名無しさん
2012/05/22(火) 22:36:46.87する必要はありませんから。
0873デフォルトの名無しさん
2012/05/22(火) 22:47:03.280874デフォルトの名無しさん
2012/05/23(水) 01:09:44.230875デフォルトの名無しさん
2012/05/27(日) 13:21:05.870876デフォルトの名無しさん
2012/05/27(日) 14:02:32.790877デフォルトの名無しさん
2012/05/27(日) 17:52:08.550878デフォルトの名無しさん
2012/05/28(月) 03:24:41.91あれか、対角線上にコードを記述するやつか?
0879デフォルトの名無しさん
2012/06/01(金) 18:33:09.85キーボードマクロany-keyboard-macro実行後に入っているクリップボードの値を、
以下のようになんらかの判定に使いたいのですが
('any-keyboard-macro)
(if(string= "any-judge-string" <クリップボードの値の取得>)
<処理>
)
0880デフォルトの名無しさん
2012/06/01(金) 20:13:50.340881デフォルトの名無しさん
2012/06/01(金) 20:40:03.51(current-kill 0 t)でok
0883デフォルトの名無しさん
2012/06/01(金) 22:24:25.68次からは
自己紹介乙
って書いとけ。
0884879
2012/06/01(金) 22:40:29.41(fset 'hoge "\C-a")
(defun test()
(interactive)
('hoge)
)
実行すると、test: Invalid function: (quote hoge)とエラーが出ます。
修正の仕方を教えてください。
0885デフォルトの名無しさん
2012/06/01(金) 22:50:59.510886デフォルトの名無しさん
2012/06/01(金) 23:00:45.33・fset は関数定義を束縛する関数であってキーバインドを設定は出来ない
・関数hogeを呼び出したい場合は ('hoge) じゃなく (hoge)
そもそも何をしたいのか書いたほうがよさそうね。
0887デフォルトの名無しさん
2012/06/01(金) 23:32:55.83>そもそも何をしたいのか書いたほうがよさそうね。
はい。すみません。
insert-kbd-macroで取得したhoge1, hoge2, hoge3のfset定義があるとして、
hoge1の実行結果によって、hoge2またはhoge3に処理を分岐させて、
(define-key global-map [f8] 'test) とラッパー関数を定義したかったのですが。
(define-key global-map [f8] 'hoge)だと実行できるのですけど、
hogeを関数のなかから呼び出すのは無理でしょうか?
0888デフォルトの名無しさん
2012/06/01(金) 23:57:53.560889デフォルトの名無しさん
2012/06/02(土) 00:44:14.45ありがとうございます。
(execute-kbd-macro (symbol-function 'hoge))でうまく行きました
>>885
とりあえず自己紹介乙。
0890デフォルトの名無しさん
2012/06/04(月) 20:11:37.79こういう頓珍漢なこと考えてるのに偉そうなやつむかつくよな。
馬鹿と言われるだけの理由が >>884 にはある。
0891デフォルトの名無しさん
2012/06/04(月) 20:14:24.310892デフォルトの名無しさん
2012/06/05(火) 13:31:22.31経験者から見ると変なことやってるように見えるもんだ。
人を育てた経験がないんだろうな。
0893デフォルトの名無しさん
2012/06/06(水) 07:01:26.140894デフォルトの名無しさん
2012/06/09(土) 19:26:42.20雑な人にも色々難しいと思う
0895デフォルトの名無しさん
2012/06/13(水) 12:34:19.750896デフォルトの名無しさん
2012/06/13(水) 19:40:12.58とかだと納得するんかな
この馬鹿は
0897デフォルトの名無しさん
2012/06/13(水) 20:14:27.440898デフォルトの名無しさん
2012/06/13(水) 21:47:42.81けなのか。偉いなお前 >>879 >>889
0899デフォルトの名無しさん
2012/06/15(金) 09:49:04.02temp-bufferを、window分割せずに使用しようとして以下のコードを書きました。
(let ((temp-buffer-show-function 'switch-to-buffer))
(with-output-to-temp-buffer "*test*"
(princ "foobar\n")))
これだとwindow分割せずに*test*といバッファができますが、"foobar"が表示できません。
どうすれば、window分割せずに"foobar"を表示できるのでしょうか?
0900デフォルトの名無しさん
2012/06/15(金) 10:05:49.300901デフォルトの名無しさん
2012/06/15(金) 10:18:16.17普通にbuffer作って表示じゃだめなの?
(with-current-buffer (get-buffer-create "*test*")
(insert "foobar\n")
(switch-to-buffer (current-buffer)))
0902デフォルトの名無しさん
2012/06/15(金) 10:56:55.060903899
2012/06/16(土) 01:38:19.01ご回答ありがとうございます。
大変申し訳ありませんが、本件、私の早とちりでした。
実際にはfoobarは挿入されており、挿入された行が
表示領域の上に隠れてしまったので
見えていないだけでした。
#スクロールすることで上から出てきました。
誠にお恥ずかしい限りです。
今後気をつけますので、どうかお許しくださいますようお願いします。
0904デフォルトの名無しさん
2012/06/16(土) 19:32:35.710905デフォルトの名無しさん
2012/06/16(土) 19:35:37.26/_ |
/. \ ̄ ̄ ̄ ̄|
/ / ― ― |
| / - - |
||| (6 > |
| | | ┏━┓| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | | ┃─┃| < 正直、スマンカッタ。
|| | | | \ ┃ ┃/ \________
| || | |  ̄  ̄|
0906デフォルトの名無しさん
2012/06/16(土) 19:59:19.820907Perl忍者 ◆M5ZWRnXOj6
2012/06/19(火) 11:53:41.490908デフォルトの名無しさん
2012/06/20(水) 12:00:00.600909デフォルトの名無しさん
2012/06/20(水) 13:25:06.990910デフォルトの名無しさん
2012/06/20(水) 14:12:18.590911デフォルトの名無しさん
2012/06/21(木) 11:44:10.740912デフォルトの名無しさん
2012/06/21(木) 18:59:43.43望んでいる実行結果はこうです: ("privateMethod1" "protectedMethod1" "publicMethod1")
実際はこうなってしまいます: (#("privateMethod1" 0 14 (fontified t)) #("protectedMethod1" 0 16 (fontified t)) #("publicMethod1" 0 13 (fontified t)))
#で始まるこのリスト#("privateMethod1" 0 14 (fontified t))は何者ですか?
carをためしてみるとwrong-typeと言われ、type-of関数でチェックするとstringと言われました。しかしstringには見えません。
望んでいる実行結果を得るにはどうすれば良いのでしょうか。お教え下さい。
; Test.javaバッファ
public class Test {
private privateMethod1() { }
protected protectedMethod1() { }
public publicMethod1() { }
}
(require 'cl)
(save-excursion
(set-buffer "Test.java")
(goto-char (point-min))
(let ((case-fold-search nil)
(regexp "\\(private\\|protected\\|public\\) +\\([a-zA-Z0-9_]+\\)(")
methods)
(while (re-search-forward regexp nil t)
(push (match-string 2) methods))
(nreverse methods)))
0913デフォルトの名無しさん
2012/06/21(木) 19:09:05.43色つけたり編集不可にしたりとかの属性付き文字列ってやつね。
font-lock した状態の文字を切り取るとそんなふうになったりする。
そのまま挿入したりするんでも無ければ特に問題なく文字列としても扱えるよ。
なお、propertize されてない文字列を扱いたい場合は *-no-properties ってのを探すといい。
この場合は match-string => match-string-no-properties で OK なはず。
0914デフォルトの名無しさん
2012/06/21(木) 19:37:00.85即レスありがとうございます。
propertiesと言うのですね。#()で検索してもうまく情報を見つけられなくて。
match-string-no-propertiesでうまくいきました。
0915デフォルトの名無しさん
2012/06/21(木) 20:49:46.30http://www.gnu.org/software/emacs/manual/html_node/elisp/Buffer-Contents.html
0916デフォルトの名無しさん
2012/07/08(日) 21:17:34.50通常の
(eval arg〜)
で呼び出すのはわかるんですが
(:eval arg〜)
というのはどういう意味を持つのでしょうか?
(eval はみつかるのですが : がつくのが見つからないです。
0917デフォルトの名無しさん
2012/07/08(日) 21:35:54.13うちのemacsでやったらエラーになったぞ
0918デフォルトの名無しさん
2012/07/08(日) 22:13:31.79もしかして文脈は mode-line-format ?
:eval に関しては特殊な書式と思っておけばいいんじゃないかな。
0919デフォルトの名無しさん
2012/07/08(日) 22:14:16.05:eval に関しては mode-line-format だけで通用する特殊な書式と思っておけ
ばいいんじゃないかな。
0920916
2012/07/08(日) 23:11:58.33はい、まさにそのmode-line-formatでした。
powerline.elを使おうとして、
いじっていたところ、
(:eval とかが出てきて、どういう解釈なのかよくわからなかったので聞いてみました。
上で話題になっているpropertizeに渡す引数評価もどうしようか、悩んでまして・・。
mode-line-format初期値にあるmode-line-modesを渡したいのですが、
mode-line-modesは全部評価されないと文字列にならない?みたいで・・。
あと初期値にはいっている
#( で始まる記述はpropertize独自のものですか?
0921デフォルトの名無しさん
2012/07/09(月) 00:02:38.38そういう構文があるわけではなかったかと。
0922デフォルトの名無しさん
2012/07/14(土) 03:12:11.57C-[に何かを割り当てたいのですがESCになってしまいます
(global-set-key (kbd "C-[") 'my-func)
どうすればいいんですか!?
0923デフォルトの名無しさん
2012/07/14(土) 04:30:38.660924デフォルトの名無しさん
2012/07/14(土) 04:56:07.01http://superuser.com/questions/173851/linux-remap-ctrl-key
0925デフォルトの名無しさん
2012/07/14(土) 05:02:56.56その魔法(Escを削除してる?)の後に
(global-set-key (kbd "C-[") 'my-func)
を入れたけど駄目ですた(´・ω・`)
0926デフォルトの名無しさん
2012/07/14(土) 05:27:37.42でもこれ、、起動時に読み込まれるファイルに(key-intercept 1)と書いても有効にならないなー
起動後に評価するといけるんだけど…
ふーむ
0927デフォルトの名無しさん
2012/07/14(土) 06:24:45.610928デフォルトの名無しさん
2012/07/14(土) 11:13:49.19Window system版のEmacsでは全てのキーストロークに別の割り当てが可能です。
(ただしOSの許すキーストロークだけですが)
つまりCtrl-[とESCの区別が可能です。
過去の経緯からEmacsでは起動時にはCtrl-[とEscを同一視してます。
0929デフォルトの名無しさん
2012/07/14(土) 11:19:44.02それってどうやるのかしらん
0930デフォルトの名無しさん
2012/07/14(土) 11:22:40.040931デフォルトの名無しさん
2012/07/14(土) 11:37:17.51X とか Mac の非コンソールも Window System版だよ
0932はちみつ餃子 ◆8X2XSCHEME
2012/07/14(土) 12:07:31.88最近の Windows はよくできてるから dis りになってないような気もするけど伝統なので。
0933デフォルトの名無しさん
2012/07/14(土) 12:17:43.210934デフォルトの名無しさん
2012/07/14(土) 12:20:39.71(defvar my-func '((name . "funcname")))
外部elファイルを弄らずにこの(name . "funcname")を(name . "abcdef")に変更するにはどうすれば良いのでしょうか?
0935デフォルトの名無しさん
2012/07/14(土) 12:32:57.800936デフォルトの名無しさん
2012/07/14(土) 12:42:15.75lispってこんな簡単にoverride出来るんだ…
ありがとう
0937デフォルトの名無しさん
2012/07/14(土) 12:56:52.550938デフォルトの名無しさん
2012/07/14(土) 18:23:48.630939デフォルトの名無しさん
2012/07/17(火) 11:04:24.63(message "%s" (get-char-property (point) '????))
0940デフォルトの名無しさん
2012/07/17(火) 11:34:45.290941デフォルトの名無しさん
2012/07/17(火) 11:56:22.530942デフォルトの名無しさん
2012/07/18(水) 20:11:00.960943デフォルトの名無しさん
2012/07/18(水) 20:34:26.34smart-compile とか quickrun でも導入したら?
0944デフォルトの名無しさん
2012/07/19(木) 18:27:25.56説明不足でした。
「smart-compile」を導入しようと思い、
usr/.emacs.d/elisp/ smart-compile.el をいれて、
usr/.emacs.d/init.el に
(require 'smart-compile)
(define-key ruby-mode-map (kbd "C-c c") 'smart-compile)
(define-key ruby-mode-map (kbd "C-c C-c") (kbd "C-c c C-m"))
を書き込んだんですけど。
この設定では、ダメなんですかね〜。
0945デフォルトの名無しさん
2012/07/19(木) 18:28:27.43゙'. '.;`i i、 ノ .、″
゙'. ,ト `i、 `i、 .、″
| .,.:/"" ゙‐,. ` /
` .,-''ヽ"` ヽ,,,、 !
、,、‐'゙l‐、 .丿 : ':、
、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''` .,"-、
,r"ツぃ丶 `````` ../ `i、
,.イ:、ヽ/ー`-、-ヽヽヽ、−´ .l゙`-、
_,,l゙-:ヽ,;、、 、、丶 ゙i、,,、
,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`": │ `i、
、、::|、、、ヽ,、、. ```: : : ``` 、.、'` .|丶、
.l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´ l゙ ゙).._
,、':゙l:、、`:ヽ、`:、 : `"```¬――'''"`゙^` : ..、丶 .l゙ `ヽ
,i´.、ヽ".、".、"'ヽヽ;,:、........、 、、...,,,、−‘` 、‐ |゙゙:‐,
,.-l,i´.、".`ヽ,,,.".` `゙゙'"`'-ー"``"``r-ー`'": _.‐′ 丿 ,!
j".、'ヽ,".、".、"`''`ー、._、、、 、._,、..-‐:'''′ .、,:" 丿
゙l,"`"`''ヽヽ"`"` ```゙'''"ヽ∠、、、、ぃ-`''''": ` 、._./` ._/`
`'i`ヽヽヽ`''ーi、、、: : 、.,-‐'` 、/`
``ヽン'`"` : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^ ,、‐'"`
`"'゙―-、,,,,..、、 : ..,、ー'"'`
: `‘"`―---------‐ヽ``"''''''""
0946デフォルトの名無しさん
2012/07/19(木) 19:14:23.080947デフォルトの名無しさん
2012/07/19(木) 19:20:13.95またちょっとわからんのだけど、
C-c c を押したら smart-compile が呼び出される
C-c C-c を押したら確認なしで smart-compile が実行される、を実装したいってことかね?
普通に動くけど。動かないってのはどういうふうに動かないわけ?
ruby のパスとかちゃんととおってるのかね。
0948デフォルトの名無しさん
2012/07/26(木) 02:25:27.85mcomplete.elというパッケージの作者です。
しばらくelispから離れていたんですが、昨日あたりからemacs24.1をWindows7にインストールして復帰をもくろんでいます。
mcomplete.elは以前は多少は使ってくれている人がいたんですが、最近の様子はどうなんでしょう。
すでに機能的にobsoleteなpackageになってしまったのか他のpackageがとって替わったとか、
そこらへんの状況を教えていただけないでしょうか。
もし需要があるようならelispのリハビリもかねて何かアップデートしようかなと思っています。
http://homepage1.nifty.com/bmonkey/emacs/index.html
0949デフォルトの名無しさん
2012/07/26(木) 09:15:05.59completion-styles に自分で使いたい補完の種類をいれるみたいになったみたい。
completion-styles-alist に設定出来るスタイルを説明付きでいれるんだけど、
partial-completion-mode みたいなのはここで設定するようになったってのと、
lch ->> list-command-history なんて補完も出来るようになったのが違いか。
kogikuはここらへんの変更についていけなくなってて追加された機能を一部殺さないと使えなくなった。
mcompleteも更新するんであればここら辺の仕様に則って更新してくれると嬉しいなぁ
0950デフォルトの名無しさん
2012/07/26(木) 13:33:31.21gnu.emacs.helpにも似たような質問を投稿したんですが、Emacs24にバンドルされているidoが
mcompleteと機能的にかぶっているということと。helm、iciclesっていう補完パッケージがあるってことが
分かりました。いまのところあっちではいまでもmcomplete使っているって人はいませんでした。
0951デフォルトの名無しさん
2012/07/26(木) 13:35:28.26個人的にはiciclesとかmcompleteみたいなemacsの元々の性質生かしてるようなのが好きだなあ
0952デフォルトの名無しさん
2012/07/29(日) 21:56:48.72リモート環境ではなく、ローカル環境のパスを参照することはできますか?
たとえば(shell-command-to-string "ls")を実行すると、リモートシェルが使われて、
リモートのファイルリストが取得されてしまいます。
リモートファイルをEmacsで編集している最中に、
ローカルファイルから動的にキーワードを読み込んで貼り付けたいのですが。
0953デフォルトの名無しさん
2012/07/29(日) 22:28:52.88cd 関数を使うか default-directory 変数を直接いじるかして
ローカルディレクトリを指し示しておけばいいよ。
0954952
2012/07/29(日) 23:11:59.36あ、なるほど。ラッパーを被せてうまく行きました。ありがとうございます。
(defun shell-local-command-to-string (command-string local-path)
(interactive)
(let ((temp-dir default-directory) result)
(setq default-directory local-path)
(setq result (shell-command-to-string command-string))
(setq default-directory temp-dir)
result))
0955デフォルトの名無しさん
2012/07/29(日) 23:16:49.71let で直接 default-directory を設定しちゃっても問題ないよ。
スコープ抜ければ元の値に元通りだから。
(defun shell-local-command-to-string (command-string local-path)
(interactive)
(let ((default-directory local-path))
(shell-command-to-string command-string)))
0956デフォルトの名無しさん
2012/07/29(日) 23:37:54.55添削助かります。m(__)m
0957デフォルトの名無しさん
2012/08/01(水) 01:04:15.65やりたい事は、バッファに読み込まれたjsonファイルをコマンド一つで整形して、現在のバッファ内のデータと置き換えることです。
とりあえず
(defun reformat-buffer ()
(interactive)
(let ( (original-src (buffer-substring-no-properties (point-min) (point-max))) )
(delete-region (point-min) (point-max))
(shell-command (format "echo \'%s\' | python -m json.tool&" original-src) (current-buffer))))
↑で目的のことはできたのですが、*Message*バッファにコマンドが出力されるのがうざいので消したいのです。
いい方法はないでしょうか?
ちなみに shell-command-on-region というのだとマークを設定しないといけないのでやめました。
代わりにcall-process-regionを利用できないかと、
まず、↓でテストししたところ
(call-process "python" nil t nil "--help")
するとエラーになりバックトレース表示になってしまいました。
ちなみに
(shell-command "python --help")
は動いて↓も動きます。
(call-process "python2.6" nil t nil "--help")
関係ありそうなのが、バイナリ直接指定ではなく
シェル上でリンクが張られているバイナリの場合、
call-processでリンクを指定するとだめらしいということぐらいです。
どうしたらいいですかね・・。
0958デフォルトの名無しさん
2012/08/01(水) 01:53:41.600959デフォルトの名無しさん
2012/08/01(水) 02:08:32.88あ、それはわかってます。
ただ、引数で(point-min) (point-max)だけを渡しても、
markがセットされていないと、
"The mark is not set now, so there is no region"
ていわれてすぐ帰ってきちゃいます。
リージョンハイライト設定してる状態でマーク等をセットすると、ハイライトされちゃいますよね?おそらく。
それがいやなのでマーク自体をセットしないで、上記の方法をとっていました。
0960デフォルトの名無しさん
2012/08/01(水) 03:34:49.110961デフォルトの名無しさん
2012/08/01(水) 03:39:17.91プログラムがエラーで死ぬ場合とか考慮してないけど
(defun reformat-buffer ()
(interactive)
(call-process-region (point-min) (point-max) "python" t t nil "-m" "json.tool"))
> シェル上でリンクが張られているバイナリ
って意味わからんのだけどシンボリックリンクなら普通に動くはずだし
もしbashrcとかでalias張ってるって意味ならcall-processはシェル通さないから動かなくて当たり前
そうだとしたらPROGRAMをシェルへのパスにしてARGSを"-c" "python -m json.tool"にするとか?
> というのだとマークを設定しないといけないのでやめました。
> リージョンハイライト設定してる状態でマーク等をセットすると、ハイライトされちゃいますよね?
save-excursionっていう便利なフォームがあってね
0962デフォルトの名無しさん
2012/08/01(水) 03:42:12.63(call-process "python" nil t nil "--help")
0963デフォルトの名無しさん
2012/08/01(水) 03:55:58.11たとえば
la /bin/python
で
lrwxrwxrwx 1 usr-name None 13 Apr 25 20:04 /bin/python -> python2.6.exe*
となっているものはことごとくcall-processではダメでした。
gcc, g++ なども。
ようはリンク先を直指定するとおkみたいな。
0964デフォルトの名無しさん
2012/08/01(水) 03:59:56.35> call-process系使えればこれでパツイチのはず
> プログラムがエラーで死ぬ場合とか考慮してないけど
> (defun reformat-buffer ()
> (interactive)
> (call-process-region (point-min) (point-max) "python" t t nil "-m" "json.tool"))
>
うちもこうやるつもりだったのですが、やっぱりだめですね。
*message*には
reformat-buffer: Searching for program: no such file or directory, python
になってます。
> > シェル上でリンクが張られているバイナリ
> って意味わからんのだけどシンボリックリンクなら普通に動くはずだし
> もしbashrcとかでalias張ってるって意味ならcall-processはシェル通さないから動かなくて当たり前
> そうだとしたらPROGRAMをシェルへのパスにしてARGSを"-c" "python -m json.tool"にするとか?
そもそも shell-command内部ではcall-processしてるはずだから動かないはずないと思うのですが、どうしてだろう・・
シンボリックリンクを有効化するような何かが行われている?
> > リージョンハイライト設定してる状態でマーク等をセットすると、ハイライトされちゃいますよね?
> save-excursionっていう便利なフォームがあってね
あー、それしらないです、見てみます。
0965デフォルトの名無しさん
2012/08/01(水) 04:02:04.690966デフォルトの名無しさん
2012/08/01(水) 04:06:35.27http://d.hatena.ne.jp/takuya_1st/20110705/1309896867
0967デフォルトの名無しさん
2012/08/01(水) 05:21:20.37exec-pathに/binが入ってないとかかとも思ったけど同じ/binにあるpython2.6を直接指定だと動くってんならたぶん違うしな
もしcygwin特有の事情が原因なら俺にはお手上げだわ
>>964
> そもそも shell-command内部ではcall-processしてるはずだから動かないはずないと思うのですが、どうしてだろう・・
(shell-command "python --help") としたときに内部でcall-processを使って実行されるのは
sh -c 'python --help' とかだからpythonの場所は実行されたシェルが環境変数PATHを見て探すことになる
一方call-processで python --help を直に叩く場合は実行する前にまずemacsが変数exec-pathを見てpythonを探すのだが今回はそこで何かシクってるらしいというわけ
だからshell-commandだと動くというのなら
(call-process-region (point-min) (point-max) shell-file-name t t nil shell-command-switch "python -m json.tool"))
json.tool'
でとりあえず動くはずではある
0968デフォルトの名無しさん
2012/08/01(水) 10:55:14.05ptyとか
0969デフォルトの名無しさん
2012/08/01(水) 11:19:30.150970デフォルトの名無しさん
2012/08/01(水) 14:18:17.510971デフォルトの名無しさん
2012/08/01(水) 16:22:09.70シェル絡みは。
0972デフォルトの名無しさん
2012/08/03(金) 04:39:09.17記載のとおりで解決しました。
ありがとうございました。
0973デフォルトの名無しさん
2012/08/04(土) 01:29:34.87バッファをkillするってのは、どうすれば出来ます?
(while (buffer-modified-p)
(undo (current-buffer)))
とかやってからkillとしてみたのですが、
undo出来ないと怒られることが多くて
他の方法を探しています。
0974デフォルトの名無しさん
2012/08/04(土) 01:36:03.070975デフォルトの名無しさん
2012/08/04(土) 01:42:32.30ちょっと工夫が必要ですねー。やってみます。
なるほどー。でもカレントバッファ対象じゃないんで
0976975
2012/08/04(土) 01:43:22.07変な日本語ですみません
0977デフォルトの名無しさん
2012/08/04(土) 08:53:20.450978デフォルトの名無しさん
2012/09/02(日) 16:06:33.23の内容のstringからaaaaだけを抽出するにはどの関数を使えば出来ますか?
0979デフォルトの名無しさん
2012/09/02(日) 16:28:14.32-no-properties で apropos するといろいろバリエーションが見つかるかと
0980デフォルトの名無しさん
2012/09/02(日) 17:05:53.26出来ました。ありがとうございます。
0981デフォルトの名無しさん
2012/09/13(木) 19:32:44.10すみません聞いておきながら、なかなか取り掛かれず、
やっと書くことが出来ました。うまく言っているようです。
ありがとうございました。
レス数が950を超えています。1000を超えると書き込みができなくなります。