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
269デフォルトの名無しさん
2021/10/09(土) 19:32:02.55ID:KRzSwEb7 Bash on windows(Ubuntu)のemacs
Windows 10に
scoop install emacs
した環境
どっちも環境変数homeを見にいくのでciderがどっちかの環境で動いてくれない
Windows 10に
scoop install emacs
した環境
どっちも環境変数homeを見にいくのでciderがどっちかの環境で動いてくれない
270デフォルトの名無しさん
2023/01/30(月) 07:49:47.97ID:Va8OFUvh ただ今制限を設けております
271デフォルトの名無しさん
2023/09/25(月) 16:47:00.13ID:Qn9WiVG4 こっちを再利用してください
272デフォルトの名無しさん
2023/10/13(金) 13:14:55.06ID:1CzMMp9Z emacs lispでC++のコメントを削除(行コメント//だけを行ごと削除)する方法を教えてください
273デフォルトの名無しさん
2023/10/13(金) 14:18:48.79ID:oUGpYLYU (defun comment-traversal (beg end func)
(save-excursion
(let (spt ept)
(goto-char beg)
(while (and (< (point) end)
(setq spt (comment-search-forward end t)))
(setq ept (progn
(goto-char spt)
(unless (or (comment-forward)
(eobp))
(error "Can't find the comment end"))
(point)))
(funcall func spt ept)))))
(save-excursion
(let (spt ept)
(goto-char beg)
(while (and (< (point) end)
(setq spt (comment-search-forward end t)))
(setq ept (progn
(goto-char spt)
(unless (or (comment-forward)
(eobp))
(error "Can't find the comment end"))
(point)))
(funcall func spt ept)))))
274デフォルトの名無しさん
2023/10/13(金) 14:19:30.72ID:oUGpYLYU (defun not-comment-traversal (beg end func)
(save-excursion
(let (spt
(ept (1- (goto-char beg))))
(while (and (< (point) end)
(setq spt (comment-search-forward end t)))
(funcall func (1+ ept) spt)
(setq ept (progn
(goto-char spt)
(unless (or (comment-forward)
(eobp))
(error "Can't find the comment end"))
(point))))
(funcall func ept (min end (1- (point-max)))))))
(save-excursion
(let (spt
(ept (1- (goto-char beg))))
(while (and (< (point) end)
(setq spt (comment-search-forward end t)))
(funcall func (1+ ept) spt)
(setq ept (progn
(goto-char spt)
(unless (or (comment-forward)
(eobp))
(error "Can't find the comment end"))
(point))))
(funcall func ept (min end (1- (point-max)))))))
275デフォルトの名無しさん
2023/10/13(金) 14:20:49.82ID:oUGpYLYU 最初のはコメントを抜き出すコード
次のはコメント以外を抜き出すコード
バッファー内のコメントを消していくのは難易度が高い
コメント以外を出力してリダイレクトするのが簡単だろう
↓こんな感じ
(not-comment-traversal (point-min) (point-max)
(lambda (beg end)
(print (buffer-substring beg end))))
ちなみにコメントはEmacsが把握してるので、このコードは言語非依存だ
次のはコメント以外を抜き出すコード
バッファー内のコメントを消していくのは難易度が高い
コメント以外を出力してリダイレクトするのが簡単だろう
↓こんな感じ
(not-comment-traversal (point-min) (point-max)
(lambda (beg end)
(print (buffer-substring beg end))))
ちなみにコメントはEmacsが把握してるので、このコードは言語非依存だ
276デフォルトの名無しさん
2023/10/13(金) 14:38:43.09ID:rlk6vHPT そういうつまらないものはchatgptに作らせればいい
277デフォルトの名無しさん
2023/10/13(金) 16:01:32.18ID:oUGpYLYU Emacs Lispのコードなんてまともに学習できないよw
278デフォルトの名無しさん
2023/10/13(金) 16:08:10.43ID:ugq7JLEK うん、だから、ChatGPTはバカだな
こんなものに時間をそそいでいる人類はバカ
こんなものに時間をそそいでいる人類はバカ
279デフォルトの名無しさん
2023/10/13(金) 23:03:38.37ID:9b0YvF5R そういうのはキーボードマクロが向いている
//をインクリメントサーチして、c-a,c-k,c-k
で名前を付けて登録
登録したマクロを10000000回ぐらい実行すればいい
//をインクリメントサーチして、c-a,c-k,c-k
で名前を付けて登録
登録したマクロを10000000回ぐらい実行すればいい
280デフォルトの名無しさん
2023/10/14(土) 12:49:27.28ID:x03gZ5vc >>278
ほんそれ
ほんそれ
281デフォルトの名無しさん
2023/10/15(日) 11:32:10.04ID:HSf5ScFa ファイルの先頭に移動して
M-x flush-lines
を起動して
^//
を打ち込んだら消せました
M-x flush-lines
を起動して
^//
を打ち込んだら消せました
282デフォルトの名無しさん
2023/10/15(日) 15:15:27.51ID:Z4N/9jbi hoge(); // コメント
とか
/*
コメント
*/
は消せないじゃん
とか
/*
コメント
*/
は消せないじゃん
283デフォルトの名無しさん
2023/11/11(土) 20:06:28.30ID:6Uwmj7p8 だからキーボードマクロを使えって
/*をインクリメントサーチ二文字戻って
マーク、*/をインクリメントサーチで探して
kill-region
これをキーボードマクロにして
何なら名前を付けて init.el に登録することもできる
/*をインクリメントサーチ二文字戻って
マーク、*/をインクリメントサーチで探して
kill-region
これをキーボードマクロにして
何なら名前を付けて init.el に登録することもできる
284デフォルトの名無しさん
2023/11/11(土) 20:13:40.67ID:6Uwmj7p8 具体的には
c-x(
esc<
c-s/*
c-@
c-s*/
c-w
c-x)
これでマクロ完成。名前を付けるには
M-x name-last-kbd-macro
で好きな名前を付けるだけ
init.el を開いて
M-x insert-kbd-macro
これで登録できる
c-x(
esc<
c-s/*
c-@
c-s*/
c-w
c-x)
これでマクロ完成。名前を付けるには
M-x name-last-kbd-macro
で好きな名前を付けるだけ
init.el を開いて
M-x insert-kbd-macro
これで登録できる
285デフォルトの名無しさん
2023/11/12(日) 01:44:20.85ID:IUEeiAD3 >>283
/* */と//の両方消せないじゃん
/* */と//の両方消せないじゃん
286デフォルトの名無しさん
2023/11/12(日) 16:34:00.64ID:pFykNXrS 別々に作って二回走査すればいいだけでは?
287デフォルトの名無しさん
2023/11/12(日) 19:43:42.90ID:IUEeiAD3 /* // */
は、先に // で消してしまうとおかしな事になるな
まぁ、先に/* */を消せばいいがな
それと、>>284のマクロはコメント1個しか消せないじゃん
全部消さないと
取り敢えずこれらを全部対応させたキーボードマクロを出さないと駄目
は、先に // で消してしまうとおかしな事になるな
まぁ、先に/* */を消せばいいがな
それと、>>284のマクロはコメント1個しか消せないじゃん
全部消さないと
取り敢えずこれらを全部対応させたキーボードマクロを出さないと駄目
288デフォルトの名無しさん
2023/11/13(月) 23:08:48.29ID:Y+b0wq04 /* */を排除するマクロを100000回ぐらいやって
次に // を排除するマクロを1000000回ぐらい動かす
気持ち悪いかもしれないが目的は達せられる
次に // を排除するマクロを1000000回ぐらい動かす
気持ち悪いかもしれないが目的は達せられる
289デフォルトの名無しさん
2023/11/18(土) 15:57:54.85ID:bNx8n+lD インクリメントサーチが失敗するまで
無限ループで回すことはできるけどね
無限ループで回すことはできるけどね
290デフォルトの名無しさん
2024/10/02(水) 10:15:18.16ID:XbzwGALZ Blenderのpython→bpy
EmacsのLisp→elisp
ExcelのVB→VBAω
EmacsのLisp→elisp
ExcelのVB→VBAω
291デフォルトの名無しさん
2024/10/20(日) 10:23:23.92ID:LzrvAVJD むしろemacs以外の現役lispを知らん
292デフォルトの名無しさん
2024/10/30(水) 03:02:36.94ID:BzmMNap8 >>291
cl書いて食ってるんで異議を申し立てたいのは山々だが…まあうん落ち目すぎるね
rmsに信心示すんならならguileすげーぞ
もちelispもサポートしてる
lispyな言語(scheme, elisp, es)である限り、その全てを(適当な変換の後)共通IL通して共通エンジンで動かせる
gccもIL通してサポート多いじゃん!と思うかもしれんが、あれ全ての言語サポートする勢いで風呂敷拡げすぎてっるし、そもそもエンジンがlispyでないのでlisp系の性能は、まあ察してくれ
cl書いて食ってるんで異議を申し立てたいのは山々だが…まあうん落ち目すぎるね
rmsに信心示すんならならguileすげーぞ
もちelispもサポートしてる
lispyな言語(scheme, elisp, es)である限り、その全てを(適当な変換の後)共通IL通して共通エンジンで動かせる
gccもIL通してサポート多いじゃん!と思うかもしれんが、あれ全ての言語サポートする勢いで風呂敷拡げすぎてっるし、そもそもエンジンがlispyでないのでlisp系の性能は、まあ察してくれ
293デフォルトの名無しさん
2024/10/30(水) 03:25:59.58ID:BzmMNap8 そういや5年かそこら前にemacsのelisp処理系を既存のからguile(のelisp)に置き換えるってのやってた記憶あるけど結局ポシャったんかね?
一応おおむね成功はしたとか
まあemacsのelisp処理系も最近コンパイル出来るようになって性能上がったし、置き換える利点も減ったのかな?
とすればgnuで2つelisp処理系作ってる現状の不利は労力の無駄ってくらいか
一応おおむね成功はしたとか
まあemacsのelisp処理系も最近コンパイル出来るようになって性能上がったし、置き換える利点も減ったのかな?
とすればgnuで2つelisp処理系作ってる現状の不利は労力の無駄ってくらいか
294デフォルトの名無しさん
2025/02/02(日) 07:37:39.53ID:gkY6KzeC native-compile有効化してもバイトコンパイルの数倍しか速くならないし、Common Lispの10倍くらい遅いんだよな
最近だとCommon Lispで1から作られたLemというエディタがある
最近だとCommon Lispで1から作られたLemというエディタがある
295デフォルトの名無しさん
2025/02/02(日) 15:53:20.81ID:OcIEQytI 動的型はネイティブコンパイルしても2倍速になるかどうかだな
型推論を実装してからが本番だ
型推論を実装してからが本番だ
296デフォルトの名無しさん
2025/10/12(日) 06:12:52.53ID:W2SaGlg4297デフォルトの名無しさん
2025/10/12(日) 06:15:18.22ID:W2SaGlg4 ああごめん型推論、すなわちよしなに(type fixnum numarg1)とか宣言補ってくれるということね
もちろんそれはあって欲しいね、コードは今まで通り書いていいしユーザーに負担が無いのだから
もちろんそれはあって欲しいね、コードは今まで通り書いていいしユーザーに負担が無いのだから
298デフォルトの名無しさん
2025/10/13(月) 07:56:47.78ID:jcovVfcE >>294
へぇー最近もあるのか…
CLの歴史あるエディタの代表といえば1980-のHemlockだね
emacs-likeというかほぼほぼemacsのCL版だけど、なんなら今のスレ民が大体使ってるであろう1984-のGNU emacsより歴史がある
主にCMU CLの配布に同梱されててなかなかいいemacs
へぇー最近もあるのか…
CLの歴史あるエディタの代表といえば1980-のHemlockだね
emacs-likeというかほぼほぼemacsのCL版だけど、なんなら今のスレ民が大体使ってるであろう1984-のGNU emacsより歴史がある
主にCMU CLの配布に同梱されててなかなかいいemacs
299デフォルトの名無しさん
2025/10/13(月) 08:05:49.85ID:jcovVfcE ああごめんここemacsスレじゃなくてelispスレだからスレチだったわ
300デフォルトの名無しさん
2025/10/16(木) 01:18:12.54ID:BKqCsKPx >>296
elispではいまのところ(ほぼ)無意味っぽいね
Most of the Common Lisp declarations are not currently useful in Emacs Lisp. For example, the byte-code system provides little opportunity to benefit from type information. A few declarations are meaningful when byte compiler optimizations are enabled, as they are by default. Otherwise these declarations will effectively be ignored.
https://www.gnu.org/software/emacs/manual/html_node/cl/Declarations.html
まあ型宣言のご利益はなくても、(読みにくくならぬ程度の)適切な型宣言は読み手へのアノテーションにもなるから推奨したい
elispではいまのところ(ほぼ)無意味っぽいね
Most of the Common Lisp declarations are not currently useful in Emacs Lisp. For example, the byte-code system provides little opportunity to benefit from type information. A few declarations are meaningful when byte compiler optimizations are enabled, as they are by default. Otherwise these declarations will effectively be ignored.
https://www.gnu.org/software/emacs/manual/html_node/cl/Declarations.html
まあ型宣言のご利益はなくても、(読みにくくならぬ程度の)適切な型宣言は読み手へのアノテーションにもなるから推奨したい
301デフォルトの名無しさん
2025/10/17(金) 01:25:53.83ID:D1Ebmx1L >>298
HemlockはGNU Emacs/Xemacsより(それまでの)emacsに近いんだよな
多分まだ一番古い資料が残ってるlisp系Emacsはelispの直接祖先であるMacLisp(1966)のエディタだろう
コンピュータ史系のサイト読めるMacLispのマニュアル類にはエディタのキーバインドまで記されている
当然ながらemacs風キーバインドで、この頃には今に繋がるlisp系emacs(非TECO系)確立されてた
HemlockはGNU Emacs/Xemacsより(それまでの)emacsに近いんだよな
多分まだ一番古い資料が残ってるlisp系Emacsはelispの直接祖先であるMacLisp(1966)のエディタだろう
コンピュータ史系のサイト読めるMacLispのマニュアル類にはエディタのキーバインドまで記されている
当然ながらemacs風キーバインドで、この頃には今に繋がるlisp系emacs(非TECO系)確立されてた
レスを投稿する
ニュース
- 高市総理の“失言”を引き出したはずがSNSで総スカン ビジネスモデルが崩壊した「立憲民主党」の迷走★2 [♪♪♪★]
- Z世代、35%が週休3日希望 「無理せず・安定」に重き 民間調査 [♪♪♪★]
- 【速報】 中国国営新聞社 「日本はすでに代価を支払った」 中国SNSで1位に 高市総理の発言めぐり ★4 [お断り★]
- 斎藤元彦・兵庫県知事、関西学院大学での「講演」予定に波紋 法学部長がコメント「教授会は承認せず」「利用されているようで不愉快」 [ぐれ★]
- 石破前首相 おこめ券配布に「その原資は何?国民の税金でしょう」「リーズナブルな価格でお米が手に入るようにすることの方が大事」 [muffin★]
- 【発信国情報】X、プロフィール上に「VPN使用の有無」も表示か… ★2 [BFU★]
- 【速報】香港、日本総領事と断交 [369521721]
- おほぉ///
- 高市さんのG20遅刻問題洒落にならないことになってた、日本抜きで全会一致で中国寄りの首脳宣言が採択されてそのまま有無を言わさず閉幕 [709039863]
- 女「中はだめ!」俺「堕ろせばいいっしょ!」
- 城之内克也は、遊戯に取り返してもらったエアマックスを
- 完全食って栄養と水分の管理楽でいいな
