のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,540,988人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

【叩かれて】Emacs Lisp道場【強くなれ】

emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
51 : 名無しさん@お腹 - 03/09/30 22:28 (+2,-30,-60)

'((spec
((:char-spec ascii :height any))))

の"height:"ってなんですか?

Lispのマニュアルに載ってますか?
52 : 名無しさん@お腹 - 03/10/01 04:08 (+4,-29,-28)
>51
それMeadowのフォント設定じゃない?
だったらそれはMeadow独自だから、
EmacsLispのマニュアルには載って無い。
53 : 厨房な質問なんで - 03/10/01 13:47 (+96,+30,-162)
emacs ユーザーのスキルレベルというのはどんなもんなんでしょうか。

僕はぼんやりとですが、

初心者 寄せ集めでも.emacsを作れて、キーバインドができる
初級者 正規表現を操れて、簡単なelispが書ける
中級車 listを自由自在に操れて、人の書いたelispを書き直せる
上級者 マイナーモードやメジャーモードをスクラッチから書ける

こういうもんかなと思ってますが。
実際のところ、どうなんでしょう>上級者の方々

教えていただけると、励みになりますんで。ひとつ。
54 : 厨房な質問なんで - 03/10/01 13:49 (+57,+29,-2)
× 中級車
○ 中級者

でした。
僕はまだまだ軽四レベルです。
55 : 名無しさん@お腹 - 03/10/01 16:31 (+104,+29,-32)
>>53
変なことを知りたがるなー

メジャーモードは簡単だから中級者だね。広瀬さんのページでも見てね。
上級者には ccl も求められるかも。
あと、XEmacs などの微妙な違い。
56 : 厨房な質問なんで - 03/10/01 16:56 (+71,+29,-17)
>>55
> メジャーモードは簡単だから中級者だね。
マジスカ。
cclなんてとてもなんで、当分中級を目指します。
道は険しいなぁ…
57 : 名無しさん@お腹 - 03/10/01 16:57 (+54,+26,-16)
別に階級付けしなくても。
> 人の書いたelispを書き直せる
こんなん、元のlisp次第だしさ。
58 : 名無しさん@お腹 - 03/10/01 19:41 (+46,+28,-1)
中級は尊い
59 : 名無しさん@お腹 - 03/10/01 22:45 (+30,-30,-33)
>>52

いや、Meadowのフォント設定の例なのはわかっているんですけど、
:heightとかの lispの言語的にどーいう扱いかと。

lisp modeではhighlightされるし、なんか特別な扱いがあるのかと?

誰か教えてください。
60 : kaoru - 03/10/02 00:23 (+10,-30,-81)
>>59
変数として評価すると自身を返すシンボル。

: が頭についているシンボルについてくわしく知りたいなら
keyword-symbols-constant-flag の docstring でも見てくださいな。

t や nil とは微妙に違う、こんなことをしたときに。
(setq t t)
(setq :foo :foo)

> 中級は尊い
61 : 59 - 03/10/02 23:09 (+10,-30,-138)

>>60

なるほどです。
そのまんま、constantなsymbolなのですね。

これを使う側が、
(:char-spec ascii :height any)
なんかで、リストの次の中身が何なのか、判断しているのですね。

("char-spec" ascii "height" any)
だと、文字列だから遅いんですか?

lispでは、
(eq :hage :hage)
は純粋にsymbolの比較onlyだから”軽い”ってことですか?
62 : kaoru - 03/10/03 17:01 (+42,-30,-79)
>>61
その手のやつは plist-get を使ってると思うんで docstring でも見てくださいな。

(plist-get '(nnsoup pink) 'nnsoup) => pink
(plist-get '(:nnsoup pink) :nnsoup) => pink
(plist-get '("nnsoup" pink) "nnsoup") => nil

中級は尊い
63 : 名無しさん@お腹 - 03/10/03 21:37 (+0,-29,-28)
>>62
59 じゃないけど質問です。
plist で、普通のシンボルじゃなくって :hoge とかをよく使うのはなんでですか?
自分では、わかりやすいからなのかなーとか思ってます。
64 : 名無しさん@お腹 - 03/10/03 21:48 (-6,-29,+0)
It's fukin' CLism.
65 : 59 - 03/10/03 23:46 (+63,+29,-7)

>>62

あぁ、なるほどね。
ありがとうございます。

すっきりしました。

もう一度Emacs Lispマニュアル読み直しに逝ってくるでつ。
66 : 名無しさん@お腹 - 03/10/04 21:55 (+19,-30,-228)
長い文字列をコピーすることが多いので、こんなのを作ってみました。
一応、C-u で コピー時に含める文字を追加できます。
デフォルトの状態で[と]を区切文字にできないのがちょっとナニですが。

(defvar my-copy-word-include-chars "a-zA-z0-9\-")
(defun my-copy-word (&optional arg)
(interactive "P")
(let ((skip-chars (concat my-copy-word-include-chars
(when arg
(read-string "inc. chars: "))))
beg end str)
(save-excursion
(skip-chars-backward skip-chars)
(setq beg (point))
(skip-chars-forward skip-chars)
(setq end (point)))
(setq str (buffer-substring-no-properties beg end))
(kill-new str)
(message "copied \"%s\"" str)
))

;; (global-set-key [?\C-=] 'my-copy-word)とか
67 : 名無しさん@お腹 - 03/10/05 03:05 (+17,-30,-149)
自分以外に便利だと思う人がいるとは思えないけど
(defun my-recenter (&optional arg)
(interactive "P")
(if (equal last-command 'recenter)
(recenter 0)
(recenter arg)
(setq this-command 'recenter)))
68 : 名無しさん@お腹 - 03/10/05 03:25 (+10,-30,-75)
>>67
いちお簡単に機能ぐらい書いといたほうが。
equal は eq でいいね。
last-command が recenter と my-recenterの間で
トグルするのを利用するわけか。
69 : 名無しさん@お腹 - 03/10/05 13:03 (+0,-29,-2)
>>67
reposition-window ってのもあるけどな。
70 : 名無しさん@お腹 - 03/10/05 13:26 (+0,-29,-15)
>>67
これを機会に docstring 書く癖つけれ
71 : 66 - 03/10/05 18:14 (+5,-30,-66)
>>68,70
あ、僕もですね。肝心な説明を書いてませんでした。

>>66
ポイント付近の語をkill-ringにコピーします。

docstringは、さしずめ
"Copy a word at near the point to kill-ring."
といったところでしょうか。

細かい説明書きは英語ではつらい…ボソ

72 : 名無しさん@お腹 - 03/10/06 09:40 (-17,-30,+0)
----BEGIN BASE64----(auto-vc-checkin.el.gz)
H4sICAy4gD8AA2F1dG8tdmMtY2hlY2tpbi5lbAClVk1v2zgQPSdA/sPAl0jbyknR
WwwUcINFsUCQFmnaRY8UObK5kUiHpOTqsr+9Q4p0VNtx3NZIAEnz9ebN40izGbDW
6aLjBV8if5BqijUURREeN8xJDtGwKKSC1qKAjp+dzmb+f18w1w1aWEu3hPn7zx9v
vtz/ffMNbj/Cv/O7u/nt/bdpiLxfSgtWV27NDAJdC2mdkWXrqEKrBBpwS4QPt1/g
Ayo0rIZPbVkTnhvJUVmkND7RDK5106ByzPRXw6MhN/1V2hzuo2i0wAHP9chKofgd
eYCiFUfADk0PQpMdLOuwKNuqQjOlSrpdLF9Dr9uQhTMFTPzXWkfomfupZsi01Gto
mOrBSU+T0yHfdEPoP8o6VtdXmwefWp/KNyNr4klRRK2ZKFbMLc8Jn5AGudOmfw1M
CSh7h34Eq+DtQFYhi0BLfmIKMCenVciJxE9d67VvCr+vDFortbJDDWrIwP8XU2wY
t0/w/C8z+NhSNjjfmn7+5GLRPW6LozCcGs6BfFCxkvCtl+hH4QGQ7YVo3j0fTbZN
dFTlaOYb8t/uYf1AxTBprlvlirJPT+FtPrCRxCcwyY5EZaBjRnp4Z6eZwIrujkz7
5vLsFGDy123blJSm7H/SjlfyIMIQCLraamWSP1/QM6dkHfNrVdANNMho1luuiVqt
4Prr54NJ/TB/Oend9eGkfDjKIel878ElXraCLjp+Mah0MoCJ+wD8OiFthKPu+av1
ggBayxb4pBA6a32AFCZI0kejaNX8yhTh0nfUsAcsUljcD0WtqcDOORnFpsLBQuXB
6NZJFeu2aqes0MWYjiz3PWcBN+NOdjg8qNFBlkU6n6OZXE+ykvEHpJ2QkX1zHeH7
lVMo1iBkvDUGvWKDJfc/X4hKca3EcOmPHk34Kg3M7xg13FBX0SfL8BFSoXNyj3nI
Eg70Hp15mCM5HYHOKxPGXaZwwnFU/BCV1DIJsSQjqfYo58QlLjwBdG6eCNCq7vf2
TV4v9B1W2h/3/TsdaBqbuaK3HSi6JKGlDpxPnzzzJF0mOnohp0UUoQz6jabRc8hY
RVLdWRFBu8xF9QZC4ts5qiwJemtrZm+K4/arh3tCef5U7gldRgtlR8mwM+MwBFlB
9g52sB/cCidxGFLxGpmNJAZrNL70ziJuXh2qMRTx3wZ6vGEHmlZGL1QqdHgH5cfi
uczzSGTQjcK4l8cyUAJGR5VU5PP57x04H7lNOp5Wtv8aoPXjAXdSPPNNsvc7leIs
kNJJYT8A6fvoYgYLAAA=
----END BASE64----
73 : 72 - 03/10/06 09:41 (+7,-30,+0)
>>72
CVS or RCSをvc で使用時、ついついチェックインを忘れてしまい、古い版が
欲しいときに戻せないという歯がゆい思いをしました。

これを防ぐためにファイルセーブx回に1回は自動的にチェックインするelisp
を書いてみました。要vcで、CVSと RCSにしか対応していません。
使うには .emacsに以下を追加します。

(require 'auto-vc-checkin)
(setq auto-vc-checkin-rcs t) ;; RCSで有効にする
(setq auto-vc-checkin-cvs t) ;; CVSで有効にする
;; 例:セーブ3回につき、1回チェックイン
(setq auto-vc-checkin-save-count-by-checkin 3)

RCSの場合はチェックインと同時にチェックアウトしますので、初回チェック
アウト後はCVSと同じような使用感になると思います。

なお、auto-save-buffers.elを使ってる場合は処理待ち増大で操作不能になる
可能性があるかもです。リビジョン番号肥大にも要注意です。

あと、複数メンバーのプロジェクトでは使わないほうが無難だと思います。
74 : 72 - 03/10/06 09:50 (-1,-29,-12)
>>73
× RCSの場合はチェックインと同時にチェックアウトしますので
○ RCSの場合はチェックイン直後にチェックアウトしますので

でし。
75 : 名無しさん@お腹 - 03/10/11 15:31 (+57,+29,-5)
いいんだけど、check inしたらアンドゥ情報が失われるというのはちょっと…
76 : 72 - 03/10/13 19:49 (+57,+29,-18)
確かに、です。
vc がよく分かってないままに書いたのがいけなかったです。
もちょっと調べます。
77 : 名無しさん@お腹 - 03/10/14 07:00 (-1,-29,-37)
modeによってshow-paren-mode を切り替えたいのですが
lispがわかりません どのような設定になるのでしょうか?
78 : 名無しさん@お腹 - 03/10/14 07:05 (+4,-30,-44)
(add-hook 'foobar-mode (function (lambda () (show-paren-mode 1))))
79 : 名無しさん@お腹 - 03/10/14 08:44 (+10,-30,-60)
>>78
(add-hook 'foobar-mode-hook #'(lambda () (show-paren-mode 1)))
でしょ?
foobar-mode でなく
foobar-mode-hook と。一般的にですが。
80 : 名無しさん@お腹 - 03/10/14 17:11 (-6,-29,+0)
78-79 有難う御座います
81 : 名無しさん@お腹 - 03/10/16 07:53 (+128,+29,-133)
初心者 寄せ集めでも.emacsを作れて、キーバインドができる
初級者 正規表現を操れて、簡単なelispが書ける
    listを自由自在に操れて、人の書いたelispを書き直せる
    マイナーモードやメジャーモードをスクラッチから書ける
中級者 Emacsにパッチをあてはじめる
上級者 Emacsをスクラッチから書ける
82 : 名無しさん@お腹 - 03/10/16 16:29 (+46,+28,-1)
中級は尊い。
83 : 名無しさん@お腹 - 03/10/16 17:58 (+34,-30,-156)
>>79
> (add-hook 'foobar-mode-hook #'(lambda () (show-paren-mode 1)))

(add-hook 'foobar-mode-hook (lambda () (show-paren-mode 1)))
ではないの?


(defmacro lambda (&rest cdr)
:
(list 'function (cons 'lambda cdr)))
だじょ。
84 : 名無しさん@お腹 - 03/10/16 18:18 (+54,+27,+0)
>>83
訂正するほどじゃない。
85 : 名無しさん@お腹 - 03/10/16 18:21 (+2,-29,-5)
スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。
86 : 名無しさん@お腹 - 03/10/16 18:42 (-1,-29,-8)
#' を付けるほうが好きだけど、
nemacsからも利用する設定ファイルには使えない悲しさ。
87 : 名無しさん@お腹 - 03/10/16 19:01 (+65,+29,-1)
>81 漏れはいまだ初心者でつね
88 : 名無しさん@お腹 - 03/10/18 01:53 (+75,+29,-11)
>>81
上級者というのはxyzzyの亀井さんくらいのレベルなのか…。
道は遠い…というより一生かかってもムリ
89 : 名無しさん@お腹 - 03/10/18 21:16 (+126,+30,-61)
初心者 寄せ集めでも女を集めて、ハーレム を作れる
初級者 性器表現を操れて、簡単なエロ本が書ける
    チムポを自由自在に操れて、人に汚された女を調教し直せる
    S モードや M モードをスクラッチから調教できる
中級者 少女の頃から育成をはじめる
上級者 女を卵子から作り始める
90 : 名無しさん@お腹 - 03/10/18 21:25 (+63,+28,+1)
>>89
はい、それから~
91 : 名無しさん@お腹 - 03/10/18 21:34 (+81,+25,-2)
定義厨は失せて。
92 : 名無しさん@お腹 - 03/10/21 14:05 (+67,+28,-17)
>>91
なんか Emacsスレのほうに飛び火してるみたいだが。
93 : 名無しさん@お腹 - 03/10/21 19:38 (+73,+28,+0)
>>89
初心者のハードルやけに高いな、おい。
94 : 名無しさん@お腹 - 03/10/22 10:54 (+46,-30,-24)
>>85
> スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。

http://www.mew.org/~kazu/doc/elisp/function.html
95 : 名無しさん@お腹 - 03/10/22 11:11 (+62,+29,-6)
>>94
結局「スタイルの問題」じゃないの?
96 : 名無しさん@お腹 - 03/10/22 11:26 (+67,-10,-3)
>94
kazuのeispは信じられない程アレなので参考にならない。
97 : 名無しさん@お腹 - 03/10/22 11:43 (+2,-29,-2)
#' ではなく ' を使うと、バイトコンパイルされない場合がある。ってことでしょ。
98 : 名無しさん@お腹 - 03/10/22 11:51 (+64,+28,-34)
>>96
あ、mew 使ってないんでよく知らないんだけどどのへんがアレなの?
99 : 名無しさん@お腹 - 03/10/22 13:34 (+32,-29,-17)
>>97
でもこのスレでは生のlambdaと functionで囲んだのだけ扱ってて、
quoteは関係無かったからさ。なのに 94が変な反応するから。
100 : 名無しさん@お腹 - 03/10/23 12:00 (+3,-30,-106)
今日、はじめて包囲アドバイスなるものを使ってみマスタ。
強力すぎてちょっと怖いけど、試しに

;; デフォルト動作でそのウィンドウも消すようにする。
(defadvice quit-window (around kill-window-adv activate)
"quit-window with kill selected window"
(unless (ad-get-arg 1)
(ad-set-arg 1 (selected-window)))
ad-do-it)

こんな風なのを書いてみた。
たとえばapropos のウィンドウで q したときなんかはウィンドウが消えてくれます。
コレ一発で vc の log ウィンドウなんかもそんな挙動になってくれるからスゴイ楽でし。

でもやっぱし怖いす。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について