- 1 名前:デフォルトの名無しさん mailto:sage [2013/10/20(日) 07:50:56.93 .net]
- Emacs Lispのスレです。
- GNU Emacs Lisp Reference Manual www.gnu.org/software/emacs/manual/elisp.html - An Introduction to Programming in Emacs Lisp www.gnu.org/software/emacs/manual/eintr.html - Emacs Wiki の "EmacsLisp" www.emacswiki.org/cgi-bin/wiki/EmacsLisp - GNU Emacs www.gnu.org/software/emacs/emacs.html
- 66 名前:デフォルトの名無しさん mailto:sage [2014/02/11(火) 12:58:36.81 .net]
- >>65
calc-eval ってのがあるよ。 (setq str (calc-eval str)) で ok。 calc は無駄に多機能だから info 読んでみるといい。
- 67 名前:65 mailto:sage [2014/02/11(火) 17:47:10.31 .net]
- >>66
できました。ありがとうございます。
- 68 名前:デフォルトの名無しさん [2014/02/12(水) 09:38:07.02 .net]
- >>66
こういう親切な人がいるところが2ちゃんの凄いところ
- 69 名前:デフォルトの名無しさん mailto:sage [2014/02/12(水) 17:48:01.21 .net]
- ム板ってマイナー言語とかのスレに凄い優しい人一杯いるよね
- 70 名前:デフォルトの名無しさん mailto:sage [2014/02/12(水) 17:52:46.28 .net]
- 仲間が少なくなってきてるから寂しいんだろう
- 71 名前:デフォルトの名無しさん mailto:sage [2014/02/12(水) 23:04:33.78 .net]
- Sublime Textが
Emacs LispやCommon Lispで拡張できるようになったらどうするんだろうか。
- 72 名前:デフォルトの名無しさん mailto:sage [2014/02/12(水) 23:05:24.28 .net]
- Sublime TextがEmacsenになる
- 73 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 01:01:11.54 .net]
- >>73
なんだなら全部C言語なんだね! pythonもC言語だから 全部既にできたことなんだね! C言語を経由すれば全て可能! ということだよね!
- 75 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 01:10:17.62 .net]
- そりゃそうだろ
機械語最強伝説みたいなもんだ
- 76 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 01:20:48.87 .net]
- >>74
プログラムの再起動とか無しに自身を書き換える機能が欲しい コンパイルが必須な言語だとちょっと使い勝手が悪いかな メモリ管理も自動でやってほしい
- 77 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 01:23:31.49 .net]
- elisp も ffi が実装されたら素敵なんだが
- 78 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 01:27:09.81 .net]
- Pymacsとかそれっぽい
- 79 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 02:09:03.65 .net]
- pythonはインデントが嫌いなんだよなー、構文で文ブロック表さないようにしている所がどうしてもなじめない。
なのでいまだにEmacsラブラブなんであるよ。 あと基本の削除がKillRing無いと生きていけない
- 80 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 05:24:21.72 .net]
- 俺は逆
Pythonのインデントが美しい、見やすい。ブロック指示語無しでの表現がスマート でも、Lisp使いになると東大女とやり放題と聞いたのでLispの勉強を始めた
- 81 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 07:52:22.02 .net]
- >>71
理想的だな。 Emacsを使う理由が薄れる。 ここのスレの住人はLispで拡張できるからEmacsを使うって人が多いと思う。 目的がLispであってEmacsは手段でしかない。 できれば素のlisp,common lispが使えれば理想的だな。
- 82 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 07:54:13.80 .net]
- 俺はxyzzyだけど
- 83 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 08:48:50.79 .net]
- >>82
だけど、何?
- 84 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 09:57:01.02 .net]
- xyzzy はより Common Lisp っぽいんじゃなかったっけ
emacs lisp は lisp 好きにはむしろ
- 85 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 11:38:56.40 .net]
- Common Lispで実装されたEmacsみたいなエディタあるよ。
でもEmacsのように便利に使おうと思うと、自分でCommon Lispをバリバリ書かないといけない。
- 86 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 12:43:10.37 .net]
- あったとしてもEmacsやVimくらい世界中からHackされようじゃないとねぇ。
zyzzyなんて海外じゃ誰も知らないだろうし。
- 87 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 12:45:46.31 .net]
- xyzzy さり気なく github で開発継続してたんだなあ
- 88 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 17:12:56.16 .net]
- >>86←
お馬鹿丸出し
- 89 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2014/02/23(日) 21:16:16.11 .net]
- お前ら、久々の仕事だぞ。
- 92 名前:デフォルトの名無しさん mailto:sage [2014/02/23(日) 21:20:02.14 .net]
- >>90
forward-char
- 93 名前:デフォルトの名無しさん mailto:sage [2014/02/23(日) 22:08:08.90 .net]
- 関数組めばいいのに
それにショートカットきーを割り当てる
- 94 名前:デフォルトの名無しさん mailto:sage [2014/02/23(日) 22:09:51.03 .net]
- > 「矩形、編集」などで調べましたがわかりませんでした。
もっと深く調べろ
- 95 名前:デフォルトの名無しさん mailto:sage [2014/02/23(日) 22:12:44.44 .net]
- 矩形、編集で調べている時点であかん
もともと、そんな関数あるわけない。 カーソル制御で知らべろ で、関数作れ(簡単にできる)
- 96 名前:90のなりすまし mailto:sage [2014/02/23(日) 22:49:00.93 .net]
- >>91
てめーは何もやらないのかよ、使えねぇなカス >>92 そんな関数1つだけで出来る訳ねーだろ、氏ね >>93 抽象的なことだけ書き込んで悦に入ってんじゃねーよ >>94 煽る以外に芸が無いのかよ、無脳 >>95 だったら、その関数をてめーが組んで、ここに貼り付けろ ジョークだから本気に受け取らずに藁ってね
- 97 名前:デフォルトの名無しさん mailto:sage [2014/02/25(火) 03:36:47.58 .net]
- 今だにemacsとか使ってるバカいるのか。
Common Lispでなければ 意味ない。
- 98 名前:デフォルトの名無しさん mailto:sage [2014/02/25(火) 03:54:33.31 .net]
- そうかな?
俺自身はCommon Lisp系のxyzzyを使っているが emacsはemacsで良さがある
- 99 名前:デフォルトの名無しさん mailto:sage [2014/02/25(火) 09:22:57.05 .net]
- >>97
(require `cl)
- 100 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 08:13:00.51 .net]
- 質問です。
実行後、空白行で区切った段落を1行で省略表示させて、 カーソル行が省略表示されている段落と同じ範囲内に来た場合に 展開してくれるというものが作りたいのですが、可能でしょうか? 【実行前】 テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト □←カーソル位置 テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト 【実行後】 テキストテキストテキストテキストテキストテキスト... □テキストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテキスト
- 102 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 08:23:12.92 .net]
- >>101
出来るでしょう。 テキストプロパティやオーバーレイには 表示内容だけ一時的に変更するってのと、カーソルが上に乗った時/いなくなった時に任意の関数を呼び出すって属性があるから それを設定してやればいいんじゃないかな。 hs-minor-mode あたりを設定を変えつつ使うのが楽でいいんじゃないでしょうか。 隠す区切りを改行が連続している領域に変更して、 隠す処理を行ってる関数あたりに point-entered/point-left で表示をトグルする処理を追加してやると。
- 103 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 10:46:01.33 .net]
- hs-set-up-overlay に出入りした時に隠したり表示したりするプロパティ追加する関数せっていすりゃいいんじゃね。
- 104 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 21:33:23.49 .net]
- >>103
具体的にどのようにすればよろしいでしょうか?
- 105 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 21:48:51.04 .net]
- まずorg.elを開きます
- 106 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 21:56:23.12 .net]
- point-entered は残念ながら overlay では機能しないらしいから
気合入れて text-property に追加してまわるしかないんじゃないかなあ post-command-hook でいちいちチェックして hs-hide-block/hs-show-block もいいかもね
- 107 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 07:20:52.21 .net]
- 一度elispの拡張の楽しさを覚えると、他のエディタに移れない
- 108 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 07:48:40.35 .net]
- ひょえー
固まっていくんだ
- 109 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 16:22:33.05 .net]
- >>107
vimやsublimetextはpythonで拡張できるけどそれと比較してどうよ?
- 110 名前:デフォルトの名無しさん [2014/03/10(月) 16:28:12.11 .net]
- Pymacs動くから普通にPythonでも拡張できるよ
- 111 名前:デフォルトの名無しさん mailto:sage [2014/03/11(火) 20:38:09.46 .net]
- Lispで拡張子できるのに、ナニが悲しゅうてパイソンつかうんや?
Lisp使えへんからか? ひょっとしてナニがうずくんか? 「リストは飽きた、パイもませろ」 エッヂね、あなた
- 112 名前:デフォルトの名無しさん mailto:sage [2014/03/11(火) 20:39:25.89 .net]
- リスト × L
リスト ○ R
- 113 名前:デフォルトの名無しさん [2014/03/25(火) 18:27:18.16 ID:Ye296TBS.net]
- なんか話題ない?
- 114 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 23:27:38.28 ID:LML8JeED.net]
- >>109
Vim ってpythonで拡張できるん?
- 115 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 23:31:15.83 ID:6UDaHe6u.net]
- emacsは遅めだな
- 116 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 00:13:29.55 ID:/J3FM59H.net]
- >>114
python だけじゃなく ruby とか lua でも拡張出来るよ ただしコンパイル時に if_python とか if_lua とか組み込まないとだめだけど オリジナルの Vim scriptは海外ではウケが悪いんだとさ
- 117 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 02:09:44.05 ID:FdT+1cD1.net]
- 24.4から (< a b c …) できるって。
- 118 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 13:12:09.80 ID:rnycJJoD.net]
- 今までできなかったのかよ
- 119 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 13:16:52.73 ID:qdz8LPjI.net]
- 定義すれば済むことだな
- 120 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 21:55:07.06 ID:4xfA40Vl.net]
- >>116
すげぇ! Sublime Textなんていらなかったんや!
- 121 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 22:08:59.03 ID:PIEAAVmi.net]
- >>119
vimmerはエディタの拡張のために、好きな言語を「選択」できる。 しかし、lisperはエディタの拡張のために、好きに言語を「拡張」できる。
- 122 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 22:37:18.61 ID:DQUVbJjr.net]
- そういう意味ではリーダーマクロのない elisp はいまいち
- 123 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 22:44:26.98 ID:PIEAAVmi.net]
- >>122
Emacs Lisp にリーダーマクロを実装してみた dev.ariel-networks.com/Members/matsuyama/implement-emacs-lisp-reader-macro/
- 124 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 08:03:24.78 ID:xiFjVo8G.net]
- Latexのコードの特殊文字(?)を取り除いて文字だけにしたい
例えば This figure ¥ref{fig:some} show someone. を This figure 321 show someone. に変換したい どんな正規表現置換すればいいでしょうか
- 125 名前:デフォルトの名無しさん mailto:sage [2014/04/29(火) 06:14:21.54 ID:hZWbnKFL.net]
- パッケージが使えるようになってから
ライブラリ関係が整理されてきたね www.wilfred.me.uk/blog/2013/03/31/essential-elisp-libraries/
- 126 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 22:14:00.15 ID:rH4KCYSG.net]
- >>124
321はどっから出てきた?
- 127 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 04:12:16.26 ID:gIosECTp.net]
- あああ
- 128 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 20:38:27.07 ID:APfGLDmZ.net]
- あああじゃねえよ321は決め打ち?
- 129 名前:デフォルトの名無しさん [2014/05/29(木) 22:57:32.74 ID:lRFHqZI8.net]
- iii
- 130 名前:みつを mailto:sage [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 名前:みつを mailto:sage [2014/06/04(水) 19:57:17.25 ID:1mti/jFC.net]
- >>125
パッケージってMELPAとかいうやつ? ずっと横ばいだな。これは普及するのか www.modulecounts.com/
- 132 名前:デフォルトの名無しさん mailto:sage [2014/06/04(水) 21:16:48.17 ID:40jNRALG.net]
- むしろそれが今の Emacs の成長率みたいなもんなんじゃないのかな
- 133 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2014/09/10(水) 23:18:57.46 ID:7cU3np3J.net]
- きちさんが元気になった。
- 136 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 06:48:41.92 ID:pwXLQ7qz.net]
- カーソル位置の単語または選択範囲の文字をisearcの検索対象にする
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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2014/10/16(木) 09:04:05.88 ID:ML6o1wZC.net]
- > やっぱりコンスセル単位で操作していくのが一番速いのですか?
ベクトルは参照は早いけど追加操作は遅い。リストはその逆と思っておけばいい。 ケースバイケースだからソース公開するといいよ。
- 141 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2014/10/16(木) 10:26:10.93 ID:ML6o1wZC.net]
- いや、github とかにだね。。
- 146 名前:デフォルトの名無しさん mailto:sage [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 mailto:sage [2014/10/16(木) 11:15:16.59 ID:DN4MHL3l.net]
- >>146
コメントありがとうございます。 なるほど、パフォーマンスはかわらないのか。 elisp でいろいろ作ってみて、プログラミングを学んでいきたいと思います。 スレを汚してしまい、すみません。
- 148 名前:ID:9sgE7fDV mailto:sage [2014/10/28(火) 15:57:32.52 ID:XuuTzEP8.net]
- elisp による find を書き直しました。
https://gist.github.com/anonymous/e0d440b0be2ab4106390 M-x efind で、ディレクトリとパターンをいれると、 指定したディレクトリ以下にあるファイルもしくはディレクトリのうち、 パターンにマッチするものを列挙します。 下線がひいてあるところは、enter を押すとリンクできます。 「ここは普通こう書くよ」など、コメントをいただけないでしょうか。
- 149 名前:デフォルトの名無しさん mailto:sage [2014/10/28(火) 16:53:12.91 ID:BaOL+HSr.net]
- >>148
普通のdiredじゃ駄目な理由がわからん
- 150 名前:デフォルトの名無しさん mailto:sage [2014/10/28(火) 20:47:19.78 ID:ABQvesFS.net]
- >>149
外部の find を呼ぶ find-name-dired などが、windows ではデフォルトでは使えないので作りました。 あれ、もしかして使えるのかも。もう少し調べてみます。
- 151 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 22:47:05.96 ID:ZUGQOqFu.net]
- 久々に来たけどなんかもりあがってるね。
- 152 名前:デフォルトの名無しさん [2014/11/16(日) 21:37:23.05 ID:ifD0nPmW.net]
- >>148
君、すごうぃーね〜
- 153 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/11/16(日) 23:28:59.20 ID:moSkozbZ.net]
- 無駄多し、バグありの find-lisp-find-dired ってのが大昔からあるよ
- 154 名前:ID:9sgE7fDV mailto:sage [2014/11/19(水) 11:27:44.63 ID:De3REAga.net]
- >>153
!! ありがとうございます。 ソースコードをみて書き方を学びます。
- 155 名前:デフォルトの名無しさん mailto:sage [2014/11/23(日) 11:20:51.79 ID:3HkxdKNj.net]
- LispとPrologやれば
Cでの再帰プログラムが得意になる
- 156 名前:デフォルトの名無しさん mailto:sage [2014/11/24(月) 06:26:03.94 ID:eOmEBZPc.net]
- べつに
lisp/prologの経験と 再帰の得手不得手は無関係だと思う
- 157 名前:デフォルトの名無しさん [2015/01/11(日) 18:20:45.19 ID:NEH94HBN.net]
- なんか話題ない?
- 158 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 10:50:02.39 ID:NDLkVK0s.net]
- マイナーモードの作成について、こちらが意図しないアクション (とくに keyboard-quit) をされたら、そのマイナーモードを抜けるようにしたいんだけど、どうすればいいですか?
できれば pre-command-hook や post-command-hook は使いたくないです。
- 159 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 15:38:25.07 ID:8CwIIHPp.net]
- >>158
> マイナーモードを抜ける の意味がわからない。 minor-mode のコマンドを途中でやめて元のキーシーケンスに戻るってことなら auto-complete.el の ac-fallback-command あたりを見るとよろしかろう。
- 160 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 16:45:00.86 ID:NDLkVK0s.net]
- >>159
コメントありがとうございます。 ご提示いただいたソースを読みたいと思います。 ちなみに、 (add-hook ’post-command-hook ’(lambda () (when hoge-mode (hoge-mode -1)))) のような処理を意図しております。
- 161 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 17:45:35.15 ID:NDLkVK0s.net]
- >>161
ありがとうございます。 minor-mode を使うなら、あまり選択肢がないのですね。 > minor-mode を使わない なるほど!なんとなく、とりあえずでマイナーモードを利用していたのですが、使わないという発想も大事なのですね。
- 163 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 18:03:40.40 ID:Wsh3Ajof.net]
- そのものずばり何をしたいか書いちゃった方がいい気もする
- 164 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 19:16:25.85 ID:NDLkVK0s.net]
- はい、ありがとうございます。
自分用に ace-jump を拡張してます。 勉強のため、通常の ace-jump 部分も最初から作っております。 今回は、hoge-jump というマイナーモードを定義しておりました。 マイナーモードという形を選択した理由は、なんとなくなのですが、他に、マイナーモードを抜ける時点に hook をかけたいという理由があります。 具体的には、hoge-jump によってバッファに付加したオーバーレイを、hoge-jump の去り際にリムーブしております。 (ただ、本家の ace-jump もマイナーモードを使ってないのですね。 本家のほうをもっと検討したいと思います)。
- 165 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 15:43:11.36 ID:mj45QIEF.net]
- >>165
ace-jump 使ってないからコメントしづらいけど 数日経ってこの調子だとすごく低いレベルで推移もしていないように見える。(まるで成長していない) 何をしようとしてどうだめだったのか書きたまえ。 ソースを見る限りだと ace-jump-char-mode の引数に目的の char を渡すだけ にも思える。 (ace-jump-char-mode ?A)
|

|