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

    元スレEmacs Part 43

    emacs覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    861 = :

    マクロについて質問です。
    elisp の info によると、マクロ内で let を使って変数を作った場合
    引数内でのその変数名を上書きしてしまうことを問題点としてあげています。
    http://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Surprising-Local-Vars

    この例の中で、(let ((max 0)) ...) ではなく (let ((tempvar (make-symbol "max"))) ...) を使えばいいと書いてあるのですが、
    これって max については intern されないので問題ないですが
    結局 tempvar については同じ問題をはらんでますよね?

    862 = :

    その上の例のmaxはマクロが展開された結果に残るけど、
    下の例のtempvarは展開時に使うだけで展開された結果には残らない。

    863 = :

    >>862
    なるほど、マクロの理解が足りてませんでした。
    評価結果で置換されるわけだから外側の let は置換後の結果にあらわれてこないと。
    (defmacro foo1 () (bar)) と (defmacro foo2 () '(bar)) の違いということですね。
    いまいちなんでマクロ本体にシングルクォートを置くのかわからず使っていました。

    ありがとうございます。

    864 = :

    もう一つ質問です。
    intern-soft で非 nil が返ってくるのに obarray の中にシンボルが見つからないということはありうるのでしょうか。
    emacs -q で起動した emacs に対して以下を評価しました:

    (require 'cl-lib)
    (intern-soft "cl-find") ; => cl-find
    (cl-find (lambda (sym) (string-match "^cl-find" (symbol-name sym))) obarray) ; => nil

    intern-soft では cl-find が定義されてるように返ってくるのですが、
    cl-find で検索した結果は nil となってしまいました。
    実際に obarray を展開してインクリメンタルサーチしても実際中に入っていないように見えます。

    865 = :

    mapatoms で vector (obarray) をお探しくだせぇ

    参考

    (let ((vec (make-vector 1 nil)))
    (intern "a" vec)
    (intern "b" vec)
    (list
    (intern-soft "a" vec)
    (intern-soft "b" vec)
    (intern-soft "c" vec)))

    867 = :

    >>865
    ありがとうございます。
    mapatoms で探索させたところ見つかりました。

    (require 'cl-lib)
    (let ((found nil))
    (mapatoms (lambda (sym) (when (string-match "^cl-find" (symbol-name sym))
    (setq found t))))
    found) ;; => t

    vector ⊂ sequence だと思っていたのですが必ずしもそういうわけでもないってことなんでしょうかね
    (pp obarray) させた結果にも cl-find が出てきませんでしたし。
    もうすこし vector について勉強してみます。

    868 = :

    (length obarray) と mapatoms で数えた要素数が異なるのもなんでかわからない・・・

    (let ((count 0))
    (mapatoms (lambda (sym) (setq count (1+ count))))
    count) ;; length の結果とかなり異なる (ex 1511 vs 22728 など)

    length のドキュメントを見る限り普通に vector にも使えそうな感じではあるのですが。

    869 = :

    自己解決しました。
    obarray は vector ではあるが、中身は hash 構造になっているので mapatoms 以外での探索は出来ないとのこと。
    ちゃんと obarray の説明の所に書いてありますね。length での値が異なるのも納得できました。

    http://www.gnu.org/software/emacs/manual/html_node/elisp/Creating-Symbols.html

    871 = :

    mapatomsのドキュメントを読んだ感じだと
    http://www.geocities.co.jp/SiliconValley-Bay/9285/ELISP-JA/elisp_103.html

    obarrayがフラット(?)なvectorじゃないだけじゃない?
    emacs lispを余り知らないからはっきりと言えないけど
    vector ⊂ sequence は正しいんじゃない?

    872 = :

    imaximaのgnuplot連携ですが外部のgnuplotを呼び出さずにインラインで描画させる方法有りませんか? ( ; ; )誰か助けてorz

    873 = :

    呼び出さないってのは gnuplot の window に描画させるんでなく、emacs の window 内に表示させたいってことだよね?
    gnuplot がない環境でも動くようにって話ならそりゃ無理じゃねえの?としか。

    875 = :

    >>873
    gnuplot自体は有ってgnuplot-modeでプロセス作ってコマンド入れればインラインで描いてくれます。
    imaximaで使うgnuplotをemacs外部のプロセスじゃなくemacs内のプロセスでインラインにならないかと。

    876 = :

    >>872
    Imaximaのサイトやブログに書いてあったよ。

    Tutorial of Imaxima inline graph
    sites.google.com/site/imaximaimath/tutorial-of-imaxima/tutorial-of-imaxima-inline-graph

    draw関数によるグラフのプロット 入門編 - Maximaでつづる数学の旅
    d.hatena.ne.jp/jurupapa/20110613/1307977715
    > imaximaではグラフをEmacsのバッファの中にインラインで表示することができ
    > るのですが、そのために、draw2d()の代わりにwxdraw2d()関数を使用します。
    > 引数などの書式は両者とも全く同じです。

    878 = :

    今更ながら24.3にしてみたですけど、
    Warning: function `map' from cl package called at runtime
    これはどうすれば黙らせられます?

    879 = :

    byte-compile-warnings から cl-functions を抜けばいい。
    cl-functions だけ外してずらずら列挙するか、'(not cl-functions) とか設定するとか。

    880 = :

    あと正攻法でいくならで cl-map に置き換えるとか。
    直接書き換えないんでも バージョンみて defalias して上げりゃいいと思う

    ただ cl-flet なんかは flet と挙動自体が変わってて cl-letf にしないとダメな場合もあるから
    単純に defalias すればいいってわけでもなかったりするのもある

    881 = :

    C++/CLI を semantic が理解できるようにする方法があったら教えてくださいませ。
    c++-modeで開いてみたときの印象からは、 ^ を *, & と同じように扱えれば何とかなりそうなんだけど、
    どこをどうすればいいのかがわからなくて。

    Doxgenタイプのコメントをつけたいのだけれど、いちいち手で作るのは勘弁してほしいというだけなんで、
    semantic使わないで、関数のコメントのテンプレートを生成する方法があれば、そちらもよろしく。

    882 = :

    自分で調べろクソが

    883 = :

    そこら辺はもう MS の VC 使うとかの方が健全な解な気がしてる

    884 = :

    C# なら /// でコメントのテンプレート吐いてくれるからいいんだけれど、
    C++ だと吐いてくれないから Semantic で何とかならないかと
    もしかして、最近のVCではできたりするのかな?
    2013 Express インストールしてみる

    885 = :

    /usr/share/emacs/lisp/cedet/semantic/bovine/c.el ぐらいを改造してC++に対応させる、のは無理か。
    テンプレートだけなら /usr/share/emacs/etc/srecode/cpp.srt に加筆。

    887 = :

    繰り返しが含まれる正規表現なんかだとなんかあやしい結果になりそうだなそれ
    a*b みたいなのだと aaaaaaaaab とか aab に同時にカーソルが現れて欲しいってことでしょ?

    889 = :

    リンク可能なテキストの作成について質問します
    テキスト,ファイル名,行番号からなるリストが複数あります
    '(("test text1" "~/foo/test1" 3)
    ("test text2" "~/foo/test2" 5))
    これをもとにテキストの文字列全体にファイル名のその行番号を紐付けてリンクして
    文字列として返すようにしたいのですがどうすればいいのでしょうか
    http://www.gnu.org/software/emacs/manual/html_node/elisp/Changing-Properties.html
    これのset-text-propertyを使うとは思うのですが、propをどういじればリンクできるかが分かりませんでした
    どうぞよろしくお願いします

    891 = :

    >>889
    返すってのはツールチップみたいに表示したいってこと?

    892 = :

    >>891
    889です
    すみません言葉足らずでした
    ツールチップの表示ではなくてリンクを埋め込んだテキストを普通に表示する、という意味です
    org-modeでurlを書くと自動的にクリッカブルな文字列になりますが
    あのようなものをorg-mode以外でも使いたいのです

    893 = :

    普通に表示するってのは、マウスクリックでそのテキストにリンクしてるファイルを find-file して
    リンクしてる行までジャンプして表示する、ってことでいいのかな。

    http://www.gnu.org/software/emacs/manual/html_node/elisp/Clickable-Text.html#Clickable-Text
    クリッカブルな文字列のプロパティの作り方はここでよさそう。
    find-file して forward-line する関数をくっつけてやればいいんじゃないのかな。

    894 = :

    ありがとうございます。やってみます。

    897 = :

    emacsスレからこちらに誘導されてきました
    windowsのgnupackでemacsを使っています
    twittering-mode.elでmaster passwordを使ってタイムラインを開こうとすると
    パスワードを入力してenterを押したとたん
    "the authorized token is loaded"
    というメッセージがエコー欄に表示されてEmacs自体が完全に固まることがあります
    そのときは強制終了させなければいけません
    正常にタイムラインが表示されることがほとんどなのですが、エラーの結果が重大なので気がかりです
    どのような原因が考えられるのでしょうか

    898 = :

    出戻ってんじゃねえかw

    899 = :

    すみません
    素で間違えてしまいました

    900 = :

    >>897
    やべー少しウケたw


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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