Emacs Lispのスレです。
- GNU Emacs Lisp Reference Manual
http://www.gnu.org/software/emacs/manual/elisp.html
- An Introduction to Programming in Emacs Lisp
http://www.gnu.org/software/emacs/manual/eintr.html
- Emacs Wiki の "EmacsLisp"
http://www.emacswiki.org/cgi-bin/wiki/EmacsLisp
- GNU Emacs
http://www.gnu.org/software/emacs/emacs.html
探検
【GNU】Emacs Lisp 【Elisp】
2013/10/20(日) 07:50:56.93
161デフォルトの名無しさん
2015/01/13(火) 16:45:00.86ID:NDLkVK0s >>160
コメントありがとうございます。
ご提示いただいたソースを読みたいと思います。
ちなみに、
(add-hook ’post-command-hook ’(lambda () (when hoge-mode (hoge-mode -1))))
のような処理を意図しております。
コメントありがとうございます。
ご提示いただいたソースを読みたいと思います。
ちなみに、
(add-hook ’post-command-hook ’(lambda () (when hoge-mode (hoge-mode -1))))
のような処理を意図しております。
162デフォルトの名無しさん
2015/01/13(火) 17:30:12.89ID:8CwIIHPp >>161
> (add-hook ’post-command-hook ’(lambda () (when hoge-mode (hoge-mode -1))))
それなら auto-complete.el の例は関係ないかな…
post-command-hook 使うか timer で意図しないコマンドを監視するかしかないのではなかろうか。
何やろうとしてるか分からないから余計なことかもしれないけど、
minor-mode を使うという発想をやめるのも解に繋がるかもしれないよ。
> (add-hook ’post-command-hook ’(lambda () (when hoge-mode (hoge-mode -1))))
それなら auto-complete.el の例は関係ないかな…
post-command-hook 使うか timer で意図しないコマンドを監視するかしかないのではなかろうか。
何やろうとしてるか分からないから余計なことかもしれないけど、
minor-mode を使うという発想をやめるのも解に繋がるかもしれないよ。
163デフォルトの名無しさん
2015/01/13(火) 17:45:35.15ID:NDLkVK0s >>162
ありがとうございます。
minor-mode を使うなら、あまり選択肢がないのですね。
> minor-mode を使わない
なるほど!なんとなく、とりあえずでマイナーモードを利用していたのですが、使わないという発想も大事なのですね。
ありがとうございます。
minor-mode を使うなら、あまり選択肢がないのですね。
> minor-mode を使わない
なるほど!なんとなく、とりあえずでマイナーモードを利用していたのですが、使わないという発想も大事なのですね。
164デフォルトの名無しさん
2015/01/13(火) 18:03:40.40ID:Wsh3Ajof そのものずばり何をしたいか書いちゃった方がいい気もする
165デフォルトの名無しさん
2015/01/13(火) 19:16:25.85ID:NDLkVK0s はい、ありがとうございます。
自分用に ace-jump を拡張してます。
勉強のため、通常の ace-jump 部分も最初から作っております。
今回は、hoge-jump というマイナーモードを定義しておりました。
マイナーモードという形を選択した理由は、なんとなくなのですが、他に、マイナーモードを抜ける時点に hook をかけたいという理由があります。
具体的には、hoge-jump によってバッファに付加したオーバーレイを、hoge-jump の去り際にリムーブしております。
(ただ、本家の ace-jump もマイナーモードを使ってないのですね。
本家のほうをもっと検討したいと思います)。
自分用に ace-jump を拡張してます。
勉強のため、通常の ace-jump 部分も最初から作っております。
今回は、hoge-jump というマイナーモードを定義しておりました。
マイナーモードという形を選択した理由は、なんとなくなのですが、他に、マイナーモードを抜ける時点に hook をかけたいという理由があります。
具体的には、hoge-jump によってバッファに付加したオーバーレイを、hoge-jump の去り際にリムーブしております。
(ただ、本家の ace-jump もマイナーモードを使ってないのですね。
本家のほうをもっと検討したいと思います)。
166デフォルトの名無しさん
2015/01/17(土) 10:12:31.67ID:IkrGJUzn ace-jumpで
1. (ace-jump-char-mode) 実行
2. Query char を mini-bufferから選択
3. a-Zの選択
の2の作業を省いて、
1. (ace-jump-char-selected-mode "A") みたいなの作って実行
2. a-Zの選択
のように。単語を指定した状態で実行したいのですが、
やり方が分からず。
わかる方いらっしゃいますか?
1. (ace-jump-char-mode) 実行
2. Query char を mini-bufferから選択
3. a-Zの選択
の2の作業を省いて、
1. (ace-jump-char-selected-mode "A") みたいなの作って実行
2. a-Zの選択
のように。単語を指定した状態で実行したいのですが、
やり方が分からず。
わかる方いらっしゃいますか?
167デフォルトの名無しさん
2015/01/17(土) 15:43:11.36ID:mj45QIEF >>166
ace-jump 使ってないからコメントしづらいけど
数日経ってこの調子だとすごく低いレベルで推移もしていないように見える。(まるで成長していない)
何をしようとしてどうだめだったのか書きたまえ。
ソースを見る限りだと ace-jump-char-mode の引数に目的の char を渡すだけ
にも思える。
(ace-jump-char-mode ?A)
ace-jump 使ってないからコメントしづらいけど
数日経ってこの調子だとすごく低いレベルで推移もしていないように見える。(まるで成長していない)
何をしようとしてどうだめだったのか書きたまえ。
ソースを見る限りだと ace-jump-char-mode の引数に目的の char を渡すだけ
にも思える。
(ace-jump-char-mode ?A)
168デフォルトの名無しさん
2015/01/17(土) 20:04:09.96ID:dLLfAZ37 >>167
ちょっとまて、165 は私で別人ですよ。
ちょっとまて、165 は私で別人ですよ。
169168
2015/01/17(土) 20:58:25.28ID:654N0mRZ 私のほうは、結局マイナーモードを使うにしろ使わないにしろ、keyboard-quit のタイミングを知るには post-command-hook に任意の hook をかけるしかないな、との考えに至りました。
なので、マイナーモードを使用し、それに入るタイミングと出るタイミングで add-hook と remove-hook をおこなうよう設定する予定です。
なので、マイナーモードを使用し、それに入るタイミングと出るタイミングで add-hook と remove-hook をおこなうよう設定する予定です。
171デフォルトの名無しさん
2015/01/19(月) 13:52:05.04ID:9dIDW3L4172デフォルトの名無しさん
2015/01/19(月) 14:00:29.29ID:KroxEeJe 釣り質問としては85点くらい
174デフォルトの名無しさん
2015/01/20(火) 20:54:08.37ID:boIocfqk (condition-case err
(keyboard-quit)
(quit
(message "My Quit! %s" err)))
(condition-case err
(keyboard-quit)
(error
(message "Not Quit")))
(keyboard-quit)
(quit
(message "My Quit! %s" err)))
(condition-case err
(keyboard-quit)
(error
(message "Not Quit")))
175デフォルトの名無しさん
2015/01/21(水) 07:37:45.06ID:ydgtfCH8 アッシー
176デフォルトの名無しさん
2015/01/23(金) 00:28:52.51ID:A+ui+mzv symbolp()は'symと:symの両方tを返すけど
:symこれのみ真を返す述語あったっけ?
:symこれのみ真を返す述語あったっけ?
177デフォルトの名無しさん
2015/01/23(金) 00:38:40.51ID:KyQRIuOJ keywordp
178デフォルトの名無しさん
2015/01/23(金) 02:16:59.21ID:+QZK+ImI >>176
keywordp
keywordp
179デフォルトの名無しさん
2015/01/23(金) 13:03:20.01ID:A+ui+mzv180デフォルトの名無しさん
2015/01/24(土) 13:37:32.69ID:rWwk77U6 どういたしまして
181デフォルトの名無しさん
2015/03/02(月) 23:35:21.61ID:b1MuukTF swift-modeどこかに落ちてませんか?
182デフォルトの名無しさん
2015/03/03(火) 00:02:29.53ID:3dr1cPx7 検索したら一瞬で出てくるが
183デフォルトの名無しさん
2015/03/17(火) 15:43:40.52ID:oOjriwkf if とか and って special form だとおもうんだけれど、これ無しの普通の関数のみで条件によって実行するしないを含むようなプログラムって書ける?
haskell みたいに、遅延評価を行えば可能らしいけれど。
聞く場所間違ってたらすまん
haskell みたいに、遅延評価を行えば可能らしいけれど。
聞く場所間違ってたらすまん
184デフォルトの名無しさん
2015/03/17(火) 16:21:51.69ID:StR3CX22185デフォルトの名無しさん
2015/03/17(火) 19:52:02.87ID:u03+oswx 特殊形式は無理じゃね
186デフォルトの名無しさん
2015/03/18(水) 00:49:30.65ID:smUcV4wp 関数だと引数は全部実行というか評価されてしまうが、
マクロでなんとでもなる
(defmacro myif (pred good bad)
(list 'if pred good bad))
もしくは略記法として
(defmacro myif (pred good bad)
`(if ,pred ,good ,bad))
とすると、
(myif t (insert "ok") (insert "ng"))
と書ける。こうやってS式を返すような関数と同様にmyifを「マクロとして」定義すると、
(myif ...)というフォームはまず最初に「展開」されてから実行される。ここだと
(if t (insert "ok") (insert "ng")) と最初から書いてあったのと同じことになって、
nbの部分は実行されないという寸法。これはつまらない例だが。
もうちょっと面白い例だと、
(defmacro awhen (pred &rest body)
`(let ((it ,pred))
(when it
,@body)))
とすると条件式の結果を本体(body)の中でitとして使えるとか
(awhen "hogehoge" (message it))
special formとマクロの違いは組み込みかどうかぐらい。
こんな感じで色々制御構文を作ったり、遅延評価のを実装したりもできるが、
あんまり濫用すると自分でもわからなくなってくる諸刃の剣
長文御免
マクロでなんとでもなる
(defmacro myif (pred good bad)
(list 'if pred good bad))
もしくは略記法として
(defmacro myif (pred good bad)
`(if ,pred ,good ,bad))
とすると、
(myif t (insert "ok") (insert "ng"))
と書ける。こうやってS式を返すような関数と同様にmyifを「マクロとして」定義すると、
(myif ...)というフォームはまず最初に「展開」されてから実行される。ここだと
(if t (insert "ok") (insert "ng")) と最初から書いてあったのと同じことになって、
nbの部分は実行されないという寸法。これはつまらない例だが。
もうちょっと面白い例だと、
(defmacro awhen (pred &rest body)
`(let ((it ,pred))
(when it
,@body)))
とすると条件式の結果を本体(body)の中でitとして使えるとか
(awhen "hogehoge" (message it))
special formとマクロの違いは組み込みかどうかぐらい。
こんな感じで色々制御構文を作ったり、遅延評価のを実装したりもできるが、
あんまり濫用すると自分でもわからなくなってくる諸刃の剣
長文御免
187183
2015/03/18(水) 01:01:43.13ID:nZSu0bqF188デフォルトの名無しさん
2015/03/18(水) 01:09:21.60ID:dNB2wbku special form を使わずに if 実装って elisp では可能なんだろか…
macro 使ったとしても結局 if 的なことするためには置き換え先で special form 使うことになるよね。
macro 使ったとしても結局 if 的なことするためには置き換え先で special form 使うことになるよね。
189183
2015/03/18(水) 01:19:26.33ID:nZSu0bqF ID 変わってるかもですが 183 です。
>>186
内部的に特殊形式を利用しているので、申し訳なくも私がもともと期待していたものとは違うのですが、
特殊形式であっても独自拡張可能というのは面白いですね。
私は主に Python や C/C++ の世界に住んでいるので、例えば条件付トレースなど、
可能であれば条件式によって引数を評価せずに処理をしたいときにあきらめてしまうことがあります。
(書かなくてもわかるかとも思いますが) Python の例で言えばこんな感じです。
def conditional_trace(ctrl, msg):
if ctrl: print msg
return
conditional_trace(True, heavy_message_generate())
そもそも Python の世界なんて、コストは大して気にしない場合が多いのですが、
貧乏性でして。あと heavy_message_generate に副作用があったりすると困ります。
こういう意味では C/C++ のプリプロセッサのほうが自由度が高いですね。言語の外にあるだけあって。
条件後出しで申し訳ないです。でも、macro の威力がわかってとても良かったです。ありがとうございます。
ちなみに、when もマクロであって、マクロの展開では評価されないことに依存したものですね。
基礎的な機能であっても、special form をたくさん作るよりはマクロで構文糖衣するということで、これも面白いです。
>>186
内部的に特殊形式を利用しているので、申し訳なくも私がもともと期待していたものとは違うのですが、
特殊形式であっても独自拡張可能というのは面白いですね。
私は主に Python や C/C++ の世界に住んでいるので、例えば条件付トレースなど、
可能であれば条件式によって引数を評価せずに処理をしたいときにあきらめてしまうことがあります。
(書かなくてもわかるかとも思いますが) Python の例で言えばこんな感じです。
def conditional_trace(ctrl, msg):
if ctrl: print msg
return
conditional_trace(True, heavy_message_generate())
そもそも Python の世界なんて、コストは大して気にしない場合が多いのですが、
貧乏性でして。あと heavy_message_generate に副作用があったりすると困ります。
こういう意味では C/C++ のプリプロセッサのほうが自由度が高いですね。言語の外にあるだけあって。
条件後出しで申し訳ないです。でも、macro の威力がわかってとても良かったです。ありがとうございます。
ちなみに、when もマクロであって、マクロの展開では評価されないことに依存したものですね。
基礎的な機能であっても、special form をたくさん作るよりはマクロで構文糖衣するということで、これも面白いです。
190183
2015/03/18(水) 01:50:01.10ID:nZSu0bqF >>188
そうそう。それです。教えていただいた結果、私の疑問もそれになりました。
true, false ではなく、car, (lambda (x) (car (cdr x))) を渡すことになりますが、
macro を遅延評価代わりに使って、分岐っぽいものが実現できるようです。
(defmacro cdrif (idx good bad)
(funcall idx (list good bad)))
(cdrif car (insert "ok") (insert "ng"))
ok
(cdrif (lambda (x) (car (cdr x))) (insert "ok") (insert "ng"))
ng
あとは、任意の(真偽)値から car, (lambda (x) (car (cdr x))) に変換できれば、
elisp で if を自作できることになるんですかねぇ。
ちょっと自信が無いですが。
そうそう。それです。教えていただいた結果、私の疑問もそれになりました。
true, false ではなく、car, (lambda (x) (car (cdr x))) を渡すことになりますが、
macro を遅延評価代わりに使って、分岐っぽいものが実現できるようです。
(defmacro cdrif (idx good bad)
(funcall idx (list good bad)))
(cdrif car (insert "ok") (insert "ng"))
ok
(cdrif (lambda (x) (car (cdr x))) (insert "ok") (insert "ng"))
ng
あとは、任意の(真偽)値から car, (lambda (x) (car (cdr x))) に変換できれば、
elisp で if を自作できることになるんですかねぇ。
ちょっと自信が無いですが。
191183
2015/03/18(水) 02:28:36.05ID:nZSu0bqF (defmacro cdrifx (bool good bad)
(funcall
(car
(cdr
(assq bool (list '(t car) '(nil (lambda (x) (car (cdr x))))))))
(list good bad)))
cdrifx
(cdrifx t (insert "ok") (insert "ng"))
ok
(cdrifx nil (insert "ok") (insert "ng"))
ng
assq を使ってしまえば出来ました。(assq は C built-in function.)
仮に lisp のみで assq を実装すると if が必要になるかもしれませんが、
概念的には単なる写像というか単純なマッピング関数なのでありなのかなぁ。
チラ裏になってしまい申し訳ない。
(funcall
(car
(cdr
(assq bool (list '(t car) '(nil (lambda (x) (car (cdr x))))))))
(list good bad)))
cdrifx
(cdrifx t (insert "ok") (insert "ng"))
ok
(cdrifx nil (insert "ok") (insert "ng"))
ng
assq を使ってしまえば出来ました。(assq は C built-in function.)
仮に lisp のみで assq を実装すると if が必要になるかもしれませんが、
概念的には単なる写像というか単純なマッピング関数なのでありなのかなぁ。
チラ裏になってしまい申し訳ない。
192デフォルトの名無しさん
2015/03/18(水) 03:39:54.16ID:smUcV4wp symbol-property-listでの力技を作ってしまおうかと思ったら先を越されてた。
>>189
もとの疑問を離れてその目的ならということだけど、
単純にその重い処理を関数として渡してしまうのがいいのでは。
よくthunkと言われる方法。
(defun conditional-trace (x thunk)
(when x (funcall thunk))
としておいて
(conditional-trace t (lambda () (heavy-message-generate))
とか
(conditional-trace t #'heavy-message-generate)
とか。
そのpythonの例でも同様に
def conditional_trace(ctrl, func):
if ctrl: print func()
return
conditional_trace(True, lambda:heavy_message_generate())
conditional_trace(True, heavy_message_generate)
遅延評価する言語も中身はこういう感じの実装だったと思う。
C/C++は関数が第一級データ型じゃないので相当面倒になるが、
頑張ればできるはず…(最近のC++にはラムダ式入ったみたいだけど)。
C/C++のプロプロセッサだと動的に条件を変えたくなったら困らない?
デバッグオプション付きで走らせた時だけトレースが欲しいとかもできなく
なっちゃうし。
あとちょっと複雑なことやろうとすると急速に黒魔術化するイメージがある。
>>189
もとの疑問を離れてその目的ならということだけど、
単純にその重い処理を関数として渡してしまうのがいいのでは。
よくthunkと言われる方法。
(defun conditional-trace (x thunk)
(when x (funcall thunk))
としておいて
(conditional-trace t (lambda () (heavy-message-generate))
とか
(conditional-trace t #'heavy-message-generate)
とか。
そのpythonの例でも同様に
def conditional_trace(ctrl, func):
if ctrl: print func()
return
conditional_trace(True, lambda:heavy_message_generate())
conditional_trace(True, heavy_message_generate)
遅延評価する言語も中身はこういう感じの実装だったと思う。
C/C++は関数が第一級データ型じゃないので相当面倒になるが、
頑張ればできるはず…(最近のC++にはラムダ式入ったみたいだけど)。
C/C++のプロプロセッサだと動的に条件を変えたくなったら困らない?
デバッグオプション付きで走らせた時だけトレースが欲しいとかもできなく
なっちゃうし。
あとちょっと複雑なことやろうとすると急速に黒魔術化するイメージがある。
193デフォルトの名無しさん
2015/03/18(水) 07:20:53.23ID:dNB2wbku194デフォルトの名無しさん
2015/03/18(水) 07:23:49.75ID:dNB2wbku 最低限組み込みで実装しなきゃいけない部分はどこまでで
あとはその組み合わせで自己記述可能になるとかは lisp の教科書読めばわかるのかな。
あとはその組み合わせで自己記述可能になるとかは lisp の教科書読めばわかるのかな。
195デフォルトの名無しさん
2015/03/18(水) 11:07:05.14ID:mAuMOca0 純Lisp(pure Lisp)ってのだとcond使わざるを得なくなるから特殊形式は使わざるを得ないんじゃないかな
196183
2015/03/18(水) 12:55:18.82ID:nZSu0bqF >>192
もし、面倒でなければ「symbol-property-listでの力技」っていうのも見てみたいです。
thunk の例示ありがとうございます。python でも高階関数を使わないわけではなく、
lambda で評価を遅延させるようなことも時々はやるのですが、
必要に応じて関数の引数で使うという発想は無かったです。私にとって新しい概念です。
新しい言語を勉強すると、元の言語でも世界が広がる良い例ですね。楽しいです。
C/C++ ですが、最近の C では、可変引数マクロが使えるので、
#define TRACE(cond,...) if(cond){ printf(__VA_ARGS__); }
とすることで、引数を制御構造に組替えられます。
http://codepad.org/uX2WaTqT
この実現の仕方は elisp での defmacro に近いですね。
C++ の lambda も上手く例が作れれば後程。
もし、面倒でなければ「symbol-property-listでの力技」っていうのも見てみたいです。
thunk の例示ありがとうございます。python でも高階関数を使わないわけではなく、
lambda で評価を遅延させるようなことも時々はやるのですが、
必要に応じて関数の引数で使うという発想は無かったです。私にとって新しい概念です。
新しい言語を勉強すると、元の言語でも世界が広がる良い例ですね。楽しいです。
C/C++ ですが、最近の C では、可変引数マクロが使えるので、
#define TRACE(cond,...) if(cond){ printf(__VA_ARGS__); }
とすることで、引数を制御構造に組替えられます。
http://codepad.org/uX2WaTqT
この実現の仕方は elisp での defmacro に近いですね。
C++ の lambda も上手く例が作れれば後程。
197183
2015/03/18(水) 12:56:45.43ID:nZSu0bqF >>193
あんまり lisp っぽくないですかね。
Python など、他のパラダイムが強い言語で関数チックに
書こうとすると、写像できるような要素は便利なので良く使います。
ちなみに、JavaScript でよくあるような bool 化 idiom である !! を援用して、
自前 if は最終的に以下のようになりました。
(defmacro macroif (any-symbol good bad)
(funcall
(car
(cdr
(assq (null (null any-symbol)) (list '(t car) '(nil (lambda (x) (car (cdr x))))))))
(list good bad)))
(cdrifx t (insert "ok") (insert "ng"))
ok
(cdrifx () (insert "ok") (insert "ng"))
ng
(cdrifx (list 1 2 3) (insert "ok") (insert "ng"))
ok
>>195
lisp は関数指向でも書けるけれど、そもそもマルチパラダイムなのが、
その規定の時点から現れているように思えます。
最小要素とするのに、macro による制御構造の書換えと
一箇所で特殊な振舞いをするという cond どっちが最小かと言えば cond のが小さそうです。
あんまり lisp っぽくないですかね。
Python など、他のパラダイムが強い言語で関数チックに
書こうとすると、写像できるような要素は便利なので良く使います。
ちなみに、JavaScript でよくあるような bool 化 idiom である !! を援用して、
自前 if は最終的に以下のようになりました。
(defmacro macroif (any-symbol good bad)
(funcall
(car
(cdr
(assq (null (null any-symbol)) (list '(t car) '(nil (lambda (x) (car (cdr x))))))))
(list good bad)))
(cdrifx t (insert "ok") (insert "ng"))
ok
(cdrifx () (insert "ok") (insert "ng"))
ng
(cdrifx (list 1 2 3) (insert "ok") (insert "ng"))
ok
>>195
lisp は関数指向でも書けるけれど、そもそもマルチパラダイムなのが、
その規定の時点から現れているように思えます。
最小要素とするのに、macro による制御構造の書換えと
一箇所で特殊な振舞いをするという cond どっちが最小かと言えば cond のが小さそうです。
198デフォルトの名無しさん
2015/03/19(木) 10:18:55.55ID:KVeBWceY >>196
力技というほどのものでもなかった
(put t 'cdrif-value #'car)
(put nil 'cdrif-value #'cadr)
(defun convert (x)
(get x 'cdrif-value))
(defmacro my-if (idx good bad)
(funcall (convert idx) (list good bad)))
いや、本当はさらに
(put nil 'convert-value t)
(defun to-t-or-nil (x)
(not (ignore-errors (get x 'convert-value))))
(defun convert (x)
(get (to-t-or-nil x) 'cdrif-value))
とかいう力業っぽいことを考えてたんだけども、
ignore-errors が反則だったと気づいた。
こっちの反則版だとnil以外のどんな値を渡しても
ちゃんとt扱いされるという利点はあるけど…
C/C++プリプロセッサ、そういうことか。条件付きコンパイルを想像していた。
#define DEBUG(level) if(level>=verbosity){printf(_VA_ARGS_);}
みたいなことは一回やったことがある。
完全に文字列として変形するからlevelのところに関数呼び出しのコンマがあると
変なことになるという罠があるが、こういう用途だと大丈夫だしね。
自由度という点では何も考えずに言語全体を使えるlispマクロは特異に高いと思う。
elispじゃなくてcommon lispになっちゃうがland of lispとか読むと楽しいかもしれない。
力技というほどのものでもなかった
(put t 'cdrif-value #'car)
(put nil 'cdrif-value #'cadr)
(defun convert (x)
(get x 'cdrif-value))
(defmacro my-if (idx good bad)
(funcall (convert idx) (list good bad)))
いや、本当はさらに
(put nil 'convert-value t)
(defun to-t-or-nil (x)
(not (ignore-errors (get x 'convert-value))))
(defun convert (x)
(get (to-t-or-nil x) 'cdrif-value))
とかいう力業っぽいことを考えてたんだけども、
ignore-errors が反則だったと気づいた。
こっちの反則版だとnil以外のどんな値を渡しても
ちゃんとt扱いされるという利点はあるけど…
C/C++プリプロセッサ、そういうことか。条件付きコンパイルを想像していた。
#define DEBUG(level) if(level>=verbosity){printf(_VA_ARGS_);}
みたいなことは一回やったことがある。
完全に文字列として変形するからlevelのところに関数呼び出しのコンマがあると
変なことになるという罠があるが、こういう用途だと大丈夫だしね。
自由度という点では何も考えずに言語全体を使えるlispマクロは特異に高いと思う。
elispじゃなくてcommon lispになっちゃうがland of lispとか読むと楽しいかもしれない。
199デフォルトの名無しさん
2015/03/19(木) 10:42:33.11ID:QynmxxEd201デフォルトの名無しさん
2015/05/26(火) 11:33:21.52ID:dBigamDw setqと同等の機能を実現する関数は定義できますか
202デフォルトの名無しさん
2015/05/26(火) 13:54:08.02ID:M2tYWf9M set と マクロ使えばできるんじゃない
203デフォルトの名無しさん
2015/08/29(土) 07:44:55.47ID:vrZb3qx4 なんかネタないの?
204デフォルトの名無しさん
2015/08/29(土) 11:38:36.28ID:cVkBtg3P ついに俺のチンコが黒光りしてきた話はどうだ?
205デフォルトの名無しさん
2015/08/29(土) 13:38:04.80ID:vrZb3qx4 >>204
却下
却下
206デフォルトの名無しさん
2015/08/30(日) 05:58:46.12ID:dCMQNVLK >>204
どうやったら黒光りするの?
どうやったら黒光りするの?
207デフォルトの名無しさん
2015/08/30(日) 06:03:17.10ID:CnOlY9Pq 図書館で毎日ナンパして地下食堂のトイレでマン汁まみれで腰動かすんだよぉ
208デフォルトの名無しさん
2015/10/10(土) 12:55:20.49ID:yXubKPZg なんか話題ないの?
209デフォルトの名無しさん
2015/10/12(月) 15:20:18.76ID:pxYHqVTj API対応した2chリーダ誰か作んないかな?
210デフォルトの名無しさん
2015/10/31(土) 20:36:12.30ID:YZFloUqY ない
211デフォルトの名無しさん
2015/11/01(日) 00:32:17.94ID:seZhoDUW >>209
作ろっか?
作ろっか?
212デフォルトの名無しさん
2015/11/15(日) 09:25:10.66ID:Bf2qkjUe >>211
おねがいします
おねがいします
213デフォルトの名無しさん
2015/11/19(木) 21:57:45.42ID:NWoSZj2q >>212
よしわかった
よしわかった
214デフォルトの名無しさん
2016/03/05(土) 00:21:51.81ID:KaW6Box3 >>213
いえーい
いえーい
215デフォルトの名無しさん
2016/04/18(月) 00:14:54.95ID:rfz/B1KY いーまっくすはじめようとしたらしょしんしゃはこれやっとけのところでえらーになったのでもうねます
216デフォルトの名無しさん
2016/09/10(土) 01:53:11.20ID:LstVZLgo 初心者です
以下の文を電話で伝える場合、どのように話せばよいか教えて下さい。
(assq bool (list '(t car) '(nil (lambda (x) (car (cdr x))))))))
例:
かっこ始まり、えいえすえすくー ぶーーと かっこ始まり・・・・・・・・
みたいな感じでお願いしまつ
以下の文を電話で伝える場合、どのように話せばよいか教えて下さい。
(assq bool (list '(t car) '(nil (lambda (x) (car (cdr x))))))))
例:
かっこ始まり、えいえすえすくー ぶーーと かっこ始まり・・・・・・・・
みたいな感じでお願いしまつ
217デフォルトの名無しさん
2016/09/10(土) 01:56:10.66ID:LstVZLgo すみません。前の質問の補足ですが、なんで電話で伝えるかなのですが、
有料サポートで、おぺれーたーのお姉さまから、エラーのでる行を読み上げて下さいと言われたのですが、答えられない事があって、こんどこそ上手く説明しようとおもっています。
有料サポートで、おぺれーたーのお姉さまから、エラーのでる行を読み上げて下さいと言われたのですが、答えられない事があって、こんどこそ上手く説明しようとおもっています。
218デフォルトの名無しさん
2016/09/10(土) 08:51:21.97ID:Jm2YrF8N 全部一文字ずつ読みあげれ
電話で済むことをいちいち不便な掲示板使うな
1分3000円とかかかるなら別だが
電話で済むことをいちいち不便な掲示板使うな
1分3000円とかかかるなら別だが
219デフォルトの名無しさん
2016/09/10(土) 08:59:54.80ID:SMvnZvc1 電話サポートとかぼったくり以外の何物でもないんじゃ…
そもそもエラーの出る行が問題とは限らないし普通はメールかチャットでしょう
そもそもエラーの出る行が問題とは限らないし普通はメールかチャットでしょう
220デフォルトの名無しさん
2016/09/25(日) 01:38:58.62ID:3wxXNG/W windows機しか持ってなくて、今までCygwinについてくるvi使ってたんだけど、emacsを使ってみてるんですけど、ターミナル上でemacs使おうと思ったらいちいち-nwオプション付けないといけないんですか?それともみんなターミナルとは別ウィンドウで使ってるんですか?
221デフォルトの名無しさん
2016/09/25(日) 02:22:35.97ID:sCxOb1W2222デフォルトの名無しさん
2016/09/25(日) 05:04:32.10ID:16slqqIx223デフォルトの名無しさん
2016/11/24(木) 22:34:59.53ID:blWHS/2X224デフォルトの名無しさん
2016/11/25(金) 15:26:09.57ID:NaD61Q6Y 確か大学生を鴨にしてる有料サポートがあった気がする
普通に指導員(大学院生のバイト)に聞いた方が早いし無料だし正確じゃんと思った覚えがある
普通に指導員(大学院生のバイト)に聞いた方が早いし無料だし正確じゃんと思った覚えがある
225デフォルトの名無しさん
2016/12/24(土) 02:23:20.52ID:MPulp/OB Emacsは衰退しました
http://qiita.com/itckw/items/ff079c7572d6a1acd349
http://qiita.com/itckw/items/ff079c7572d6a1acd349
226デフォルトの名無しさん
2016/12/24(土) 13:17:00.38ID:p4lqfCaM マルチ乙
227デフォルトの名無しさん
2017/12/01(金) 18:24:03.28ID:bCsj1eZc 今年もクリスマスイブに書き込みあるかな?
228デフォルトの名無しさん
2018/01/17(水) 14:02:46.62ID:k+xp7qjU 10年以上前のものなんですが、seimei.el というfjに流れていたelispを探しています。
どこかに残ってないでしょうか?
ご存知の方いらしたら教えて下さい
どこかに残ってないでしょうか?
ご存知の方いらしたら教えて下さい
229デフォルトの名無しさん
2018/01/18(木) 00:03:27.86ID:XNRvPuZu JGをキーワードに検索した
http://www.ring.gr.jp/pub/linux/Plamo/Plamo-3.0/plamo/jg1/seimei.tgz
emacs25.3でも動いた、懐かしいな
なによりplamoって現役なのにびっくり
http://www.ring.gr.jp/pub/linux/Plamo/Plamo-3.0/plamo/jg1/seimei.tgz
emacs25.3でも動いた、懐かしいな
なによりplamoって現役なのにびっくり
230デフォルトの名無しさん
2018/01/18(木) 10:48:17.98ID:OQasshBO >>229
サンキュー!ありがとう!!
サンキュー!ありがとう!!
231デフォルトの名無しさん
2018/02/18(日) 07:19:36.63ID:9uxjLLGw load-historyにFILE-NAMEがnilのエントリーがあるかも、とヘルプにあるんですけど、そのエントリーがどのタイミングでどこから書き込まれてるか教えてください(eval-regionのブレークポイントつけても引っ掛からなかったです)。お願いします
232デフォルトの名無しさん
2018/02/18(日) 23:14:43.83ID:nDa4ZZlt233デフォルトの名無しさん
2018/02/19(月) 05:58:48.07ID:8lFyLir4 >>231
よく知らないが、リファレンスマニュアルを見た限りではそこは eval-region じゃないんじゃ……という気がする。
"emacs-lisp" "load-history"
でググったらそれらしいのが出てきたよ。
よく知らないが、リファレンスマニュアルを見た限りではそこは eval-region じゃないんじゃ……という気がする。
"emacs-lisp" "load-history"
でググったらそれらしいのが出てきたよ。
234デフォルトの名無しさん
2018/02/19(月) 12:06:58.79ID:IAYRjFJ3 >>233
ありがとうございますマニュアル見直してみたらeval-bufferかもしれないです。もう1回やってみます
ありがとうございますマニュアル見直してみたらeval-bufferかもしれないです。もう1回やってみます
235デフォルトの名無しさん
2018/02/19(月) 17:50:11.40ID:dLVrNTbV236デフォルトの名無しさん
2018/05/23(水) 20:23:27.26ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
147M7
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
147M7
237デフォルトの名無しさん
2018/07/05(木) 01:22:22.58ID:RfoszcD2 IEE
238デフォルトの名無しさん
2018/11/22(木) 15:42:31.66ID:r/GLumvr elispと若干違うけどスレがないので質問させてください
C-x C-hとやるとC-xから始まるコマンド一覧はでるのですが
モードごとのコマンド一覧を出すコマンドもあったと思うのですが何だか分かる方いますか
ruby-modeを入れたのですがどんなコマンドがあるのか調べたいです
C-x C-hとやるとC-xから始まるコマンド一覧はでるのですが
モードごとのコマンド一覧を出すコマンドもあったと思うのですが何だか分かる方いますか
ruby-modeを入れたのですがどんなコマンドがあるのか調べたいです
239デフォルトの名無しさん
2018/11/22(木) 16:45:53.83ID:vHHfqSHt C-h b
あと、メニューバーを見れば基本的なキーバインドは確認できる
消してる場合は C-右クリ
あと、メニューバーを見れば基本的なキーバインドは確認できる
消してる場合は C-右クリ
240デフォルトの名無しさん
2018/11/22(木) 17:29:44.31ID:r/GLumvr >>239 ありがとうございました
241デフォルトの名無しさん
2019/03/21(木) 00:07:03.75ID:BVBXqX32 emacs 24.5.1を使用しています。
ttp://www.miura-takeshi.com/etc/genkou.el
上記のプラグインを使用してバッファの文字列を原稿用紙換算したいのですが、
モードラインへの表示ができません。
文字列のカウント処理は問題なく動作しているので、下記のモードライン更新処理の
記述に問題があるようなのですが、何が悪いか分かる方いらっしゃいませんでしょうか?
(defun genkou-mode-line ()
"モードラインを書き換える"
(let ((tmp-list))
(setq genkou-mode-line-string
(format "--%d枚%d行" genkou-page-num genkou-line-num))
(make-local-variable 'mode-line-format)
(setq tmp-list (copy-sequence default-mode-line-format))
(setq mode-line-format
(append
(delete "-%-" tmp-list)
(append (list genkou-mode-line-string) (member "-%-" default-mode-line-format))))
(force-mode-line-update)))
ttp://www.miura-takeshi.com/etc/genkou.el
上記のプラグインを使用してバッファの文字列を原稿用紙換算したいのですが、
モードラインへの表示ができません。
文字列のカウント処理は問題なく動作しているので、下記のモードライン更新処理の
記述に問題があるようなのですが、何が悪いか分かる方いらっしゃいませんでしょうか?
(defun genkou-mode-line ()
"モードラインを書き換える"
(let ((tmp-list))
(setq genkou-mode-line-string
(format "--%d枚%d行" genkou-page-num genkou-line-num))
(make-local-variable 'mode-line-format)
(setq tmp-list (copy-sequence default-mode-line-format))
(setq mode-line-format
(append
(delete "-%-" tmp-list)
(append (list genkou-mode-line-string) (member "-%-" default-mode-line-format))))
(force-mode-line-update)))
242デフォルトの名無しさん
2019/11/17(日) 22:43:13.52ID:rHCPJv2k https://masatoi.github.io/2017/05/11/hy-tutorial
M-x hy-mode
-> hy-font-lock--kwd->comint-kwd: Invalid function: ((matcher . match-highlights) kwd)
M-x hy-mode
-> hy-font-lock--kwd->comint-kwd: Invalid function: ((matcher . match-highlights) kwd)
243デフォルトの名無しさん
2019/12/15(日) 00:19:45.52ID:YAW0GHgK サクラエディタの代わりにLinux上で簡易なテキストの正規表現やコピべマンとして
ボリュームがvi以上vscode未満ということでEmacs採用したけどまともに使うまでにでもマゾ過ぎないかこれ
ボリュームがvi以上vscode未満ということでEmacs採用したけどまともに使うまでにでもマゾ過ぎないかこれ
244デフォルトの名無しさん
2019/12/15(日) 02:28:29.07ID:qZlo5BGy Emacsってのは、すみずみまでいじり回して遊びたい人のための、組み立てキットみたいなものなんだよ。
改造しやすいってのが最大の売りで、各自で好みに合うように作り変えるのが大前提。
素のままでも一応は使えるけど、そんなに便利には作られてない。
魔改造とかする気がないなら、他に適したエディタがあると思う。
改造しやすいってのが最大の売りで、各自で好みに合うように作り変えるのが大前提。
素のままでも一応は使えるけど、そんなに便利には作られてない。
魔改造とかする気がないなら、他に適したエディタがあると思う。
245デフォルトの名無しさん
2019/12/15(日) 10:46:01.17ID:S9GzmkuV wine使ってサクラエディタが動くから試してみたら?
Emacsは何かの代わりに使おうとすると、操作体系が違い過ぎて挫折する
Emacsは何かの代わりに使おうとすると、操作体系が違い過ぎて挫折する
246デフォルトの名無しさん
2020/02/25(火) 21:01:07.43ID:nMAvGdtS 2つ質問します。
1. 選択範囲を削除するけれど、kill-ringに入れないという設定を教えて下さい。
kill-ringの一番新しいものをそのままにしておきたいからです
2. yankした際に、yankされたものの末尾にカーソルが飛ぶのですが、
カーソルが移動しないようにする設定を教えて下さい。
お手数をおかけしますが、お願いします。
1. 選択範囲を削除するけれど、kill-ringに入れないという設定を教えて下さい。
kill-ringの一番新しいものをそのままにしておきたいからです
2. yankした際に、yankされたものの末尾にカーソルが飛ぶのですが、
カーソルが移動しないようにする設定を教えて下さい。
お手数をおかけしますが、お願いします。
247デフォルトの名無しさん
2020/02/25(火) 21:13:58.66ID:I3QTYUIA 2 は C-u C-y でOK
248デフォルトの名無しさん
2020/02/25(火) 23:07:15.03ID:Z6R/vWss >246
1は
M-x delete-region
1は
M-x delete-region
249デフォルトの名無しさん
2020/03/02(月) 00:52:27.30ID:8zyc+iZb ご回答ありがとうございました。大変助かりました。
250デフォルトの名無しさん
2020/03/16(月) 17:02:19.48ID:r6kvZN2B シェルスクリプトからemacs ―batch で処理した結果をprintすると
\\. \\. \\“
みたいの沢山でてくる
エスケープなしで表示された通りの文字列を得るにはどうすれば良いのでしょう
\\. \\. \\“
みたいの沢山でてくる
エスケープなしで表示された通りの文字列を得るにはどうすれば良いのでしょう
251デフォルトの名無しさん
2020/03/16(月) 17:29:13.93ID:uq6V7ZgT >>250
princ
princ
252デフォルトの名無しさん
2020/03/17(火) 01:23:57.66ID:h1pz+/ac princにすると
\\,
が
\,
になったのですが
,
にする方法はないのでしょうか
\\,
が
\,
になったのですが
,
にする方法はないのでしょうか
253デフォルトの名無しさん
2020/03/17(火) 02:39:06.56ID:Kot3zOY6 >>252
princ が引数の文字列に含まれていない \ を勝手に印字することはないから、
その「処理」とやらで \ を追加しているのでは
または emacs への入力の時点ですでに \ を含んでいるとか
princ が引数の文字列に含まれていない \ を勝手に印字することはないから、
その「処理」とやらで \ を追加しているのでは
または emacs への入力の時点ですでに \ を含んでいるとか
254デフォルトの名無しさん
2020/03/19(木) 22:49:52.53ID:Fc1yZB1g >>252
読み込む時にreadしてんじゃないか?
読み込む時にreadしてんじゃないか?
255デフォルトの名無しさん
2020/08/26(水) 15:21:01.87ID:L7JtIZFl Windows の Emacs
日本語入力しようとして
半/全 キー押してしばらくしたら
Emacs ウィンドウ全部落ちた
バグ?
日本語入力しようとして
半/全 キー押してしばらくしたら
Emacs ウィンドウ全部落ちた
バグ?
256デフォルトの名無しさん
2020/08/26(水) 21:46:47.96ID:WFfMUKrt おま環
257デフォルトの名無しさん
2020/10/14(水) 10:11:53.97ID:GsUUoEHv (point) って 4GB 以上のファイルでも安全?
258デフォルトの名無しさん
2020/10/16(金) 16:47:48.59ID:w0E7/mRw わからない
259デフォルトの名無しさん
2020/10/19(月) 12:25:40.39ID:asy7wTux >>255
windows 10 64bit
emacs 26.3 64bit
また再現した
emacs 以外も含めて(同時起動中のソフト) windows 10 全体の ime が
モードが変になったり勝手に改行されたり狂い始める
このまま使い続けるとそのうち emacs が落ちるんだと思う
task manager から ctfmon.exe を殺したら治ったっぽい
windows 10 64bit
emacs 26.3 64bit
また再現した
emacs 以外も含めて(同時起動中のソフト) windows 10 全体の ime が
モードが変になったり勝手に改行されたり狂い始める
このまま使い続けるとそのうち emacs が落ちるんだと思う
task manager から ctfmon.exe を殺したら治ったっぽい
260デフォルトの名無しさん
2020/10/27(火) 16:42:12.74ID:yDmA/b17 emacs って 8MB 以上のテキストファイルで警告出るω
最近の大きめの xml とか json とか yaml とか怖くて編集出来ないωωω
最近の大きめの xml とか json とか yaml とか怖くて編集出来ないωωω
レスを投稿する
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★6 [BFU★]
- 【サッカー】U-17W杯 日本代表、無念のベスト8敗退… チャンスは多く作ったが仕留め切れず オーストリアに0-1で敗戦 [冬月記者★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 高市首相が異例の“買春行為の罰則化の検討”に言及…世界では“買う側”に罰則を科すのが先進国のスタンダード ★2 [樽悶★]
