のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,836人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレEmacs Part 39

    emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    551 : 名無しさん@お腹 - 2012/01/06(金) 15:40:58.79 (+18,-30,-173)
    >>539
    別解っぽいものを書いてみた。
    call-interactively は使わないほうが行儀が良いような気がする。

    >>544
    変だったら指摘してくれると大助かり。

    (defun somefunc (str)
      (interactive "sinput: ")
      (if (save-excursion
      (goto-char (point-min))
      (save-match-data
      (search-forward str nil 'noerror)))
      (call-interactively 'somefunc)
      (insert str)))

    ただし call-interactively は使わないほうが行儀が良い気がする。
    552 : 名無しさん@お腹 - 2012/01/06(金) 17:21:25.66 (-1,-29,-12)
    553 : 名無しさん@お腹 - 2012/01/06(金) 17:31:06.54 (+4,-29,-8)
    sdic が独自のポップアップ表示してるせいで popwin 管理下に置けなくてストレスMAX
    554 : 名無しさん@お腹 - 2012/01/06(金) 17:45:38.45 (+14,-30,-191)
    >>553
    ほれ

    ;; popwin 管理下におく
    (add-to-list 'popwin:special-display-config `(,sdic-buffer-name))

    ;; sdic-display-buffer 書き換え
    (defadvice sdic-display-buffer (around sdic-display-buffer-normalize activate)
    "sdic のバッファ表示を普通にする。"
    (let ((p (or (ad-get-arg 0)
    (point))))
    (and sdic-warning-hidden-entry
    (> p (point-min))
    (message "この前にもエントリがあります。"))
    (goto-char p))
    (display-buffer (get-buffer sdic-buffer-name)))
    555 : 名無しさん@お腹 - 2012/01/06(金) 17:53:07.75 (+5,-29,-9)
    >>554
    ありがとでも sdic-describe-word-at-point がちょっと変な気がする
    556 : 名無しさん@お腹 - 2012/01/06(金) 17:59:14.72 (+3,-30,-219)
    >>555
    ほれ。あとちょっと挙動違ってた部分もついでになおした。

    ;; sdic-display-buffer 書き換え
    (defadvice sdic-display-buffer (around sdic-display-buffer-normalize activate)
    "sdic のバッファ表示を普通にする。"
    (setq ad-return-value (buffer-size))
    (let ((p (or (ad-get-arg 0)
    (point))))
    (and sdic-warning-hidden-entry
    (> p (point-min))
    (message "この前にもエントリがあります。"))
    (goto-char p)
    (display-buffer (get-buffer sdic-buffer-name))
    (set-window-start (get-buffer-window sdic-buffer-name) p)))
    557 : 名無しさん@お腹 - 2012/01/06(金) 18:14:46.00 (+3,-30,-133)
    追加。閉じる時の変なチラチラも消える。


    (defadvice sdic-other-window (around sdic-other-normalize activate)
    "sdic のバッファ移動を普通にする。"
    (other-window 1))

    (defadvice sdic-close-window (around sdic-close-normalize activate)
    "sdic のバッファクローズを普通にする。"
    (bury-buffer sdic-buffer-name))
    558 : 名無しさん@お腹 - 2012/01/06(金) 18:20:47.72 (+4,-30,-91)
    >>554
    >(add-to-list 'popwin:special-display-config `(,sdic-buffer-name))

    (add-to-list 'popwin:special-display-config `(,sdic-buffer-name ,sdic-window-height))
    に直したら大分良くなった
    559 : 名無しさん@お腹 - 2012/01/06(金) 18:21:28.63 (-2,-30,-66)
    ミスった
    (add-to-list 'popwin:special-display-config
    `(,sdic-buffer-name :height ,sdic-window-height))
    560 : 名無しさん@お腹 - 2012/01/06(金) 18:33:53.57 (+47,+29,-2)
    ありがてえ・・・
    561 : 名無しさん@お腹 - 2012/01/06(金) 19:08:58.15 (+57,+29,-12)
    速攻でコード書いてくれて凄腕って思うだろ?
    こいつらみんな無職なんだぜ……
    562 : 545 - 2012/01/06(金) 19:46:26.97 (+10,-30,-64)
    >>548
    ありがとうございます。確認してみました。

    (define-generic-mode 'my-mode
    '(";")

    こういう書き出しではじまるgeneric-modeで
    ;の出力される位置は行頭行末とも適切だとわかったのですがただ行頭が;;になりません
    普通generic-modeでこう設定すると行頭は;;となるのでしょうか
    563 : 名無しさん@お腹 - 2012/01/06(金) 20:19:12.42 (+38,-30,-50)
    >>562
    emacs-lisp-mode みてみたら、どうやら
    comment-add って変数で ; の数を制御しているみたい。
    モードのセットアップしてるところで
    (setq (make-local-variable 'comment-add) 1) ってやってみて。
    564 : 名無しさん@お腹 - 2012/01/06(金) 20:19:20.55 (+39,+16,+0)
    ここがサポート掲示板か
    565 : 名無しさん@お腹 - 2012/01/06(金) 20:20:28.45 (-1,-29,+1)
    まちがった
    setq じゃなくて set ね
    566 : 名無しさん@お腹 - 2012/01/06(金) 20:23:51.57 (+57,+29,-4)
    にわかはるびきちが引き取れって言ってるだろうが!!
    567 : 545 - 2012/01/06(金) 20:28:48.11 (+63,+29,-2)
    >>563
    ありがとうございます。意図した通りの結果が出てきました!
    568 : 名無しさん@お腹 - 2012/01/06(金) 20:31:57.02 (+57,+29,-10)
    きちぼんは誰かに献本されなかったのだろうか。
    思うにあいつかなりドケチだよな。
    569 : 名無しさん@お腹 - 2012/01/06(金) 20:41:56.80 (+57,+29,-4)
    書店が献本したがレビューが後回しにされてる
    http://d.hatena.ne.jp/rokujyouhitoma/20110816/1313468638

    lispじゃなくて普通の方だな
    570 : 539 - 2012/01/06(金) 21:11:16.68 (+12,-30,-35)
    >>542-543 >>551
    ありがとうございます。save-match-data の使い方を勉強します。

    >>541
    説明が不足でした。重複している処理なので
    whileのたぐいで一度だけ書けばどうにかならないかと悩んでいました。
    書き方は再帰でもloopでもかまいませんでした。
    571 : 名無しさん@お腹 - 2012/01/06(金) 21:23:48.68 (+0,-30,-25)
    >>570
    save-match-data は >>542 が string-match 使った時に混入しただけで
    search-forward 使う分には入れる必要ないかと。
    572 : 名無しさん@お腹 - 2012/01/07(土) 00:03:43.68 (-1,-29,-4)
    あとは bf-mode が popwin 対応すればもう勝利は目前だな。
    573 : 名無しさん@お腹 - 2012/01/07(土) 00:07:29.32 (+52,+29,-12)
    必死でアピールしてるな。
    574 : 名無しさん@お腹 - 2012/01/07(土) 00:30:53.33 (-1,-29,-16)
    bf-modeみたいなメンテナのはっきりしないelispは埋もれていく定め
    575 : 名無しさん@お腹 - 2012/01/07(土) 01:04:50.46 (-1,-29,-23)
    もしかして eval-after-load の中のフォームってバイトコンパイルされなかったりする?
    576 : 名無しさん@お腹 - 2012/01/07(土) 01:23:09.55 (-4,-22,+0)
    てst
    577 : 名無しさん@お腹 - 2012/01/07(土) 10:32:37.89 (-5,-28,-15)
    Android 版ありますか?
    578 : 名無しさん@お腹 - 2012/01/07(土) 10:42:25.69 (+57,+29,-29)
    iOS版は確かあったけどAndroid版はまだじゃないかなあ
    と思ったら一応出来ないことはないみたい

    http://www.emacswiki.org/emacs/EmacsOnAndroid
    579 : 名無しさん@お腹 - 2012/01/07(土) 11:44:15.55 (+2,-29,-33)
    emacs から emacs を立ち上げれば
    elisp だけでの並列プログラミングが実現出来るんじゃないか?
    マルチスレッドじゃなくマルチプロセスだけど。
    580 : 名無しさん@お腹 - 2012/01/07(土) 11:46:26.85 (-1,-29,-29)
    Androidのバージョンとか不明ですが
    Emacs for Android
    http://d.hatena.ne.jp/MATSUZAKI/20101104/1288882148
    581 : 名無しさん@お腹 - 2012/01/07(土) 12:25:49.29 (-1,-29,-44)
    >>579
    emacs24からはポート指定でサーバ立ち上げられるし
    server-eval-at なんてのも追加されてるからあながち間違ったアプローチじゃないとおもう。
    582 : 名無しさん@お腹 - 2012/01/07(土) 14:14:17.26 (+13,-30,-185)
    replace-regexpについて質問します
    このようなテキストがあるところで

    akasatana
    hamayarawa
    ikisitini

    「元のテキスト 元のテキスト」のようにテキストを複製するかのような処理を
    正規表現の置換で行いたいのですがうまくいきません
    置換対象の文字列検索はre-builderでは大丈夫でした

    replace-regexp [ret]
    \\(.+\\) [ret]
    \\1 \\1 [ret]

    何を修正すればよいのでしょうか
    583 : 名無しさん@お腹 - 2012/01/07(土) 14:21:09.16 (+39,+5,-15)
    \ を \\ と書く時ってのはどういう理由でそれが必要だったのか考え直せ
    584 : 名無しさん@お腹 - 2012/01/07(土) 14:39:22.04 (+91,+29,-19)
    emacs の正規表現はもうちょっとなんとかならんのかと常々思うわ。
    585 : 名無しさん@お腹 - 2012/01/07(土) 15:03:07.77 (+57,+29,-5)
    似たような問題はどんな言語いじっててもあるからね。
    586 : 582 - 2012/01/07(土) 16:00:50.27 (+8,-30,-57)
    >>583
    なるほど、re-builderは""内に書くから\\(\\)と書かなければならなくて、
    replace-regexpは""内に書かないから\(\)と書くということですね
    すっきりしました
    587 : 名無しさん@お腹 - 2012/01/07(土) 16:21:58.76 (+3,-30,-23)
    ELPAの作者がemacsをcommon lispで書き直そうとしているみたい
    The Cliffs of Inanity ? Emacs and Common Lisphttp://tromey.com/blog/?p=709
    そうなると長い目で見ればcommon lispを知っておいた方がよさそう
    588 : 名無しさん@お腹 - 2012/01/07(土) 16:26:03.17 (+4,-29,-8)
    EmacsをCommon Lispでって・・・・
    10年前に Erik Naggum が言ってたのと同じことやん。
    歴史は繰り返す。
    589 : 名無しさん@お腹 - 2012/01/07(土) 16:53:47.36 (-1,-29,-19)
    climacs があるけれど、elisp の便利な資産が使えないからなあ。
    590 : 名無しさん@お腹 - 2012/01/07(土) 17:10:02.39 (+3,-29,-69)
    >>588
    このあたりの話が関係するか。emacsをcommon lispで、っていうのは真っ正面から議論されていたのかな?
    Island Life - 「Cで書くコードの方がCommon Lispで書くより速いって人がいたら、それは彼のCの技量が高すぎるってことだね。」
    http://blog.practical-scheme.net/shiro/20100620a-lisp-speed
    591 : 名無しさん@お腹 - 2012/01/07(土) 17:15:34.53 (+36,-30,-71)
    guile emacs の方がいいよ

    それはそうと emacs 24で`image-library-alist' is renamed to `dynamic-library-alist' ってなってるの見て
    ああもう本当にストールマンいなくなったんだなと実感した
    592 : 名無しさん@お腹 - 2012/01/07(土) 17:22:54.27 (-1,-29,-15)
    elisp to cl emasc なコンバータを作るとか。
    593 : 名無しさん@お腹 - 2012/01/07(土) 17:32:50.08 (+68,+28,-13)
    >>584
    正規表現リテラルでもありゃあいいのにな。
    594 : 名無しさん@お腹 - 2012/01/07(土) 17:51:12.15 (+96,+29,-54)
    >>591のストールマンなら聞いたことがあるが他の人は寡聞にして知らない
    emacsの開発歴史というよりも
    どういう人がemacsにどういう影響を与えたか、を聞きたい
    595 : 名無しさん@お腹 - 2012/01/07(土) 18:00:10.33 (+57,+29,-5)
    まず名前があがるのがるびきちさんだな
    596 : 名無しさん@お腹 - 2012/01/07(土) 18:03:58.85 (+70,+29,-15)
    >>594
    http://ja.wikipedia.org/wiki/Emacs
    結構ちゃんと人物も記載されてるよ。
    597 : 545 - 2012/01/07(土) 19:07:20.82 (+56,-30,-112)
    define-generic-modeの質問をした者ですが関連する質問をします
    test_func {
      test
    }
    のように{が行末に来たときは次の行をスペース2つ分(かタブ1つ分)右にシフトさせて
    }が行頭に来たときには左にシフトさせる設定はdefine-generic-mode向けに何かありますか
    (上の例では全角スペースを使っています)
    単体のemacsでは設定できずyasnippetのようなものを併用しなければならないでしょうか
    598 : 名無しさん@お腹 - 2012/01/07(土) 19:52:42.00 (+10,-30,-65)
    >>597
    凝ったことしたくなったら generic-mode 使わないで素でmajor-mode作ってもいいような気もするけど

    { を入力したときに勝手に整形されるようにするのか、
    改行したときに勝手にそうなるようにしたいのか、
    C-i だの TAB だの入力して indent したときにそうしたいのかによって微妙に入り口は異なると思うけど
    基本的には自力で整形処理を書かなきゃいけないと思うよ。

    c-mode の c-indent-line の辺り読んで頑張れ
    599 : 名無しさん@お腹 - 2012/01/07(土) 19:59:36.41 (-1,-29,-35)
    indent-line-function に前の行の { の位置をみてインデント位置を調節する関数を設定する。
    600 : 名無しさん@お腹 - 2012/01/07(土) 22:41:57.81 (+2,-20,-11)
    gnusわかりにくすぎる
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について