【叩かれて】Emacs Lisp道場【強くなれ】
emacs覧 / PC版 /みんなの評価 : ○
51 = :
'((spec
((:char-spec ascii :height any))))
の"height:"ってなんですか?
Lispのマニュアルに載ってますか?
52 = :
>51
それMeadowのフォント設定じゃない?
だったらそれはMeadow独自だから、
EmacsLispのマニュアルには載って無い。
53 = :
emacs ユーザーのスキルレベルというのはどんなもんなんでしょうか。
僕はぼんやりとですが、
初心者 寄せ集めでも.emacsを作れて、キーバインドができる
初級者 正規表現を操れて、簡単なelispが書ける
中級車 listを自由自在に操れて、人の書いたelispを書き直せる
上級者 マイナーモードやメジャーモードをスクラッチから書ける
こういうもんかなと思ってますが。
実際のところ、どうなんでしょう>上級者の方々
教えていただけると、励みになりますんで。ひとつ。
54 = :
× 中級車
○ 中級者
でした。
僕はまだまだ軽四レベルです。
55 = :
>>53
変なことを知りたがるなー
メジャーモードは簡単だから中級者だね。広瀬さんのページでも見てね。
上級者には ccl も求められるかも。
あと、XEmacs などの微妙な違い。
56 = :
>>55
> メジャーモードは簡単だから中級者だね。
マジスカ。
cclなんてとてもなんで、当分中級を目指します。
道は険しいなぁ…
57 = :
別に階級付けしなくても。
> 人の書いたelispを書き直せる
こんなん、元のlisp次第だしさ。
58 = :
中級は尊い
59 = :
>>52
いや、Meadowのフォント設定の例なのはわかっているんですけど、
:heightとかの lispの言語的にどーいう扱いかと。
lisp modeではhighlightされるし、なんか特別な扱いがあるのかと?
誰か教えてください。
60 = :
>>59
変数として評価すると自身を返すシンボル。
: が頭についているシンボルについてくわしく知りたいなら
keyword-symbols-constant-flag の docstring でも見てくださいな。
t や nil とは微妙に違う、こんなことをしたときに。
(setq t t)
(setq :foo :foo)
> 中級は尊い
61 = :
>>60
なるほどです。
そのまんま、constantなsymbolなのですね。
これを使う側が、
(:char-spec ascii :height any)
なんかで、リストの次の中身が何なのか、判断しているのですね。
("char-spec" ascii "height" any)
だと、文字列だから遅いんですか?
lispでは、
(eq :hage :hage)
は純粋にsymbolの比較onlyだから”軽い”ってことですか?
62 = :
>>61
その手のやつは plist-get を使ってると思うんで docstring でも見てくださいな。
(plist-get '(nnsoup pink) 'nnsoup) => pink
(plist-get '(:nnsoup pink) :nnsoup) => pink
(plist-get '("nnsoup" pink) "nnsoup") => nil
中級は尊い
65 = :
>>62
あぁ、なるほどね。
ありがとうございます。
すっきりしました。
もう一度Emacs Lispマニュアル読み直しに逝ってくるでつ。
67 = :
自分以外に便利だと思う人がいるとは思えないけど
(defun my-recenter (&optional arg)
(interactive "P")
(if (equal last-command 'recenter)
(recenter 0)
(recenter arg)
(setq this-command 'recenter)))
68 = :
>>67
いちお簡単に機能ぐらい書いといたほうが。
equal は eq でいいね。
last-command が recenter と my-recenterの間で
トグルするのを利用するわけか。
70 = :
>>67
これを機会に docstring 書く癖つけれ
71 = :
>>68,70
あ、僕もですね。肝心な説明を書いてませんでした。
>>66 は
ポイント付近の語をkill-ringにコピーします。
docstringは、さしずめ
"Copy a word at near the point to kill-ring."
といったところでしょうか。
細かい説明書きは英語ではつらい…ボソ
73 = :
>>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を使ってる場合は処理待ち増大で操作不能になる
可能性があるかもです。リビジョン番号肥大にも要注意です。
あと、複数メンバーのプロジェクトでは使わないほうが無難だと思います。
75 = :
いいんだけど、check inしたらアンドゥ情報が失われるというのはちょっと…
76 = :
確かに、です。
vc がよく分かってないままに書いたのがいけなかったです。
もちょっと調べます。
78 = :
(add-hook 'foobar-mode (function (lambda () (show-paren-mode 1))))
79 = :
>>78
(add-hook 'foobar-mode-hook #'(lambda () (show-paren-mode 1)))
でしょ?
foobar-mode でなく
foobar-mode-hook と。一般的にですが。
81 = :
初心者 寄せ集めでも.emacsを作れて、キーバインドができる
初級者 正規表現を操れて、簡単なelispが書ける
listを自由自在に操れて、人の書いたelispを書き直せる
マイナーモードやメジャーモードをスクラッチから書ける
中級者 Emacsにパッチをあてはじめる
上級者 Emacsをスクラッチから書ける
82 = :
中級は尊い。
83 = :
>>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 = :
>>83
訂正するほどじゃない。
85 = :
スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。
87 = :
>81 漏れはいまだ初心者でつね
88 = :
>>81
上級者というのはxyzzyの亀井さんくらいのレベルなのか…。
道は遠い…というより一生かかってもムリ
89 = :
初心者 寄せ集めでも女を集めて、ハーレム を作れる
初級者 性器表現を操れて、簡単なエロ本が書ける
チムポを自由自在に操れて、人に汚された女を調教し直せる
S モードや M モードをスクラッチから調教できる
中級者 少女の頃から育成をはじめる
上級者 女を卵子から作り始める
90 = :
>>89
はい、それから~
91 = :
定義厨は失せて。
92 = :
>>91
なんか Emacsスレのほうに飛び火してるみたいだが。
93 = :
>>89
初心者のハードルやけに高いな、おい。
94 = :
>>85
> スタイルの問題でしょ。emacs/lisp/*.el 見ても両方使われてる。
http://www.mew.org/~kazu/doc/elisp/function.html
95 = :
>>94
結局「スタイルの問題」じゃないの?
96 = :
>94
kazuのeispは信じられない程アレなので参考にならない。
97 = :
#' ではなく ' を使うと、バイトコンパイルされない場合がある。ってことでしょ。
98 = :
>>96
あ、mew 使ってないんでよく知らないんだけどどのへんがアレなの?
99 = :
>>97
でもこのスレでは生のlambdaと functionで囲んだのだけ扱ってて、
quoteは関係無かったからさ。なのに 94が変な反応するから。
100 = :
今日、はじめて包囲アドバイスなるものを使ってみマスタ。
強力すぎてちょっと怖いけど、試しに
;; デフォルト動作でそのウィンドウも消すようにする。
(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 ウィンドウなんかもそんな挙動になってくれるからスゴイ楽でし。
でもやっぱし怖いす。
みんなの評価 : ○
類似してるかもしれないスレッド
- 【熱く】お前のEmacsにはまった理由【語れ】 (577) - [36%] - 2021/8/28 17:30 ○
- 「Emacsは消滅すべき」、ゴスリング氏 (127) - [17%] - 2023/1/12 15:45
トップメニューへ / →のくす牧場書庫について