【GNU】Emacs Lisp 【Elisp】
1 :デフォルトの名無しさん :2013/10/20(日) 07:50:56.93 .net 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
2 :デフォルトの名無しさん :2013/10/20(日) 23:11:55.61 .net こっちでどーぞー Emacs Part 43 http://toro.2ch.net/test/read.cgi/unix/1370754332/ Windows 依存部分ならここで NTEmacs スレッド 3 http://anago.2ch.net/test/read.cgi/software/1325573999/ MAC関係の板にもあるのかもしれないけれど知らない
3 :デフォルトの名無しさん :2013/10/20(日) 23:58:05.57 .net お薦めの書籍は?
4 :デフォルトの名無しさん :2013/10/21(月) 08:41:04.63 .net るびきち本
5 :デフォルトの名無しさん :2013/10/21(月) 12:51:30.26 .net Emacs Lispテクニックバイブル(るびきち) http://www.amazon.co.jp/dp/4774148970
6 :デフォルトの名無しさん :2013/10/21(月) 13:19:32.90 .net やさしいEmacs‐Lisp講座(広瀬 雄二) http://www.amazon.co.jp/dp/4877832718/
7 :デフォルトの名無しさん :2013/10/21(月) 13:24:59.87 .net Emacs Lispプログラミング入門(Robert J.Chassell) http://www.amazon.co.jp/dp/4756118054/
8 :デフォルトの名無しさん :2013/10/21(月) 16:49:56.02 .net スクリプトの基本 EmacsをEmacs Lispインタプリタとして起動するには--scriptオプションを指定します。 $ emacs --script test.el 例: hello.el: (princ "Hello, World!\n") 実行 $ emacs --script hello.el Hello, World!
9 :デフォルトの名無しさん :2013/10/21(月) 21:21:37.23 .net ElispCookbook http://www.emacswiki.org/emacs/ElispCookbook
10 :デフォルトの名無しさん :2013/11/02(土) 13:54:03.16 .net * ワンポイント **タイマー (run-with-timer 時間 繰り返し 関数)
11 :デフォルトの名無しさん :2013/11/05(火) 22:09:23.05 .net リストを処理するためのプログラミング言語 - Lisp リストを処理するためのエディタ - Emacs
12 :デフォルトの名無しさん :2013/11/09(土) 22:58:43.14 .net Emacs Lisp 3 [981res] http://toro.2ch.net/test/read.cgi/tech/1191875993 http://unkar.org/r/tech/1191875993 1 2007/10/09(火) 05:39:53 981 2012/09/13(木) 19:32:44.10 Emacs Lisp 4 [6res] http://toro.2ch.net/test/read.cgi/tech/1357029188 http://unkar.org/r/tech/1357029188 1 2013/01/01(火) 17:33:08.97 6 2013/01/21(月) 04:55:20.98
13 :デフォルトの名無しさん :2013/11/09(土) 23:02:02.86 .net 前スレが今年早々に保守失敗してんのね lispスレに統合するという話すら出ないうちに >>2 みたいな無知が偉そうに誘導している始末 全く人がいなくなってしまった様子 るびきちはすっかり教祖様なのに おまえらときたらどこいったんだ・・・
14 :デフォルトの名無しさん :2013/11/09(土) 23:11:12.18 .net そういえばこんなスレあったな >>12 見るまで前スレあること忘れてた
15 :デフォルトの名無しさん :2013/11/11(月) 10:37:09.91 .net 質問です。 ------------------------------------- 310 <- 表示されている 最上段 311 312 313 314 315 316 <- 今ここ 317 . . . . 350 ------------------------------------- 表示されている最上段の行番号を知りたいのですが どうすればいいでしょうか?
16 :デフォルトの名無しさん :2013/11/11(月) 19:53:18.77 .net >>15 (line-number-at-pos (window-start))
17 :デフォルトの名無しさん :2013/11/11(月) 22:47:59.75 .net >>16 ありがとうございます!
18 :デフォルトの名無しさん :2013/11/11(月) 23:45:46.74 .net ニュー速VIP爆撃中の2ch定期書き込みツールqsocks lispで書かれたこのツールを誰か改造してください。 他板でも使えるようにしてください。 お願いします。m(ーー)m qsocks https://anonfiles.com/file/3fcd3edbf6000ecf37b61e8af186c453 qsocksソースコード http://codepad.org/uyuG7Ovg
19 :デフォルトの名無しさん :2013/11/15(金) 15:42:25.09 .net Emacs Lispはなんでローカル関数ないのん?
20 :デフォルトの名無しさん :2013/11/15(金) 18:54:42.44 .net >>19 lambda使って
21 :デフォルトの名無しさん :2013/11/18(月) 13:14:39.57 .net elisperっていそうでいないんだけど、いったいどこにいるの?
22 :デフォルトの名無しさん :2013/11/18(月) 16:15:26.64 .net 地球上では3分間しかその能力を発揮できないからな
23 :デフォルトの名無しさん :2013/11/18(月) 22:02:40.71 .net >>22 それってUltra-C のユーザじゃね?
24 :デフォルトの名無しさん :2013/11/24(日) 00:09:52.10 .net >>21 elispなんて、今もうunix関連の企業で職人しか触らないんじゃない?
25 :デフォルトの名無しさん :2013/11/24(日) 00:13:08.19 .net HHKのUS配列なんて、そこらの電器店で買えないし、 Swapするのも面倒だし、皆、Vimに移ったんじゃない?
26 :デフォルトの名無しさん :2013/11/24(日) 03:47:10.26 .net vimに移るなんて何年前の話だよ? 移り先はsublimetextあたり。 でもEmacsはある一定のユーザは残る。その理由がlispで拡張できる点だろうな。
27 :デフォルトの名無しさん :2013/11/24(日) 08:28:32.93 .net Emacs 対 Vim の宗教戦争は収拾がつかなくなる
28 :デフォルトの名無しさん :2013/11/24(日) 08:49:04.91 .net >>27 だが、このスレはその戦争には無縁だな。 elispのスレなのだから。
29 :デフォルトの名無しさん :2013/11/24(日) 11:56:54.55 .net エディタに関するスレではなく、 単なるいちプログラミング言語についての話。 あえていえば、elispをコマンドラインから起動させる前提ならvimmerがこのスレに参加してくれても構わない。 あくまでも、このスレはLispの一方言であるelispというプログラミング言語についてのスレなのだから。
30 :デフォルトの名無しさん :2013/11/24(日) 15:35:08.97 .net こういうエディタを乗り換える人って、ろくすっぽマクロも書いてなさそう
31 :デフォルトの名無しさん :2013/11/24(日) 15:39:23.72 .net JDEEのinstallに何時間もかけたものの、1、2ヶ月たっても使いこなせなかった 甘酸っぱい経験からすれば、javaはeclipseで良い
32 :デフォルトの名無しさん :2013/11/24(日) 15:45:28.88 .net あんなにー♪いっしょぉ、だぁったぁのにぃー♬ ゆぅぐれぇはぁー、もぅーちぃがぁーういろぉー♫
33 :デフォルトの名無しさん :2013/11/24(日) 16:04:23.53 .net termの中でvi使ってます♪
34 :デフォルトの名無しさん :2013/11/24(日) 18:38:31.87 .net >>30 そのマクロはスレチ ポールグレアムのマクロならこのスレであってる。
35 :デフォルトの名無しさん :2013/12/01(日) 20:00:51.02 .net あなたがLispを無視することができない理由 http://blog.8arrow.org/entry/2013/12/01/120712
36 :デフォルトの名無しさん :2013/12/11(水) 21:39:24.67 .net (let ((ningen '(:name "tarou" :age 20))) (get-value :name ningen)) ; tarou こんなことがしたいのですがget-valueのような関数はありますか?
37 :デフォルトの名無しさん :2013/12/11(水) 21:51:07.33 .net それだとそのまんま plist-get が使える (plist-get ningen :name) ; => tarou すごい巨大になるなら hash もいいかもね。
38 :デフォルトの名無しさん :2013/12/11(水) 22:27:05.81 .net >>37 リスト コロン なんかで検索しても出てこなかったので困ってました。 ありがとうございます!
39 :デフォルトの名無しさん :2013/12/21(土) 08:17:51.09 .net 何らかのキーを押した時点で実行されて 押したキー情報を取得できるようにしたいのですが、 可能でしょうか? "C-a" "C-t" "0" "q" "w" "j" "j" "s" の様に キーを押した時点でなんのキーを押したかを過去数回分取得したいです。 "C-a" "C-t" "q" "w" "j" "j" "s" でそれぞれコマンド実行 のようなことがしたいです。
40 :デフォルトの名無しさん :2013/12/21(土) 09:48:34.64 .net >>39 何かの入力があった後に実行する → post-command-hook 何か文字が入力された後に実行する → after-self-insert-hook 直前のキー入力 → last-input-event 過去のキー入力リスト → (recent-keys) 直前に何が入力されてたかで挙動を変える系の拡張だと key-combo ってのがあったけど やりたいのはそういうのかね?
41 :デフォルトの名無しさん :2013/12/21(土) 09:50:13.60 .net 嘘書いてしまった ×after-self-insert-hook ○post-self-insert-hook
42 :デフォルトの名無しさん :2013/12/21(土) 09:51:47.40 .net あとこれ結構まとまってるな Emacsでキーボードイベントを扱う方法まとめ http://d.hatena.ne.jp/uk-ar/20120213/1329138385
43 :デフォルトの名無しさん :2013/12/21(土) 15:14:36.76 .net >40-42 ありがとうございます。 key-comboで大方は解決しそうです。 key-comboでできないのは触った限り ・C-a+C-t のような違うショートカットの組み合わせと ・C-a+a のようなショートカットとキー組み合わせ だと思ったんですが、上記も書き方によっては可能ですか? できなければ、 post-command-hook (recent-keys) single-key-description らへんでいじって試してみようと思います。 あと、 key-comboで ・◯◯◯モードで(region-active-p)がtの状態 ・◯◯◯モードで(region-active-p)がnilの状態 のようにそれぞれhookを分けたいのですが、 どのように書けばよいでしょうか?
44 :デフォルトの名無しさん :2013/12/21(土) 17:22:18.88 .net key-combo はあくまで self-insert-key で入力される文字に特化したものっぽいね。 特にフックとか用意されていないみたいだから リージョンの状態とかに応じて挙動を変えたいなんて場合はソースに直接手を入れるか advice でも設定するしかないんでないかな。 他にも ・同じキーを連続入力した時に(文字ではなく)別なコマンドを割り当てる sequential-command http://d.hatena.ne.jp/rubikitch/20090219/sequential_command ・プリフィクスキーの入力を一回でOKにする smartrep http://sheephead.homelinux.org/2011/12/19/6930/ ・文字キーの同時押しにキーバインドする key-chord http://www.emacswiki.org/emacs/KeyChord とか色々キー入力を見るのはあるみたいだけど、希望する動作のものはなさそう。 もっとも作る時の参考ぐらいにはなるかもしれない。 何か他にもあったような気もするんだけど記憶が定かでないな・・ C-a + C-t でってのは、C-a C-t に何か直接割り当てるんじゃなく ・普段の C-t は transpose-chars ・C-a は何も変わらず beginning-of-line ・C-a した後に C-t したら transpose-chars ではない何か別の挙動をしたい ってことだよね?
45 :デフォルトの名無しさん :2013/12/24(火) 06:05:38.74 .net >44 ありがとうございます。 emacs導入初期に全てのキー設定をいじって、self-insert-commandでない書き方にしてしまったため、一部入力支援系が試せず、キー設定を見直しているところです。 入力支援系を使えるようにするためには英数記号だけkey-comboに移せば改善されそうです。 C-a + C-t を例にだしたのは特に意味はなかったですが、そういう感じです。 sequential-command的なことは自分でやれるようにはしてます。 文字の同時入力は微妙に使いづらいのでやめました。 勉強がてら自分でいろいろ書いてみようと思います。
46 :デフォルトの名無しさん :2013/12/26(木) 21:05:55.80 .net >>45 なんかこれが一番目的に近づいてる気がする https://github.com/yuutayamada/mykie-el キーをおしたときに条件に応じて挙動を変えるって拡張だけど 条件は自分で追加できるから、あるキーを押したあとだとこの挙動、なんてのは自在に作れると思う リージョンがどうのとかも標準で用意されてるし。
47 :デフォルトの名無しさん :2013/12/29(日) 23:55:09.33 .net >>46 いいですね。一番しっくりきたのでこれにしました。 結構いじりやすいので "C-j f" "f C-j" "YYY" "qj" なども反応するようにできて満足です。 ただアルファベットも設定してしまうとself-insert-commandではなくなるのでタイピング時にauto-commandが実行されないのが残念ですが、仕方ないですかね。
48 :デフォルトの名無しさん :2013/12/30(月) 00:05:41.35 .net 使ってないから詳しい事はわからないけど、 (mkie:set-keys 'with-self-key ... ) で設定したのに self-insert-command に関する何かがおかしくなるんだとすると 仕様に漏れがあるのかもしれないね。
49 :デフォルトの名無しさん :2013/12/30(月) 01:51:31.65 .net >>48 読み落とししてました。。。 (mykie:global-set-key … で書いてました。 (mkie:set-keys 'with-self-key … ならいけました!! ありがとうございます。
50 :デフォルトの名無しさん :2014/01/17(金) 19:22:13.14 .net どういたしまして。
51 :デフォルトの名無しさん :2014/01/17(金) 19:58:14.55 .net いやいや誰だよw
52 :デフォルトの名無しさん :2014/01/17(金) 20:04:09.16 .net 俺です。
53 :デフォルトの名無しさん :2014/01/17(金) 20:06:45.37 .net 貴方でしたか・・
54 :デフォルトの名無しさん :2014/01/17(金) 20:46:42.74 .net Ctrlキーって小指で押すのと小指の付け根で押すのと、どちらが正しい流儀なんだろう? TECOエディタは小指の付け根で押したなんて記述を見た気がしてきた
55 :デフォルトの名無しさん :2014/01/17(金) 20:51:58.59 .net emacs スレ向けだろうそれは流石に
56 :デフォルトの名無しさん :2014/01/21(火) 02:17:15.59 .net なんか話題ないの?
57 :デフォルトの名無しさん :2014/01/25(土) 15:07:45.72 .net ない
58 :デフォルトの名無しさん :2014/01/25(土) 16:39:38.15 .net http://www.youtube.com/watch?v=0EBTn_3DBYo
59 :デフォルトの名無しさん :2014/02/07(金) 22:36:50.85 .net ソチオリンピックはじまったぞ
60 :デフォルトの名無しさん :2014/02/08(土) 13:17:24.90 .net xyzzy Lispにsetcar/setcdrがなかった ググったらrplaca/rplacdだとわかった
61 :デフォルトの名無しさん :2014/02/11(火) 08:52:22.47 .net >>60 すごい!大発見だね
62 :デフォルトの名無しさん :2014/02/11(火) 09:07:28.36 .net >>61 そうだね 君もいつか自分がクズだと気づけるといいね
63 :デフォルトの名無しさん :2014/02/11(火) 09:24:32.31 .net キーボードから絵が描けるように拡張したった 後は音鳴るようにするー
64 :デフォルトの名無しさん :2014/02/11(火) 10:07:29.09 .net >>63 ソース見せて〜
65 :デフォルトの名無しさん :2014/02/11(火) 12:56:24.94 .net 【入門】Common Lisp その10【質問よろず】スレから誘導されてきました。 Emacsで選択範囲部分の四則演算を行なえるようにしたいのですが、 どのように記述すればいけるでしょうか? たとえば100*200+300*400を範囲選択すれば、140000を表示できるようにしたいです。 (defun my-calc-region (start end) (interactive "r") (if mark-active (let ((str (buffer-substring start end))) ;;ここで選択範囲strの四則演算を行ないたい (message str) )))
66 :デフォルトの名無しさん :2014/02/11(火) 12:58:36.81 .net >>65 calc-eval ってのがあるよ。 (setq str (calc-eval str)) で ok。 calc は無駄に多機能だから info 読んでみるといい。
67 :65 :2014/02/11(火) 17:47:10.31 .net >>66 できました。ありがとうございます。
68 :デフォルトの名無しさん :2014/02/12(水) 09:38:07.02 .net >>66 こういう親切な人がいるところが2ちゃんの凄いところ
69 :デフォルトの名無しさん :2014/02/12(水) 17:48:01.21 .net ム板ってマイナー言語とかのスレに凄い優しい人一杯いるよね
70 :デフォルトの名無しさん :2014/02/12(水) 17:52:46.28 .net 仲間が少なくなってきてるから寂しいんだろう
71 :デフォルトの名無しさん :2014/02/12(水) 23:04:33.78 .net Sublime Textが Emacs LispやCommon Lispで拡張できるようになったらどうするんだろうか。
72 :デフォルトの名無しさん :2014/02/12(水) 23:05:24.28 .net Sublime TextがEmacsenになる
73 :デフォルトの名無しさん :2014/02/12(水) 23:11:54.46 .net EmacsにとってEmacs Lispは拡張言語じゃないんだよ C言語で作られたEmacs Lispがあって、そのEmacs LispでEmacsが作られている Sublime TextがEmacs Lispを拡張言語として使えるようになってもあまり魅力は無い Emacs Lispで作られたSublime Textがあればちょっと考える
74 :デフォルトの名無しさん :2014/02/13(木) 01:01:11.54 .net >>73 なんだなら全部C言語なんだね! pythonもC言語だから 全部既にできたことなんだね! C言語を経由すれば全て可能! ということだよね!
75 :デフォルトの名無しさん :2014/02/13(木) 01:10:17.62 .net そりゃそうだろ 機械語最強伝説みたいなもんだ
76 :デフォルトの名無しさん :2014/02/13(木) 01:20:48.87 .net >>74 プログラムの再起動とか無しに自身を書き換える機能が欲しい コンパイルが必須な言語だとちょっと使い勝手が悪いかな メモリ管理も自動でやってほしい
77 :デフォルトの名無しさん :2014/02/13(木) 01:23:31.49 .net elisp も ffi が実装されたら素敵なんだが
78 :デフォルトの名無しさん :2014/02/13(木) 01:27:09.81 .net Pymacsとかそれっぽい
79 :デフォルトの名無しさん :2014/02/13(木) 02:09:03.65 .net pythonはインデントが嫌いなんだよなー、構文で文ブロック表さないようにしている所がどうしてもなじめない。 なのでいまだにEmacsラブラブなんであるよ。 あと基本の削除がKillRing無いと生きていけない
80 :デフォルトの名無しさん :2014/02/13(木) 05:24:21.72 .net 俺は逆 Pythonのインデントが美しい、見やすい。ブロック指示語無しでの表現がスマート でも、Lisp使いになると東大女とやり放題と聞いたのでLispの勉強を始めた
81 :デフォルトの名無しさん :2014/02/13(木) 07:52:22.02 .net >>71 理想的だな。 Emacsを使う理由が薄れる。 ここのスレの住人はLispで拡張できるからEmacsを使うって人が多いと思う。 目的がLispであってEmacsは手段でしかない。 できれば素のlisp,common lispが使えれば理想的だな。
82 :デフォルトの名無しさん :2014/02/13(木) 07:54:13.80 .net 俺はxyzzyだけど
83 :デフォルトの名無しさん :2014/02/13(木) 08:48:50.79 .net >>82 だけど、何?
84 :デフォルトの名無しさん :2014/02/13(木) 09:57:01.02 .net xyzzy はより Common Lisp っぽいんじゃなかったっけ emacs lisp は lisp 好きにはむしろ
85 :デフォルトの名無しさん :2014/02/13(木) 11:38:56.40 .net Common Lispで実装されたEmacsみたいなエディタあるよ。 でもEmacsのように便利に使おうと思うと、自分でCommon Lispをバリバリ書かないといけない。
86 :デフォルトの名無しさん :2014/02/13(木) 12:43:10.37 .net あったとしてもEmacsやVimくらい世界中からHackされようじゃないとねぇ。 zyzzyなんて海外じゃ誰も知らないだろうし。
87 :デフォルトの名無しさん :2014/02/13(木) 12:45:46.31 .net xyzzy さり気なく github で開発継続してたんだなあ
88 :デフォルトの名無しさん :2014/02/13(木) 17:12:56.16 .net >>86 ← お馬鹿丸出し
89 :デフォルトの名無しさん :2014/02/14(金) 02:00:59.87 .net >>88 煽るよりもこうすれば良いっていう提案をするのが吉だと信じてる。 >>80 構文からインデントを生成してくれる<言語名>.elにおんぶにだっこになるとPythonが辛いんよ。
90 :デフォルトの名無しさん :2014/02/23(日) 18:39:31.98 .net すいません。Emacs Part 45から来ました。 質問させてください。 一定文字数、右にカーソルを移動させる方法はありますか。 「矩形、編集」などで調べましたがわかりませんでした。 図1)のテキストがあったときに、右側に対訳のような形で編集したいです。 図1) あいうえ かきくけこ さしす たちつてとなにぬねの 図2) あいうえ aiue かきくけこ kakikukeko さしす <-ここにカーソルを移動させ段組みで編集したい たちつてとなにぬねの よろしくお願いします。
91 :デフォルトの名無しさん :2014/02/23(日) 21:16:16.11 .net お前ら、久々の仕事だぞ。
92 :デフォルトの名無しさん :2014/02/23(日) 21:20:02.14 .net >>90 forward-char
93 :デフォルトの名無しさん :2014/02/23(日) 22:08:08.90 .net 関数組めばいいのに それにショートカットきーを割り当てる
94 :デフォルトの名無しさん :2014/02/23(日) 22:09:51.03 .net > 「矩形、編集」などで調べましたがわかりませんでした。 もっと深く調べろ
95 :デフォルトの名無しさん :2014/02/23(日) 22:12:44.44 .net 矩形、編集で調べている時点であかん もともと、そんな関数あるわけない。 カーソル制御で知らべろ で、関数作れ(簡単にできる)
96 :90のなりすまし :2014/02/23(日) 22:49:00.93 .net >>91 てめーは何もやらないのかよ、使えねぇなカス >>92 そんな関数1つだけで出来る訳ねーだろ、氏ね >>93 抽象的なことだけ書き込んで悦に入ってんじゃねーよ >>94 煽る以外に芸が無いのかよ、無脳 >>95 だったら、その関数をてめーが組んで、ここに貼り付けろ ジョークだから本気に受け取らずに藁ってね
97 :デフォルトの名無しさん :2014/02/25(火) 03:36:47.58 .net 今だにemacsとか使ってるバカいるのか。 Common Lispでなければ 意味ない。
98 :デフォルトの名無しさん :2014/02/25(火) 03:54:33.31 .net そうかな? 俺自身はCommon Lisp系のxyzzyを使っているが emacsはemacsで良さがある
99 :デフォルトの名無しさん :2014/02/25(火) 09:22:57.05 .net >>97 (require `cl)
100 :デフォルトの名無しさん :2014/02/25(火) 15:01:22.07 .net >>90 (info "(emacs) Two-Column") かな。 <F2> s or C-x 6 s で、split して <F2> 1 or C-x 6 1 で、merge C-x C-n set-goal-column という、手もある。 これだと、行末に空白が足りない時そのcolumn に飛んでくれないから、 こんな関数を、作っておいて、適当な Key に bind しておくといいかも (defun fill-to-goal-column () "" (interactive) (when goal-column (end-of-line) (let ((len (- goal-column (current-column)))) (when (> len 0) (insert (make-string len ?\ )))))) ;; two-column mode の懐かしさに、久しぶりの書き込みでござる。
101 :デフォルトの名無しさん :2014/03/01(土) 08:13:00.51 .net 質問です。 実行後、空白行で区切った段落を1行で省略表示させて、 カーソル行が省略表示されている段落と同じ範囲内に来た場合に 展開してくれるというものが作りたいのですが、可能でしょうか? 【実行前】 テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト □←カーソル位置 テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト 【実行後】 テキストテキストテキストテキストテキストテキスト... □テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト
102 :デフォルトの名無しさん :2014/03/01(土) 08:23:12.92 .net >>101 出来るでしょう。 テキストプロパティやオーバーレイには 表示内容だけ一時的に変更するってのと、カーソルが上に乗った時/いなくなった時に任意の関数を呼び出すって属性があるから それを設定してやればいいんじゃないかな。 hs-minor-mode あたりを設定を変えつつ使うのが楽でいいんじゃないでしょうか。 隠す区切りを改行が連続している領域に変更して、 隠す処理を行ってる関数あたりに point-entered/point-left で表示をトグルする処理を追加してやると。
103 :デフォルトの名無しさん :2014/03/01(土) 10:46:01.33 .net hs-set-up-overlay に出入りした時に隠したり表示したりするプロパティ追加する関数せっていすりゃいいんじゃね。
104 :デフォルトの名無しさん :2014/03/02(日) 21:33:23.49 .net >>103 具体的にどのようにすればよろしいでしょうか?
105 :デフォルトの名無しさん :2014/03/02(日) 21:48:51.04 .net まずorg.elを開きます
106 :デフォルトの名無しさん :2014/03/02(日) 21:56:23.12 .net point-entered は残念ながら overlay では機能しないらしいから 気合入れて text-property に追加してまわるしかないんじゃないかなあ post-command-hook でいちいちチェックして hs-hide-block/hs-show-block もいいかもね
107 :デフォルトの名無しさん :2014/03/10(月) 07:20:52.21 .net 一度elispの拡張の楽しさを覚えると、他のエディタに移れない
108 :デフォルトの名無しさん :2014/03/10(月) 07:48:40.35 .net ひょえー 固まっていくんだ
109 :デフォルトの名無しさん :2014/03/10(月) 16:22:33.05 .net >>107 vimやsublimetextはpythonで拡張できるけどそれと比較してどうよ?
110 :デフォルトの名無しさん :2014/03/10(月) 16:28:12.11 .net Pymacs動くから普通にPythonでも拡張できるよ
111 :デフォルトの名無しさん :2014/03/11(火) 20:38:09.46 .net Lispで拡張子できるのに、ナニが悲しゅうてパイソンつかうんや? Lisp使えへんからか? ひょっとしてナニがうずくんか? 「リストは飽きた、パイもませろ」 エッヂね、あなた
112 :デフォルトの名無しさん :2014/03/11(火) 20:39:25.89 .net リスト × L リスト ○ R
113 :デフォルトの名無しさん :2014/03/25(火) 18:27:18.16 ID:Ye296TBS.net なんか話題ない?
114 :デフォルトの名無しさん :2014/03/26(水) 23:27:38.28 ID:LML8JeED.net >>109 Vim ってpythonで拡張できるん?
115 :デフォルトの名無しさん :2014/03/26(水) 23:31:15.83 ID:6UDaHe6u.net emacsは遅めだな
116 :デフォルトの名無しさん :2014/03/27(木) 00:13:29.55 ID:/J3FM59H.net >>114 python だけじゃなく ruby とか lua でも拡張出来るよ ただしコンパイル時に if_python とか if_lua とか組み込まないとだめだけど オリジナルの Vim scriptは海外ではウケが悪いんだとさ
117 :デフォルトの名無しさん :2014/03/27(木) 02:09:44.05 ID:FdT+1cD1.net 24.4から (< a b c …) できるって。
118 :デフォルトの名無しさん :2014/03/27(木) 13:12:09.80 ID:rnycJJoD.net 今までできなかったのかよ
119 :デフォルトの名無しさん :2014/03/27(木) 13:16:52.73 ID:qdz8LPjI.net 定義すれば済むことだな
120 :デフォルトの名無しさん :2014/03/27(木) 21:55:07.06 ID:4xfA40Vl.net >>116 すげぇ! Sublime Textなんていらなかったんや!
121 :デフォルトの名無しさん :2014/04/03(木) 22:08:59.03 ID:PIEAAVmi.net >>119 vimmerはエディタの拡張のために、好きな言語を「選択」できる。 しかし、lisperはエディタの拡張のために、好きに言語を「拡張」できる。
122 :デフォルトの名無しさん :2014/04/03(木) 22:37:18.61 ID:DQUVbJjr.net そういう意味ではリーダーマクロのない elisp はいまいち
123 :デフォルトの名無しさん :2014/04/03(木) 22:44:26.98 ID:PIEAAVmi.net >>122 Emacs Lisp にリーダーマクロを実装してみた http://dev.ariel-networks.com/Members/matsuyama/implement-emacs-lisp-reader-macro/
124 :デフォルトの名無しさん :2014/04/25(金) 08:03:24.78 ID:xiFjVo8G.net Latexのコードの特殊文字(?)を取り除いて文字だけにしたい 例えば This figure ¥ref{fig:some} show someone. を This figure 321 show someone. に変換したい どんな正規表現置換すればいいでしょうか
125 :デフォルトの名無しさん :2014/04/29(火) 06:14:21.54 ID:hZWbnKFL.net パッケージが使えるようになってから ライブラリ関係が整理されてきたね http://www.wilfred.me.uk/blog/2013/03/31/essential-elisp-libraries/
126 :デフォルトの名無しさん :2014/05/05(月) 22:14:00.15 ID:rH4KCYSG.net >>124 321はどっから出てきた?
127 :デフォルトの名無しさん :2014/05/08(木) 04:12:16.26 ID:gIosECTp.net あああ
128 :デフォルトの名無しさん :2014/05/08(木) 20:38:27.07 ID:APfGLDmZ.net あああじゃねえよ321は決め打ち?
129 :デフォルトの名無しさん :2014/05/29(木) 22:57:32.74 ID:lRFHqZI8.net iii
130 :みつを :2014/06/04(水) 19:55:43.06 ID:1mti/jFC.net >>129 iiiじゃねえよ。決め打ちね。 ちいさいことからこつこつやっていくしかないよなぁ (replace-regexp-in-string "[\\]ref\{.*\}" "321" "This figure \\ref{fig:some} show someone.") そもそも\refを先に\\refにしないとイカンかもな。\rになってまうもんなぁ
131 :みつを :2014/06/04(水) 19:57:17.25 ID:1mti/jFC.net >>125 パッケージってMELPAとかいうやつ? ずっと横ばいだな。これは普及するのか http://www.modulecounts.com/
132 :デフォルトの名無しさん :2014/06/04(水) 21:16:48.17 ID:40jNRALG.net むしろそれが今の Emacs の成長率みたいなもんなんじゃないのかな
133 :デフォルトの名無しさん :2014/06/13(金) 21:28:22.09 ID:9IC9OAVr.net あああ iii uuu
134 :デフォルトの名無しさん :2014/09/10(水) 14:59:47.34 ID:TJ7Vp+Yk.net 最近なんか話題ある?
135 :デフォルトの名無しさん :2014/09/10(水) 23:18:57.46 ID:7cU3np3J.net きちさんが元気になった。
136 :デフォルトの名無しさん :2014/09/12(金) 06:48:41.92 ID:pwXLQ7qz.net カーソル位置の単語または選択範囲の文字をisearcの検索対象にする http://nicolas-petton.fr/blog/isearch-thing.html
137 :デフォルトの名無しさん :2014/09/13(土) 00:21:10.93 ID:3yBdenhy.net >>135 どんなふうに?
138 :デフォルトの名無しさん :2014/10/12(日) 21:42:50.50 ID:QLTYsLQy.net Ymacs
139 :デフォルトの名無しさん :2014/10/16(木) 00:29:06.56 ID:9sgE7fDV.net windows の emacs で find-name-dired をやりたかったんだけど、cmd の find は挙動が違うし、外部から find.exe をもってくるのも難しいしということで、elisp で find-name-dired っぽいものを自作した。 それは、条件に合致したものを cons で繋げていく原始的なものだったんだけど、その後、「リストよりもベクトルの方が参照が速い」ことや、mapcar 関数の存在を知って、自作 find を書き換えた。 修正の結果、find に要する時間は長くなってしまった。 その後、remove-if なる関数があることをしって、先のコードの mapcar を remove-if にすげ替えた。 結果さらに遅くなった。 やっぱりコンスセル単位で操作していくのが一番速いのですか?
140 :デフォルトの名無しさん :2014/10/16(木) 09:04:05.88 ID:ML6o1wZC.net > やっぱりコンスセル単位で操作していくのが一番速いのですか? ベクトルは参照は早いけど追加操作は遅い。リストはその逆と思っておけばいい。 ケースバイケースだからソース公開するといいよ。
141 :デフォルトの名無しさん :2014/10/16(木) 09:56:15.97 ID:9sgE7fDV.net >>140 ありがとうございます。まず、最初に作ったコードです。最後の reverse は無意味でした。 ;; M-x myfind (defvar myfind-ffile-map (make-sparse-keymap)) (define-key myfind-ffile-map [return] (lambda () (interactive) (find-file (buffer-substring (line-beginning-position) (line-end-position))))) (define-key myfind-ffile-map "\C-m" (lambda () (interactive) (find-file (buffer-substring (line-beginning-position) (line-end-position))))) (define-key myfind-ffile-map "f" (lambda () (interactive) (find-file (buffer-substring (line-beginning-position) (line-end-position))))) (define-key myfind-ffile-map "v" (lambda () (interactive) (view-file (buffer-substring (line-beginning-position) (line-end-position))))) ;; 続きます
142 :デフォルトの名無しさん :2014/10/16(木) 10:00:45.11 ID:9sgE7fDV.net (defun myfind (dir pattern) "find by elisp" (interactive "DDirectory: \nspattern: ") ;; define variable (let ((case-fold-search t) (myfind-temp (sort (myfind-store-files dir pattern) 'string<))) ;; make buffer (let ((temp-buffer-show-function 'switch-to-buffer)) (with-output-to-temp-buffer "*Myfind*" (set-buffer "*Myfind*") (font-lock-mode 0) (setq buffer-read-only nil) (princ (format "%d matches for \"%s\" in dir: %s\n" (length myfind-temp) pattern dir)) (dolist (temp myfind-temp) (princ (concat "\n" temp)) (goto-char (1- (point-max))) (put-text-property (line-beginning-position) (line-end-position) 'face 'underline) (put-text-property (line-beginning-position) (line-end-position) 'keymap myfind-ffile-map) (when (file-directory-p temp) (put-text-property (line-beginning-position) (line-end-position) 'face 'link)) (goto-char (point-max))) (view-mode t)))))
143 :デフォルトの名無しさん :2014/10/16(木) 10:06:43.79 ID:9sgE7fDV.net (defun myfind-dir (input-list input-dir-box) (let (dir-box) (dolist (x input-list) (when (file-directory-p x) (unless (equal "." (substring x -1)) (if dir-box (setq dir-box (cons x dir-box)) (setq dir-box (cons x input-dir-box)))))) (if dir-box (setq dir-box (reverse dir-box)) input-dir-box))) (defun myfind-store (input-list input-store-box pattern) (let ((store-box) (case-fold-search t)) (dolist (x input-list) (unless (equal "." (substring x -1)) (when (string-match pattern (file-name-nondirectory x)) (if store-box (setq store-box (cons x store-box)) (setq store-box (cons x input-store-box)))))) (if store-box store-box input-store-box))) (defun myfind-store-files (dir pattern) (let ((tmp-files (directory-files dir t))) (let ((dir-box (reverse (myfind-dir tmp-files nil))) (store-box (myfind-store tmp-files nil pattern)) (dir-temp-box)) (while (> (length dir-box) 0) (setq dir-temp-box ()) (dolist (x dir-box) (setq store-box (myfind-store (directory-files x t) store-box pattern)) (setq dir-temp-box (myfind-dir (directory-files x t) dir-temp-box))) (setq dir-box (reverse dir-temp-box))) (reverse store-box))))
144 :デフォルトの名無しさん :2014/10/16(木) 10:11:33.46 ID:9sgE7fDV.net 連投すみません。どこか外部にアップして、url を貼るべきでした。以上に対して、新しいコードでは、上記の関数 myfind-dir, myfind-store, myfind-store-files を以下に差し替えました。 (defun myfind-store-files (dir pattern) (let* ((tmp-files (directory-files dir t)) (dir-box) (dir-store) (store-box (vconcat tmp-files)) (i 0)) (setq dir-box (remove-if '(lambda (x) (or (not (file-directory-p x)) (equal "." (substring x -1)))) (vconcat tmp-files))) (while (> (length dir-box) 0) (while (< i (length dir-box)) (setq store-box (vconcat store-box (directory-files (aref dir-box i) t))) (setq dir-store (vconcat dir-store (remove-if '(lambda (x) (or (not (file-directory-p x)) (equal "." (substring x -1)))) (vconcat (directory-files (aref dir-box i) t))))) (setq i (1+ i))) (setq i 0) (setq dir-box dir-store) (setq dir-store nil)) (append (remove-if '(lambda (x) (or (equal "." (substring x -1)) (not (string-match pattern (file-name-nondirectory x))))) (delete nil store-box)) nil)))
145 :デフォルトの名無しさん :2014/10/16(木) 10:26:10.93 ID:ML6o1wZC.net いや、github とかにだね。。
146 :デフォルトの名無しさん :2014/10/16(木) 10:42:49.66 ID:ML6o1wZC.net vconcat して新しいベクトルをいっぱい生成してるけど、それぐらいならリス トをそのまま使った方がましだろうね。走査する速度が速くなるよりもベクト ルを生成するコストの方が高い気はする。 それから mapcar は C の関数だからベクトルでもリストでも気にするほどのパ フォーマンスの違いはない。elisp でパフォーマンスを気にしてプログラミン グするときは C で書いてあるか否かも意識するとよいね。 (let ((vec (make-vector 1000 nil))) (benchmark 100 `(mapcar 'identity vec))) (let ((lis (make-list 1000 nil))) (benchmark 100 `(mapcar 'identity lis))) ざっと見る限りひたすらプログラミング初心者なのでとりあえずパフォーマン スなんか気にしないで「リスト」を使って富豪的にどんどん書いてく方がいい よ。
147 :ID:9sgE7fDV :2014/10/16(木) 11:15:16.59 ID:DN4MHL3l.net >>146 コメントありがとうございます。 なるほど、パフォーマンスはかわらないのか。 elisp でいろいろ作ってみて、プログラミングを学んでいきたいと思います。 スレを汚してしまい、すみません。
148 :ID:9sgE7fDV :2014/10/28(火) 15:57:32.52 ID:XuuTzEP8.net elisp による find を書き直しました。 https://gist.github.com/anonymous/e0d440b0be2ab4106390 M-x efind で、ディレクトリとパターンをいれると、 指定したディレクトリ以下にあるファイルもしくはディレクトリのうち、 パターンにマッチするものを列挙します。 下線がひいてあるところは、enter を押すとリンクできます。 「ここは普通こう書くよ」など、コメントをいただけないでしょうか。
149 :デフォルトの名無しさん :2014/10/28(火) 16:53:12.91 ID:BaOL+HSr.net >>148 普通のdiredじゃ駄目な理由がわからん
150 :デフォルトの名無しさん :2014/10/28(火) 20:47:19.78 ID:ABQvesFS.net >>149 外部の find を呼ぶ find-name-dired などが、windows ではデフォルトでは使えないので作りました。 あれ、もしかして使えるのかも。もう少し調べてみます。
151 :デフォルトの名無しさん :2014/10/30(木) 22:47:05.96 ID:ZUGQOqFu.net 久々に来たけどなんかもりあがってるね。
152 :デフォルトの名無しさん :2014/11/16(日) 21:37:23.05 ID:ifD0nPmW.net >>148 君、すごうぃーね〜
153 :名無しさん@お腹いっぱい。 :2014/11/16(日) 23:28:59.20 ID:moSkozbZ.net 無駄多し、バグありの find-lisp-find-dired ってのが大昔からあるよ
154 :ID:9sgE7fDV :2014/11/19(水) 11:27:44.63 ID:De3REAga.net >>153 !! ありがとうございます。 ソースコードをみて書き方を学びます。
155 :デフォルトの名無しさん :2014/11/23(日) 11:20:51.79 ID:3HkxdKNj.net LispとPrologやれば Cでの再帰プログラムが得意になる
156 :デフォルトの名無しさん :2014/11/24(月) 06:26:03.94 ID:eOmEBZPc.net べつに lisp/prologの経験と 再帰の得手不得手は無関係だと思う
157 :デフォルトの名無しさん :2015/01/11(日) 18:20:45.19 ID:NEH94HBN.net なんか話題ない?
158 :デフォルトの名無しさん :2015/01/13(火) 10:50:02.39 ID:NDLkVK0s.net マイナーモードの作成について、こちらが意図しないアクション (とくに keyboard-quit) をされたら、そのマイナーモードを抜けるようにしたいんだけど、どうすればいいですか? できれば pre-command-hook や post-command-hook は使いたくないです。
159 :デフォルトの名無しさん :2015/01/13(火) 15:38:25.07 ID:8CwIIHPp.net >>158 > マイナーモードを抜ける の意味がわからない。 minor-mode のコマンドを途中でやめて元のキーシーケンスに戻るってことなら auto-complete.el の ac-fallback-command あたりを見るとよろしかろう。
160 :デフォルトの名無しさん :2015/01/13(火) 16:45:00.86 ID:NDLkVK0s.net >>159 コメントありがとうございます。 ご提示いただいたソースを読みたいと思います。 ちなみに、 (add-hook ’post-command-hook ’(lambda () (when hoge-mode (hoge-mode -1)))) のような処理を意図しております。
161 :デフォルトの名無しさん :2015/01/13(火) 17:30:12.89 ID:8CwIIHPp.net >>160 > (add-hook ’post-command-hook ’(lambda () (when hoge-mode (hoge-mode -1)))) それなら auto-complete.el の例は関係ないかな… post-command-hook 使うか timer で意図しないコマンドを監視するかしかないのではなかろうか。 何やろうとしてるか分からないから余計なことかもしれないけど、 minor-mode を使うという発想をやめるのも解に繋がるかもしれないよ。
162 :デフォルトの名無しさん :2015/01/13(火) 17:45:35.15 ID:NDLkVK0s.net >>161 ありがとうございます。 minor-mode を使うなら、あまり選択肢がないのですね。 > minor-mode を使わない なるほど!なんとなく、とりあえずでマイナーモードを利用していたのですが、使わないという発想も大事なのですね。
163 :デフォルトの名無しさん :2015/01/13(火) 18:03:40.40 ID:Wsh3Ajof.net そのものずばり何をしたいか書いちゃった方がいい気もする
164 :デフォルトの名無しさん :2015/01/13(火) 19:16:25.85 ID:NDLkVK0s.net はい、ありがとうございます。 自分用に ace-jump を拡張してます。 勉強のため、通常の ace-jump 部分も最初から作っております。 今回は、hoge-jump というマイナーモードを定義しておりました。 マイナーモードという形を選択した理由は、なんとなくなのですが、他に、マイナーモードを抜ける時点に hook をかけたいという理由があります。 具体的には、hoge-jump によってバッファに付加したオーバーレイを、hoge-jump の去り際にリムーブしております。 (ただ、本家の ace-jump もマイナーモードを使ってないのですね。 本家のほうをもっと検討したいと思います)。
165 :デフォルトの名無しさん :2015/01/17(土) 10:12:31.67 ID:IkrGJUzn.net 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の選択 のように。単語を指定した状態で実行したいのですが、 やり方が分からず。 わかる方いらっしゃいますか?
166 :デフォルトの名無しさん :2015/01/17(土) 15:43:11.36 ID:mj45QIEF.net >>165 ace-jump 使ってないからコメントしづらいけど 数日経ってこの調子だとすごく低いレベルで推移もしていないように見える。(まるで成長していない) 何をしようとしてどうだめだったのか書きたまえ。 ソースを見る限りだと ace-jump-char-mode の引数に目的の char を渡すだけ にも思える。 (ace-jump-char-mode ?A)
167 :デフォルトの名無しさん :2015/01/17(土) 20:04:09.96 ID:dLLfAZ37.net >>166 ちょっとまて、165 は私で別人ですよ。
168 :168 :2015/01/17(土) 20:58:25.28 ID:654N0mRZ.net 私のほうは、結局マイナーモードを使うにしろ使わないにしろ、keyboard-quit のタイミングを知るには post-command-hook に任意の hook をかけるしかないな、との考えに至りました。 なので、マイナーモードを使用し、それに入るタイミングと出るタイミングで add-hook と remove-hook をおこなうよう設定する予定です。
169 :166 :2015/01/19(月) 06:23:29.23 ID:q+OlVYly.net >>166 >>167 混乱させてすいません。。 asiiで書けと書いてありました。
170 :デフォルトの名無しさん :2015/01/19(月) 13:52:05.04 ID:9dIDW3L4.net >>169 s/asii/ascii/ ascii がどうとかはきっと本質的な問題じゃないよ。 基本的なことが理解できてない感じがするけど、 理解しようとする意欲が感じられない。0 点。
171 :デフォルトの名無しさん :2015/01/19(月) 14:00:29.29 ID:KroxEeJe.net 釣り質問としては85点くらい
172 :168 :2015/01/20(火) 12:57:47.26 ID:TBaNt/xg.net >>158 これ、unwind-protect でできるんですね。
173 :デフォルトの名無しさん :2015/01/20(火) 20:54:08.37 ID:boIocfqk.net (condition-case err (keyboard-quit) (quit (message "My Quit! %s" err))) (condition-case err (keyboard-quit) (error (message "Not Quit")))
174 :デフォルトの名無しさん :2015/01/21(水) 07:37:45.06 ID:ydgtfCH8.net アッシー
175 :デフォルトの名無しさん :2015/01/23(金) 00:28:52.51 ID:A+ui+mzv.net symbolp()は'symと:symの両方tを返すけど :symこれのみ真を返す述語あったっけ?
176 :デフォルトの名無しさん :2015/01/23(金) 00:38:40.51 ID:KyQRIuOJ.net keywordp
177 :デフォルトの名無しさん :2015/01/23(金) 02:16:59.21 ID:+QZK+ImI.net >>175 keywordp
178 :デフォルトの名無しさん :2015/01/23(金) 13:03:20.01 ID:A+ui+mzv.net >>176 ,178 キーワードか プロパティでさがしてた、ありがと
179 :デフォルトの名無しさん :2015/01/24(土) 13:37:32.69 ID:rWwk77U6.net どういたしまして
180 :デフォルトの名無しさん :2015/03/02(月) 23:35:21.61 ID:b1MuukTF.net swift-modeどこかに落ちてませんか?
181 :デフォルトの名無しさん :2015/03/03(火) 00:02:29.53 ID:3dr1cPx7.net 検索したら一瞬で出てくるが
182 :デフォルトの名無しさん :2015/03/17(火) 15:43:40.52 ID:oOjriwkf.net if とか and って special form だとおもうんだけれど、これ無しの普通の関数のみで条件によって実行するしないを含むようなプログラムって書ける? haskell みたいに、遅延評価を行えば可能らしいけれど。 聞く場所間違ってたらすまん
183 :デフォルトの名無しさん :2015/03/17(火) 16:21:51.69 ID:StR3CX22.net >>182 リストとして渡して内部でeval すりゃいいんでないの。 (defun xwhen (pred body) (when pred (eval body))
184 :デフォルトの名無しさん :2015/03/17(火) 19:52:02.87 ID:u03+oswx.net 特殊形式は無理じゃね
185 :デフォルトの名無しさん :2015/03/18(水) 00:49:30.65 ID:smUcV4wp.net 関数だと引数は全部実行というか評価されてしまうが、 マクロでなんとでもなる (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とマクロの違いは組み込みかどうかぐらい。 こんな感じで色々制御構文を作ったり、遅延評価のを実装したりもできるが、 あんまり濫用すると自分でもわからなくなってくる諸刃の剣 長文御免
186 :183 :2015/03/18(水) 01:01:43.13 ID:nZSu0bqF.net >>183 when は確かに special form ではなく、マクロなのですが、内部では cond を使っていて、私の望むものではありませんでした。条件があいまいで済みませんでした。 >>184 感覚的には無理なように感じていたのですが、当方あまり lisp や関数型言語に対して俯瞰がなく確証が持てなかったため質問したものでした。 >御二方 理解が深まりました。 ありがとうございます。
187 :デフォルトの名無しさん :2015/03/18(水) 01:09:21.60 ID:dNB2wbku.net special form を使わずに if 実装って elisp では可能なんだろか… macro 使ったとしても結局 if 的なことするためには置き換え先で special form 使うことになるよね。
188 :183 :2015/03/18(水) 01:19:26.33 ID:nZSu0bqF.net ID 変わってるかもですが 183 です。 >>185 内部的に特殊形式を利用しているので、申し訳なくも私がもともと期待していたものとは違うのですが、 特殊形式であっても独自拡張可能というのは面白いですね。 私は主に 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 をたくさん作るよりはマクロで構文糖衣するということで、これも面白いです。
189 :183 :2015/03/18(水) 01:50:01.10 ID:nZSu0bqF.net >>187 そうそう。それです。教えていただいた結果、私の疑問もそれになりました。 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 を自作できることになるんですかねぇ。 ちょっと自信が無いですが。
190 :183 :2015/03/18(水) 02:28:36.05 ID:nZSu0bqF.net (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 が必要になるかもしれませんが、 概念的には単なる写像というか単純なマッピング関数なのでありなのかなぁ。 チラ裏になってしまい申し訳ない。
191 :デフォルトの名無しさん :2015/03/18(水) 03:39:54.16 ID:smUcV4wp.net symbol-property-listでの力技を作ってしまおうかと思ったら先を越されてた。 >>188 もとの疑問を離れてその目的ならということだけど、 単純にその重い処理を関数として渡してしまうのがいいのでは。 よく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++のプロプロセッサだと動的に条件を変えたくなったら困らない? デバッグオプション付きで走らせた時だけトレースが欲しいとかもできなく なっちゃうし。 あとちょっと複雑なことやろうとすると急速に黒魔術化するイメージがある。
192 :デフォルトの名無しさん :2015/03/18(水) 07:20:53.23 ID:dNB2wbku.net >>190 はーなるほど。assq で判定させるとは考えつかなかった。 おもしろいねえこれ。
193 :デフォルトの名無しさん :2015/03/18(水) 07:23:49.75 ID:dNB2wbku.net 最低限組み込みで実装しなきゃいけない部分はどこまでで あとはその組み合わせで自己記述可能になるとかは lisp の教科書読めばわかるのかな。
194 :デフォルトの名無しさん :2015/03/18(水) 11:07:05.14 ID:mAuMOca0.net 純Lisp(pure Lisp)ってのだとcond使わざるを得なくなるから特殊形式は使わざるを得ないんじゃないかな
195 :183 :2015/03/18(水) 12:55:18.82 ID:nZSu0bqF.net >>191 もし、面倒でなければ「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 も上手く例が作れれば後程。
196 :183 :2015/03/18(水) 12:56:45.43 ID:nZSu0bqF.net >>192 あんまり 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 >>194 lisp は関数指向でも書けるけれど、そもそもマルチパラダイムなのが、 その規定の時点から現れているように思えます。 最小要素とするのに、macro による制御構造の書換えと 一箇所で特殊な振舞いをするという cond どっちが最小かと言えば cond のが小さそうです。
197 :デフォルトの名無しさん :2015/03/19(木) 10:18:55.55 ID:KVeBWceY.net >>195 力技というほどのものでもなかった (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とか読むと楽しいかもしれない。
198 :デフォルトの名無しさん :2015/03/19(木) 10:42:33.11 ID:QynmxxEd.net >>197 なるほど、こっちはプロパティを写像に使うのか いろいろ考えつくもんだなぁ
199 :183 :2015/03/20(金) 03:19:22.81 ID:x0oqiRHZ.net >>197 ありがとうございます。取り急ぎお礼を申し上げ乙。
200 :デフォルトの名無しさん :2015/05/26(火) 11:33:21.52 ID:dBigamDw.net setqと同等の機能を実現する関数は定義できますか
201 :デフォルトの名無しさん :2015/05/26(火) 13:54:08.02 ID:M2tYWf9M.net set と マクロ使えばできるんじゃない
202 :デフォルトの名無しさん :2015/08/29(土) 07:44:55.47 ID:vrZb3qx4.net なんかネタないの?
203 :デフォルトの名無しさん :2015/08/29(土) 11:38:36.28 ID:cVkBtg3P.net ついに俺のチンコが黒光りしてきた話はどうだ?
204 :デフォルトの名無しさん :2015/08/29(土) 13:38:04.80 ID:vrZb3qx4.net >>203 却下
205 :デフォルトの名無しさん :2015/08/30(日) 05:58:46.12 ID:dCMQNVLK.net >>203 どうやったら黒光りするの?
206 :デフォルトの名無しさん :2015/08/30(日) 06:03:17.10 ID:CnOlY9Pq.net 図書館で毎日ナンパして地下食堂のトイレでマン汁まみれで腰動かすんだよぉ
207 :デフォルトの名無しさん :2015/10/10(土) 12:55:20.49 ID:yXubKPZg.net なんか話題ないの?
208 :デフォルトの名無しさん :2015/10/12(月) 15:20:18.76 ID:pxYHqVTj.net API対応した2chリーダ誰か作んないかな?
209 :デフォルトの名無しさん :2015/10/31(土) 20:36:12.30 ID:YZFloUqY.net ない
210 :デフォルトの名無しさん :2015/11/01(日) 00:32:17.94 ID:seZhoDUW.net >>208 作ろっか?
211 :デフォルトの名無しさん :2015/11/15(日) 09:25:10.66 ID:Bf2qkjUe.net >>210 おねがいします
212 :デフォルトの名無しさん :2015/11/19(木) 21:57:45.42 ID:NWoSZj2q.net >>211 よしわかった
213 :デフォルトの名無しさん :2016/03/05(土) 00:21:51.81 ID:KaW6Box3.net >>212 いえーい
214 :デフォルトの名無しさん :2016/04/18(月) 00:14:54.95 ID:rfz/B1KY.net いーまっくすはじめようとしたらしょしんしゃはこれやっとけのところでえらーになったのでもうねます
215 :デフォルトの名無しさん :2016/09/10(土) 01:53:11.20 ID:LstVZLgo.net 初心者です 以下の文を電話で伝える場合、どのように話せばよいか教えて下さい。 (assq bool (list '(t car) '(nil (lambda (x) (car (cdr x)))))))) 例: かっこ始まり、えいえすえすくー ぶーーと かっこ始まり・・・・・・・・ みたいな感じでお願いしまつ
216 :デフォルトの名無しさん :2016/09/10(土) 01:56:10.66 ID:LstVZLgo.net すみません。前の質問の補足ですが、なんで電話で伝えるかなのですが、 有料サポートで、おぺれーたーのお姉さまから、エラーのでる行を読み上げて下さいと言われたのですが、答えられない事があって、こんどこそ上手く説明しようとおもっています。
217 :デフォルトの名無しさん :2016/09/10(土) 08:51:21.97 ID:Jm2YrF8N.net 全部一文字ずつ読みあげれ 電話で済むことをいちいち不便な掲示板使うな 1分3000円とかかかるなら別だが
218 :デフォルトの名無しさん :2016/09/10(土) 08:59:54.80 ID:SMvnZvc1.net 電話サポートとかぼったくり以外の何物でもないんじゃ… そもそもエラーの出る行が問題とは限らないし普通はメールかチャットでしょう
219 :デフォルトの名無しさん :2016/09/25(日) 01:38:58.62 ID:3wxXNG/W.net windows機しか持ってなくて、今までCygwinについてくるvi使ってたんだけど、emacsを使ってみてるんですけど、ターミナル上でemacs使おうと思ったらいちいち-nwオプション付けないといけないんですか?それともみんなターミナルとは別ウィンドウで使ってるんですか?
220 :デフォルトの名無しさん :2016/09/25(日) 02:22:35.97 ID:sCxOb1W2.net >>219 そんなの人それぞれ。 -nw付けるのが面倒なら、aliasすればいい
221 :デフォルトの名無しさん :2016/09/25(日) 05:04:32.10 ID:16slqqIx.net >>219 cygwinで-nw付けないで実行するならWindows上にX11サーバ立てないと ntemacsとかならWindowsのUI上で実行されるよ。
222 :デフォルトの名無しさん :2016/11/24(木) 22:34:59.53 ID:blWHS/2X.net >>216 elispで有料サポートしてる日本語窓口に興味ある アレグロとかならまだわかるけど >>218 普通はコードの内容の確認までするの?
223 :デフォルトの名無しさん :2016/11/25(金) 15:26:09.57 ID:NaD61Q6Y.net 確か大学生を鴨にしてる有料サポートがあった気がする 普通に指導員(大学院生のバイト)に聞いた方が早いし無料だし正確じゃんと思った覚えがある
224 :デフォルトの名無しさん :2016/12/24(土) 02:23:20.52 ID:MPulp/OB.net Emacsは衰退しました http://qiita.com/itckw/items/ff079c7572d6a1acd349
225 :デフォルトの名無しさん :2016/12/24(土) 13:17:00.38 ID:p4lqfCaM.net マルチ乙
226 :デフォルトの名無しさん :2017/12/01(金) 18:24:03.28 ID:bCsj1eZc.net 今年もクリスマスイブに書き込みあるかな?
227 :デフォルトの名無しさん :2018/01/17(水) 14:02:46.62 ID:k+xp7qjU.net 10年以上前のものなんですが、seimei.el というfjに流れていたelispを探しています。 どこかに残ってないでしょうか? ご存知の方いらしたら教えて下さい
228 :デフォルトの名無しさん :2018/01/18(木) 00:03:27.86 ID:XNRvPuZu.net JGをキーワードに検索した http://www.ring.gr.jp/pub/linux/Plamo/Plamo-3.0/plamo/jg1/seimei.tgz emacs25.3でも動いた、懐かしいな なによりplamoって現役なのにびっくり
229 :デフォルトの名無しさん :2018/01/18(木) 10:48:17.98 ID:OQasshBO.net >>228 サンキュー!ありがとう!!
230 :デフォルトの名無しさん :2018/02/18(日) 07:19:36.63 ID:9uxjLLGw.net load-historyにFILE-NAMEがnilのエントリーがあるかも、とヘルプにあるんですけど、そのエントリーがどのタイミングでどこから書き込まれてるか教えてください(eval-regionのブレークポイントつけても引っ掛からなかったです)。お願いします
231 :デフォルトの名無しさん :2018/02/18(日) 23:14:43.83 ID:nDa4ZZlt.net >>227-229 過疎スレなのになんか気持ち悪いな。。。 バーカ
232 :デフォルトの名無しさん :2018/02/19(月) 05:58:48.07 ID:8lFyLir4.net >>230 よく知らないが、リファレンスマニュアルを見た限りではそこは eval-region じゃないんじゃ……という気がする。 "emacs-lisp" "load-history" でググったらそれらしいのが出てきたよ。
233 :デフォルトの名無しさん :2018/02/19(月) 12:06:58.79 ID:IAYRjFJ3.net >>232 ありがとうございますマニュアル見直してみたらeval-bufferかもしれないです。もう1回やってみます
234 :デフォルトの名無しさん :2018/02/19(月) 17:50:11.40 ID:dLVrNTbV.net >>233 15年前の情報ですが http://lists.chise.org/pipermail/apel-ja/2002-July/001659.html
235 :デフォルトの名無しさん :2018/05/23(水) 20:23:27.26 ID:Au5e7VGg.net 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 147M7
236 :デフォルトの名無しさん :2018/07/05(木) 01:22:22.58 ID:RfoszcD2.net IEE
237 :デフォルトの名無しさん :2018/11/22(木) 15:42:31.66 ID:r/GLumvr.net elispと若干違うけどスレがないので質問させてください C-x C-hとやるとC-xから始まるコマンド一覧はでるのですが モードごとのコマンド一覧を出すコマンドもあったと思うのですが何だか分かる方いますか ruby-modeを入れたのですがどんなコマンドがあるのか調べたいです
238 :デフォルトの名無しさん :2018/11/22(木) 16:45:53.83 ID:vHHfqSHt.net C-h b あと、メニューバーを見れば基本的なキーバインドは確認できる 消してる場合は C-右クリ
239 :デフォルトの名無しさん :2018/11/22(木) 17:29:44.31 ID:r/GLumvr.net >>238 ありがとうございました
240 :デフォルトの名無しさん :2019/03/21(木) 00:07:03.75 ID:BVBXqX32.net 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)))
241 :デフォルトの名無しさん :2019/11/17(日) 22:43:13.52 ID:rHCPJv2k.net 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)
242 :デフォルトの名無しさん :2019/12/15(日) 00:19:45.52 ID:YAW0GHgK.net サクラエディタの代わりにLinux上で簡易なテキストの正規表現やコピべマンとして ボリュームがvi以上vscode未満ということでEmacs採用したけどまともに使うまでにでもマゾ過ぎないかこれ
243 :デフォルトの名無しさん :2019/12/15(日) 02:28:29 ID:qZlo5BGy.net Emacsってのは、すみずみまでいじり回して遊びたい人のための、組み立てキットみたいなものなんだよ。 改造しやすいってのが最大の売りで、各自で好みに合うように作り変えるのが大前提。 素のままでも一応は使えるけど、そんなに便利には作られてない。 魔改造とかする気がないなら、他に適したエディタがあると思う。
244 :デフォルトの名無しさん :2019/12/15(日) 10:46:01.17 ID:S9GzmkuV.net wine使ってサクラエディタが動くから試してみたら? Emacsは何かの代わりに使おうとすると、操作体系が違い過ぎて挫折する
245 :デフォルトの名無しさん :2020/02/25(火) 21:01:07.43 ID:nMAvGdtS.net 2つ質問します。 1. 選択範囲を削除するけれど、kill-ringに入れないという設定を教えて下さい。 kill-ringの一番新しいものをそのままにしておきたいからです 2. yankした際に、yankされたものの末尾にカーソルが飛ぶのですが、 カーソルが移動しないようにする設定を教えて下さい。 お手数をおかけしますが、お願いします。
246 :デフォルトの名無しさん :2020/02/25(火) 21:13:58.66 ID:I3QTYUIA.net 2 は C-u C-y でOK
247 :デフォルトの名無しさん :2020/02/25(火) 23:07:15.03 ID:Z6R/vWss.net >245 1は M-x delete-region
248 :デフォルトの名無しさん :2020/03/02(月) 00:52:27.30 ID:8zyc+iZb.net ご回答ありがとうございました。大変助かりました。
249 :デフォルトの名無しさん :2020/03/16(月) 17:02:19 ID:r6kvZN2B.net シェルスクリプトからemacs ―batch で処理した結果をprintすると \\. \\. \\“ みたいの沢山でてくる エスケープなしで表示された通りの文字列を得るにはどうすれば良いのでしょう
250 :デフォルトの名無しさん :2020/03/16(月) 17:29:13.93 ID:uq6V7ZgT.net >>249 princ
251 :デフォルトの名無しさん :2020/03/17(火) 01:23:57.66 ID:h1pz+/ac.net princにすると \\, が \, になったのですが , にする方法はないのでしょうか
252 :デフォルトの名無しさん :2020/03/17(火) 02:39:06.56 ID:Kot3zOY6.net >>251 princ が引数の文字列に含まれていない \ を勝手に印字することはないから、 その「処理」とやらで \ を追加しているのでは または emacs への入力の時点ですでに \ を含んでいるとか
253 :デフォルトの名無しさん :2020/03/19(木) 22:49:52 ID:Fc1yZB1g.net >>251 読み込む時にreadしてんじゃないか?
254 :デフォルトの名無しさん :2020/08/26(水) 15:21:01.87 ID:L7JtIZFl.net Windows の Emacs 日本語入力しようとして 半/全 キー押してしばらくしたら Emacs ウィンドウ全部落ちた バグ?
255 :デフォルトの名無しさん :2020/08/26(水) 21:46:47.96 ID:WFfMUKrt.net おま環
256 :デフォルトの名無しさん :2020/09/08(火) 23:54:37.39 ID:L2ZCtfX62 大学で学ぶ物理を板書1枚にまとめてみたhttps://www.youtube.com/watch?v=naBcXoq4aOI 物理の研究分野を板書1枚にまとめてみたhttps://www.youtube.com/watch?v=4W-pWuXUaZQ 理学部と工学部の違いとは?https://www.youtube.com/watch?v=eJH4nKU6mJA&t=80s 大学と大学院の違いhttps://www.youtube.com/watch?v=xBKAEvTegN8 高校と大学の積分は決定的に違う?微分積分学の基本定理は実はすごい!https://www.youtube.com/watch?v=V9i_zlbssbs&t=475s 数学にはどんな研究分野がある?数学の世界地図を一枚に描いて紹介してみた!https://www.youtube.com/watch?v=fK_JGVti5y8
257 :デフォルトの名無しさん :2020/10/14(水) 10:11:53.97 ID:GsUUoEHv.net (point) って 4GB 以上のファイルでも安全?
258 :デフォルトの名無しさん :2020/10/16(金) 16:47:48.59 ID:w0E7/mRw.net わからない
259 :デフォルトの名無しさん :2020/10/19(月) 12:25:40.39 ID:asy7wTux.net >>254 windows 10 64bit emacs 26.3 64bit また再現した emacs 以外も含めて(同時起動中のソフト) windows 10 全体の ime が モードが変になったり勝手に改行されたり狂い始める このまま使い続けるとそのうち emacs が落ちるんだと思う task manager から ctfmon.exe を殺したら治ったっぽい
260 :デフォルトの名無しさん :2020/10/27(火) 16:42:12.74 ID:yDmA/b17.net emacs って 8MB 以上のテキストファイルで警告出るω 最近の大きめの xml とか json とか yaml とか怖くて編集出来ないωωω
261 :デフォルトの名無しさん :2020/10/28(水) 00:47:27.01 ID:6sYlouKi.net >>260 は?
262 :デフォルトの名無しさん :2020/10/28(水) 10:14:23.93 ID:B0xF7HGe.net それじゃなにか?きみは「ここから先は18歳以下は閲覧できません」っていう 警告がでたからといって見たいエロ動画も見ずにすごすごと帰る、というそんな腰抜けなのか!
263 :デフォルトの名無しさん :2020/10/28(水) 11:50:59.99 ID:Mf8tEr2f.net rmsがロリって本当?
264 :デフォルトの名無しさん :2020/11/08(日) 09:55:05.64 ID:w3b7rq0H.net Emacs 26.3 (build 1, x86_64-w64-mingw32) of 2019-12-31 漢字キーを押して 「でるた」 で変換始めると 重たくなって しばらくしたら落ちる
265 :デフォルトの名無しさん :2020/11/08(日) 09:56:25.01 ID:w3b7rq0H.net の表示のあとカーソルが消えて重くなる
266 :デフォルトの名無しさん :2020/12/22(火) 20:43:24.63 ID:XUuxytE9Y 70億円調達のネットショップ作成サービスhey、「我の弱い人同士の組織力」武器にEC市場シェア拡大目指すhttps://www.businessinsider.jp/post-219205 【劇団ノーミーツ1】役者も客も会わないオンライン演劇で7000人動員。制作チームは全員20代、半分は会社員https://www.businessinsider.jp/post-219184 利用、無料。日本版衛星データプラットフォーム「Tellus」がすごい理由…“宇宙の視点”でビジネスはこう変わるhttps://www.businessinsider.jp/post-219279 「起業ブーム」が新たなフェーズに 大学発ベンチャーへの想いhttps://forbesjapan.com/articles/detail/35527 かつて学者がやっていたことを、今は起業家がやっているhttps://diamond.jp/articles/-/232874 番号やアドレス不要の無料通話アプリRe-mo登場 ドワンゴが配信開始https://japanese.engadget.com/ios-dwango-re-mo-072853620.html 10年間使い続けた WordPress を辞めた理由 a-blog cms を選んだユーザーのお話https://webtan.impress.co.jp/u/2020/09/14/37485 ノロケツイートがバズって起業! カップル・夫婦向けサービス「ふたり会議」が反響を呼ぶワケhttps://www.itmedia.co.jp/business/articles/2008/23/news012.html コロナで細る“起業”を手助け。クラウド会計freee、スマホアプリで設立書類を作成できるサービスhttps://www.businessinsider.jp/post-219220
267 :デフォルトの名無しさん :2021/01/02(土) 05:41:57.10 ID:FBnLdTomD > 在日の親は、子供を朝鮮幼稚園・朝鮮学校に入れたいっていうのが多いのよ。 > 日本人からすると、なんでだろうって思うけど、日本人の学校では、民族の誇りを持った教育がしてもらえないんだそうだ。 > よく分からないけど、済州島の流刑者の白丁が大阪に密入国して住み着いたじゃ誇りが持てないけど、 > 日本人に強制連行された被害者なら誇りが持てる、とかそういう事かな?? > > 市原市の能満は昔から市街化調整区域で、新規の建物は造れないことになっている。 > そのため土地が安く、日本の法律を無視した在日が、次々と移り住んできた。 > そこで問題になったのが、朝鮮学校だ。なかなか許可が下りず、一番近くても千葉市にしかない。 > そこで在日居住区の能満内にあった、能満幼稚園・市原小・市原中・緑高の保育士や教師を、朝鮮化する事を考えた。 > 今では在日幼稚園の保育士は全て朝鮮帰化人で、在日の父兄からの絶大な支持を受けている。 > 遠くからでも、わざわざ在日幼稚園に入園させたいという在日の親は、後を絶たない。 > この在日幼稚園卒園者はほぼ朝鮮系の帰化人と在日だ。
268 :デフォルトの名無しさん :2021/02/08(月) 16:32:46.35 ID:FcZ190S6.net 日本語入力はもう諦めた 単にコードや英文に記号使いたいならdigraph覚えるのをオススメする \C-c k D *で対応するギリシア文字凾ンたいな dならδ、->で→、数学記号も不足なし あとかなはkaでカナはNaだったり 国際規格があるので覚えとけば汎用性がある (比べる訳じゃないが少なくともvimでは標準機能) (global-set-key (kbd "C-c k") (define-prefix-command 'alistから記号拾ってくる関数 )) 自分用elも転がってたけど網羅的でないかったので、ググって一番に出てくるvimヘルプのテーブルをコピペして整形した melpaに無いと思い込んでたんだけど、今調べたらevilとかいうevilなのが出てきた、多分名前でスルーしてたわ
269 :デフォルトの名無しさん :2021/02/08(月) 16:39:31.18 ID:FcZ190S6.net ひらがなかたかなときごうとalphabetのぶんしょうなら、マップがローマ字にゅうりょくとたいおうしているので、いっそdefine-keyしてしまえばじっしつIMEいらずだぞ!
270 :デフォルトの名無しさん :2021/02/08(月) 16:40:43.17 ID:FcZ190S6.net 字はうてなかった、かたておち… まあ、げんきかくまではみてないのでもしかしたらかんじもあるかも
271 :デフォルトの名無しさん :2021/10/09(土) 19:32:02.55 ID:KRzSwEb7.net Bash on windows(Ubuntu)のemacs Windows 10に scoop install emacs した環境 どっちも環境変数homeを見にいくのでciderがどっちかの環境で動いてくれない
272 :デフォルトの名無しさん :2023/01/30(月) 07:49:47.97 ID:Va8OFUvh.net ただ今制限を設けております
273 :デフォルトの名無しさん :2023/03/16(木) 20:55:47.71 ID:ZbJTgfVx/ 震災ガ一とか税金泥棒か゛防災ガ―とかテ゛タラメほさ゛いてるけと゛,クソ航空テ□リストが莫大な温室効果ガスまき散らして気候変動させて北極 南極の氷とかして海面上昇させて津波猛威化させたせいて゛数千人は人為的に殺害されたってのに滑走路倍増させて都心まて゛数珠つなぎでクソ 航空機飛ばして土砂崩れに洪水.暴風,猛暑,大雪、森林火災にと災害連發させて住民殺しまくって私腹を肥やす儿フィ顔負けの強盗殺人を 繰り返して.数千円でクソ鯖落とすほどの地球破壞殺人セ━ルまでスルーしておいてモク├−だの自己満娯楽とか堪能してんじゃねえぞカス 数千圓で莫大な温室効果カ゛スまき散らせるとか地球破壊に対する補償と゛ころか税金払ってない証拠だろ,これに加担して孑に地球破壞を教え 込む羞恥心の欠片もないクス゛親と,孑を持つ資格のない金クレほさ゛いてる税金泥棒層が一致してるのは間違いないわな、クソ航空機のせいて゛ 石油需給逼迫してヱネ価格に物価にと暴騰して貿易赤字、コ□ナ運ひ゛込んて゛マッチポンプワクチンでホ゛□儲け.接種率に比例して心不全爆増 温暖化によって鳥ウイルス猛威化して鶏卵価格暴騰.騷音て゛知的産業壊滅に勉強まて゛妨害してクス゛親の子によるヰライラ犯罪まて゛爆増中だろ 創価学会員は、何百万人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まで出てる世界最悪の殺人腐敗組織公明党を 池田センセ−がロをきけて容認するとか本気で思ってるとしたら侮辱にもほと゛か゛あるぞ! hтtΡs://i,imgur,com/hnli1ga.jpeg
274 :デフォルトの名無しさん :2023/06/16(金) 10:34:02.32 ID:qIHKiMoS6 物価高の中,給料が上か゛るどころか下がって□─ン破綻して,親世代の稼き゛はすごいなあとか思ってるお前らって根本的に勘違いしてるよな 価値生産する者が価値生産しない者を食わしてやることて゛、社会が成り立っているという基本を理解すれば,何ひとつ価値生産しない公務員や 政権癒着して優越的地位を濫用しながら右から左に流すた゛けの大企業という社會を蝕む害虫か゛ハ゛ブ儿を謳歌し続けてる異常さが分かるだろ こいつらが金を使うことでお前らにおこぼれが入るというのが自民公明経済なわけだが,イノベ━ション壞滅曰本て゛地球破壞すること以外に 金を使うことなんてないから預貯金か゛膨れ上か゛ってるわけで,人殺し斉藤鉄夫らの地球破壊支援なんてのはてめえらの私利私欲か゛目的だからな そして温室効果ガスに騷音にコロナにとまき散らして工ネ価格暴騰させて災害連發させて人を殺しまくって知的産業に威カ業務妨害して壊滅 さらに人々が手に入れたいものが生産されなくなって貿易赤字、スパヰラ儿的に中小零細にしわ寄せか゛いってるというのか゛曰本総崩れの本質な ソフ├ウェアの大半は零細個人が作ってるが、例えは゛ク゛─ク゛ルAndroidなんてそんなOSSパクリの寄せ集めだからな>零細企業殲滅宣言岡本Ξ成 創価学會員は.何百万人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を 池田センセ‐か゛ロをきけて容認するとか本気て゛思ってるとしたら侮辱にもほと゛があるぞ! hTΤρs://i,imgur、cоm/hnli1ga.jpeg
275 :デフォルトの名無しさん :2023/09/25(月) 16:47:00.13 ID:Qn9WiVG4.net こっちを再利用してください
276 :デフォルトの名無しさん :2023/10/13(金) 13:14:55.06 ID:1CzMMp9Z.net emacs lispでC++のコメントを削除(行コメント//だけを行ごと削除)する方法を教えてください
277 :デフォルトの名無しさん :2023/10/13(金) 14:18:48.79 ID:oUGpYLYU.net (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)))))
278 :デフォルトの名無しさん :2023/10/13(金) 14:19:30.72 ID:oUGpYLYU.net (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)))))))
279 :デフォルトの名無しさん :2023/10/13(金) 14:20:49.82 ID:oUGpYLYU.net 最初のはコメントを抜き出すコード 次のはコメント以外を抜き出すコード バッファー内のコメントを消していくのは難易度が高い コメント以外を出力してリダイレクトするのが簡単だろう ↓こんな感じ (not-comment-traversal (point-min) (point-max) (lambda (beg end) (print (buffer-substring beg end)))) ちなみにコメントはEmacsが把握してるので、このコードは言語非依存だ
280 :デフォルトの名無しさん :2023/10/13(金) 14:38:43.09 ID:rlk6vHPT.net そういうつまらないものはchatgptに作らせればいい
281 :デフォルトの名無しさん :2023/10/13(金) 16:01:32.18 ID:oUGpYLYU.net Emacs Lispのコードなんてまともに学習できないよw
282 :デフォルトの名無しさん :2023/10/13(金) 16:08:10.43 ID:ugq7JLEK.net うん、だから、ChatGPTはバカだな こんなものに時間をそそいでいる人類はバカ
283 :デフォルトの名無しさん :2023/10/13(金) 23:03:38.37 ID:9b0YvF5R.net そういうのはキーボードマクロが向いている //をインクリメントサーチして、c-a,c-k,c-k で名前を付けて登録 登録したマクロを10000000回ぐらい実行すればいい
284 :デフォルトの名無しさん :2023/10/14(土) 12:49:27.28 ID:x03gZ5vc.net >>282 ほんそれ
285 :デフォルトの名無しさん :2023/10/15(日) 11:32:10.04 ID:HSf5ScFa.net ファイルの先頭に移動して M-x flush-lines を起動して ^// を打ち込んだら消せました
286 :デフォルトの名無しさん :2023/10/15(日) 15:15:27.51 ID:Z4N/9jbi.net hoge(); // コメント とか /* コメント */ は消せないじゃん
287 :デフォルトの名無しさん :2023/11/11(土) 20:06:28.30 ID:6Uwmj7p8.net だからキーボードマクロを使えって /*をインクリメントサーチ二文字戻って マーク、*/をインクリメントサーチで探して kill-region これをキーボードマクロにして 何なら名前を付けて init.el に登録することもできる
288 :デフォルトの名無しさん :2023/11/11(土) 20:13:40.67 ID:6Uwmj7p8.net 具体的には 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 これで登録できる
289 :デフォルトの名無しさん :2023/11/12(日) 01:44:20.85 ID:IUEeiAD3.net >>287 /* */と//の両方消せないじゃん
290 :デフォルトの名無しさん :2023/11/12(日) 16:34:00.64 ID:pFykNXrS.net 別々に作って二回走査すればいいだけでは?
291 :デフォルトの名無しさん :2023/11/12(日) 19:43:42.90 ID:IUEeiAD3.net /* // */ は、先に // で消してしまうとおかしな事になるな まぁ、先に/* */を消せばいいがな それと、>>288 のマクロはコメント1個しか消せないじゃん 全部消さないと 取り敢えずこれらを全部対応させたキーボードマクロを出さないと駄目
292 :デフォルトの名無しさん :2023/11/13(月) 23:08:48.29 ID:Y+b0wq04.net /* */を排除するマクロを100000回ぐらいやって 次に // を排除するマクロを1000000回ぐらい動かす 気持ち悪いかもしれないが目的は達せられる
293 :デフォルトの名無しさん :2023/11/18(土) 15:57:54.85 ID:bNx8n+lD.net インクリメントサーチが失敗するまで 無限ループで回すことはできるけどね
84 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者