[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 03/27 08:34 / Filesize : 205 KB / Number-of Response : 769
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Emacs Lisp 3



1 名前:デフォルトの名無しさん [2007/10/09(火) 05:39:53 ]
Emacs Lisp の専用スレ。
少数派による互助を中心に、初心者の相談も気が向けば受け付けます。
単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。

過去スレ
Emacs Lisp
pc2.2ch.net/test/read.cgi/tech/1004551074/
Emacs Lisp 2
pc11.2ch.net/test/read.cgi/tech/1068467385/

関連スレ
Emacs part 22
pc11.2ch.net/test/read.cgi/unix/1180828013/
【叩かれて】Emacs Lisp道場【強くなれ】
pc11.2ch.net/test/read.cgi/unix/1063880951/
Lisp Scheme Part18
pc11.2ch.net/test/read.cgi/tech/1186922295/

656 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 01:25:33.82 ]
今さら感があるけど、Emacs Lispで書かれたライブラリとかプログラムのことを
単に「Emacs Lisp」と呼ぶ習慣はそろそろみんなに考え直してもらいたい

657 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 02:05:26.45 ]
>>656
なんて言えばいいの?

658 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 07:44:35.83 ]
> poj-mode.el is an emacs lisp for POJ

小文字で書けばいいのかと問いたい

659 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 01:25:37.08 ]
>>656
「elispアプリ」とか「elispライブラリ」とか言えっての?


660 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 01:43:40.58 ]
公式な呼び名は無いの?

概念的に近いのはブラウザの拡張とかかなぁ。
歴史的経緯を無視するならエクステンションとかプラグインとか呼ぶのが妥当だと思う。
使われている言語が Emacs Lisp なのは、
たまたま Emacs がそういうものだという実装に立ち入る話なので、
ユーザーに見せるべき筋合いのもではない。

661 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 02:28:09.29 ]
Emacsスクリプトでよくね?

662 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 03:01:18.58 ]
マニュアルを読みなよ

663 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 04:49:59.57 ]
>>660
> 使われている言語が Emacs Lisp なのは、
> たまたま Emacs がそういうものだという実装に立ち入る話なので、
> ユーザーに見せるべき筋合いのもではない。
 むしろユーザーが容易にみれる、弄れる、スクリプトを組めるという仕様で人をスクリーニング
しているのがemacsの良さなんじゃないの。Firefoxのエクステンション的使い方で敷居は低い
けど、emacs lispの書き方を覚えたら自分の使いやすいように弄りたいという野心がユーザーの
大多数の中にあるんじゃないかな。
 自分はそういう野心を持ってFirefoxを使っていないなあ。

664 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 20:57:58.95 ]
ブラウザだとgreasemonkeyが近いな
お手軽で重宝してる



665 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 21:19:58.90 ]
>>661
一票。

666 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:43:03.03 ]
スクリプトには違和感ありまくり
elispプログラムかパッケージで

667 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:53:56.79 ]
マニュアルでは大体libraryかpackage(かfile)だけど、別に厳密な定義はない
明確な機構で管理されてないこととも多少関係あるかも

668 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:01:29.59 ]
xyzzyというEmacs風エディタの界隈で「拡張lisp」という言葉を見て
ちょっと混乱した

669 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:17:32.81 ]
magit という一個の package があったとして、
その中核となるファイル群の集合を指して library
その集合の中の .el ファイルそれぞれが program
とかそんな感じでは

670 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 03:07:27.20 ]
locate-libraryは一つのファイルをライブラリって表現してるってことだよな

671 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 02:34:06.42 ]
APEL の README だと
Emacs Library や モジュール や ユーティリティー といった言葉が使われてる。
MULE プログラム や CCL プログラム って言葉も出てくる。

672 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 04:04:27.57 ]
マクロでいいじゃん

673 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 15:19:18.49 ]
>>672
defmacro以外で書いてある部分はどう呼ぶんだ?


674 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 02:01:47.78 ]
それもマクロでいいじゃん



675 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 02:16:46.62 ]
よくねえよwww

676 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 19:38:59.29 ]
Emacs lispの他にマクロが装備されてるじゃん

677 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 00:02:21.53 ]
elispはemacs自体を作るための言語だしなw

678 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 08:26:25.14 ]
>>662
正解

EmacsはelispとCで出来てるので、Cの用語と調和できる表現が理想かと。
なのでマクロは…

679 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 08:38:22.22 ]
>>672 defmacro で定義するマクロはなんて呼べば良いの?


680 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 11:49:43.28 ]
Editor MACroS

681 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:32:52.18 ]
>>680 Editing MACroS は TECO のマクロパッケージだ



682 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:02:07.70 ]
emacsがたまたまlispで云々とか笑うなw
gosmacsとmock lispに切れたlisperのストールマンが
作った最強のlisp環境兼エディタなのにw

683 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:05:57.06 ]
>>682
Unipressの売り物になったから切れただけだろ


684 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 17:16:00.68 ]
そういやそうだったかも
でもMockじゃなくて
ちゃんとしたlisp使いたくて
弄ろうとしたんじゃなかたっけ
ある意味gosmacsはGNUの生みの親だなw



685 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 10:14:50.83 ]
最初gosmacsベースでGNU Emacs作っていて、
そんときは別に切れてない。
そのあとGoslingがgosmacsの権利売ったから切れた。

686 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 00:00:16.59 ]
Emacsのアプリだからeアプリ

これでいいよ.

iアプリと似てるから世間で流行るかも知れん.
e電と同じく廃れるかも知れんけど.


687 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 02:45:01.23 ]
だいたいeはすぐ終わるな
なぜかiは長生きする

688 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 03:05:15.28 ]
アンビバレンツなIE

689 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 08:21:48.92 ]
大衆向けGUI付きのインストールシステムが無いからこれといった名前もないんだろうな
そういうシステムの用語としてはパッケージってだいたい言うんじゃね?
Emacs NetInstaller Packageということでどうか

690 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 10:39:04.45 ]
>>687
つ email

691 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 15:47:27.09 ]
基本的にはlibraryなんだよ。ほぼ関数の塊で、
キーの割り当ては個人設定まかせだったりするでしょ。

692 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 00:25:11.12 ]
emacsのevernote-mode.elで質問です。
69行目にdefmacroで
enh-command-with-authというマクロを宣言しているのですが
最初のローカル宣言で
`(let (error-code (try-func (lambda () ,@body)))
上のようになっています。
letといったら
(let ((変数宣言)) 式)
と言った形になると思うのですが、このマクロでは、
突然、宣言も何もやっていないerror-codeが出てきています。この部分では何をやっているのか知りたいです。
また、try-funcも上のlisp
後に(funcall try-func)という記述がありますので、普通の関数なのかと思い調べたのですが、見つかりません。try-funcとはなんなのかも分からなくて困っております。
どうか教えていただけますでしょうか、よろしくお願い致します。

693 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 00:55:00.25 ]
>>692
> let is a special form in `C source code'.
>
> (let VARLIST BODY...)
>
> Bind variables according to VARLIST then eval BODY.
> The value of the last form in BODY is returned.
> Each element of VARLIST is a symbol (which is bound to nil)
> or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).
> All the VALUEFORMs are evalled before any symbols are bound.

だからerror-codeにはnilが束縛されて、
try-funcに(lambda () ...)が束縛される。

普通の関数は(funcall try-func)として実行できない。
try-funcが評価されて返ってきた関数を実行する。

694 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 01:16:52.08 ]
>>693
お早い回答ありがとうございます!!
探しても載ってないletの取扱い方があるのかと思っていたのですが
そのままの文法にしたがって解読すればよかったということですね。
また、funcallの使い方も勘違いしておりました。
try-funcの定義部分を探して読めば問題ないということですね!
大変助かりました。
ありがとうございました!



695 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:48:46.39 ]
探してというかマクロの引数。
command実行をauthでラップしてるんでしょ、どうせ。

696 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 22:57:34.38 ]
WEB+DBの最新号、関数型言語入門を山本和彦が書いてるのを立ち読みして来た
けど、LISPに関する文章が悲しくて泣けた
Mewの開発者があれではなあ

697 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 23:14:04.60 ]
>>696
マルチうぜぇ

698 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/03/04(日) 18:32:07.94 ]
>>696
「リスト遊び」のときからわかってることを今更マルチで書き込んでやるなよ


699 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 19:15:58.06 ]
かずさんはHaskell厨だからな

700 名前:デフォルトの名無しさん [2012/03/09(金) 07:48:01.98 ]
Meadowでget-buffer-createしたバッファに
while回しながら見つけたファイルの名前と中身を
insertしようと

(if (file-exists-p filename)
(progn
(insert filename)
(insert-file-contents filename))
)

と書きましたが、書き込みがバッファされているようで、先にファイルの中身が
全部インサートされて後から(insert file)の結果がまとめてインサートされているようです。

(insert filename)
(sit-for 0)
(insert-file-contents filename))

とかやれば、そこでフラッシュされるかなと思ったのですが、
それもダメでした。何かいい方法はないでしょうか。


701 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:54:52.36 ]
>>700
バッファされてるんじゃなくてpointがダメな気がする。
insertとinsert-file-contentsはpointからデータを挿入するけど、
insert-file-contentsの方は挿入した後pointを動かさないから、
(goto-char (point-max))とかしてみたらどうかね。

702 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:25:16.80 ]
強制描画させるのなら、sit-forではなくて redisplay, redraw-frame, redraw-display とかは?

703 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:40:54.66 ]
実践Emacs入門読んだ。
elispを関数型言語って言ってるんだけど
誤記たよね?

704 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:06:39.05 ]
今出てるWEB+DBの記事の定義に従えばそうだね

でも、↓ではCLがHaskellと同列に書いてあるし、
en.wikipedia.org/wiki/Functional_programming
functional flavor languageで初期LISPも紹介してあるから、そんなに目くじらたてるほどでもないんじゃないの



705 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:15:26.74 ]
単に初期のLispじゃなくて、マッカーシー先生が論文中で示した、
理論的なモデルのことを指してるんじゃないかなそれは。

706 名前:704 mailto:sage [2012/03/09(金) 16:37:17.52 ]
そうなんだ

707 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:00:53.80 ]
で、実装しちゃったのがスティーブ・ラッセル氏

708 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 05:38:23.01 ]
るびきちの「Emacs Lispテクニックバイブル」ってこのスレの人的には
評価どうなん?

709 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 05:50:32.97 ]
Emacsテクニックバイブルとは別の本だということを知らなかった

710 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 08:55:56.58 ]
>>701
遅くなりましたが、そのとおりでした。ありがとうございます。
>>702
何かのときのために覚えて起きます。

711 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 10:00:02.54 ]
るびきちって、るびーきち○いだった人?

712 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:26:39.59 ]
> るびきちの「Emacs Lispテクニックバイブル」

内容以前に文章が稚拙すぎると思った。


713 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:44:11.30 ]
いいじゃない。頑張って書いてるんだから。何処かの翻訳本とかの何書いてるか分からないよりはまし。
本書いたことがないとどれだけ大変か分からない。

それとも、お前サバンナでも同じ事言えんの?

714 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:54:05.09 ]
>>713
サバンナ?わからない。
上の本に関してはどこか作者の心の乱れみたいなのを感じちゃって
正視に耐えなかった。




715 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:08:06.87 ]
             ,,ト、,, ,,ィ ,ィ
           _,,-;" '' ゛''" ゛';__
           ヽ/""゛゛''`';, ノr´)
          ,;'゛/__   _ "iヽ;ミ    お前ってアレだよな…
          ,,'"|( d  /oノ ド゛ `ミ   サバンナじゃ真っ先に死ぬタイプだよな
         r ";,| ▼    ド゛ `ミ
        (`ヽ';ヽ_人__ノ  /  ,,ミ゛、
         ヽ、 '';,i⌒⌒  /   リ  ヽ、
         /` ィ'r`''''""´  ,,ミ゛    |
        /   | ゛r、ノ,,トリ'"  i    |
        /   |          |    |
 ̄ ̄ ̄ ̄ ̄i   ノ ̄ ̄ ̄ ̄ ̄ ̄/   ノ ̄ ̄ ̄ ̄
        `ー ´        /  /
                ,-ー´  /
               ((_(_(_ノ

716 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:11:30.45 ]
savannah.gnu.org

717 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:27:06.17 ]
Emacsはサバンナやったんや

718 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:14:00.00 ]

               , -――- 、
              /       ヽ
              | ノ  ー    |   それっておかしくねぇ?
              |(・) (・)   |   だって、ここ2chじゃん
              |  (      |
              ヽ O    人
               >ー-― ´   ̄ ̄\
  ⊂ニニ ̄ ̄ ̄ヽ  /              |
     くメ) _ノ  |  |  |        |   |
       (/  |  | /  |        |   |
          |  |/  /|        |   |
          |  ト  / |        |   |
          ヽ__/ |        |   |

719 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:15:13.34 ]
氏の文章は論理的でなく読んでいて苦痛ですらある
Emacs Lispテクニックバイブルp. 82から引用してみよう

> 2-11-1 Lispファイルの置いているディレクトリを指定する
>
> ロードする方法を解説する前に、elispの置いてあるディレクトリを
> 指定しなければなりません。それを指定することで、ロードするときに
> Lispファイルのディレクトリ名を指定する必要がなくなります。

解説するのは誰か、ディレクトリを指定するのは誰か
本当に「しなければならない」のか

こういった論理の乱れが作用し読者はいつしか電波を発するようになるのである

720 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:37:12.21 ]
分かりにくいかもね。後半の文は要らんかったかもね。
どんな表現だったら良かったんだろうね
編集さん大変だったろうなあ

721 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:49:21.27 ]
その人の本は読んだことは無いがそこをさっと目で流した限り、
一般的に言うところの”パスを通す”と似た様な事をするんだろうなと読め、そんなに引っかかりは感じなかった。
精読や多読していくと違和感を感じるんだろうか。

722 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:57:55.82 ]
俺文書くのうまいぜっていう人ほど客観的になれなくて、
負けず嫌いだったりすると周りの言う事聞かなくなるからなあ。
小説の読み方の教科書とか

723 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 16:03:04.03 ]
>>719
お買い上げありがとうございます。

724 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 17:24:23.47 ]
>719の文章は、「ロードする方法をさっと解説してからパス通すことを
教えた方が必要性が分かりやすくていいんじゃね」とか突っ込まれたときに
受け入れることも無視することもできなかった結果の産物っぽく感じる

だから、単に言うこと聞かずに我が道をゆく方がマシだったんじゃね
従わないけど聞かずにはいられないってタイプがもっとも支離滅裂な結果になる

>>721
基本的に著者の書きたいことを分かってる場合は(著者と同じく)おかしさを感じにくいからな
そういう脳内変換は2chやネットの文章あさるには必須の技能でもあるし



725 名前:デフォルトの名無しさん [2012/03/10(土) 17:24:55.22 ]
elispの置いてあるディレクトリを指定することで、ロードするときにLispファイルの
ディレクトリ名を指定する必要がなくなります。
ロードディレクトリの指定は必須ではありませんが、
以降はロードディレクトリを指定した前提でロードする方法を解説します。




どう?


726 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 17:39:27.49 ]
>>725
その文章の方がいいことを説明する前に、>>719の方が圧倒的に面白い。

727 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 18:55:53.69 ]
「るびきちは文章が下手で読むに耐えない」
2ちゃんでは珍しくはっきりした結論がでたな
「理科系の作文技術」でも読んで寝るわ

728 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 19:59:39.57 ]
ちょっと前まではこの手の話題になると
ねたみ酷いって書き込みが入ったものだが


729 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 21:03:33.05 ]
その時もあんな酷い文例貼られてた?

730 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:03:22.91 ]
>解説するのは誰か、ディレクトリを指定するのは誰か
解説は本の役目で指定するのは自分、これ以外どう解釈するんだ?

731 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:22:48.16 ]
> ロードする方法を私が解説する前に、elispの置いてあるディレクトリを
> あなたは指定しなければなりません。それをあなたが指定することで、ロードするときに
> Lispファイルのディレクトリ名をあなたが指定する必要がなくなります。
はっきりさせるとむしろおかしくね?w

732 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:24:37.67 ]
>>730
本人乙。そう解釈せざるをえないのだが、
| (本が)ロードする方法を解説する前に、(あなたは)elispの置いてある
| ディレクトリを指定しなければなりません。
一つの文で主語が切り替わるからイラつく。

733 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:25:21.44 ]
>>730
複文かつねじれた文ってやつだよ
大卒ならみんな知ってる

734 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:30:04.29 ]
>大卒ならみんな知ってる

あほすぎ。なんか Emacs スレみたいな感じになってきたね。
あっちスレの誰かがやってきたのかな?




735 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:43:07.93 ]
>>734
まあそうだね。>>733は引っこめるよ。すまなかった

736 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:51:18.59 ]
大卒じゃなくても…とか大卒でも…とかマジレスしようと思ったけど
もしかしてその著者が大卒じゃないとかそういう流れでのレス?

737 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 23:32:52.39 ]
るびきちは一応大卒だったと思うが
>【著者紹介】 るびきち
>早稲田大学大学院理工学研究科修士課程修了。

738 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 23:58:34.13 ]
なんか臭い。

739 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:24:24.11 ]
じゃあべつにジョークでもなかったか
素直に735の意に従うべきだったな

740 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:51:16.12 ]
何かを作ったことが無い人は「これくらいなら自分でも本気出せば作れる」と思ってる

741 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:54:32.63 ]
この程度なら、と思わせる文章の酷さ。

742 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:59:10.07 ]
>>740
あるあるすぎて困るけど作品の批評とはまた別の話

743 名前:デフォルトの名無しさん [2012/03/17(土) 14:27:29.00 ]
質問です。2つのOCRした文章に、大きな違いが無いことを確認するために
*ediff control panel*で
(defun my-ediff-make-fine-diffs-all ()
(interactive)
(let ((i 0))
(while (< i ediff-number-of-differences )
(ediff-make-fine-diffs i)
(setq i (1+ i))
)))
として overlay で違いを強調するところまではやったのですが、
overlayのままでは、enriched-mode で保存も出来ないので、
overlay を text-property に変換して enriched-mode で保存できたら
いいなと思ってるんですが、どうすればいいでしょうか。
文章が長いのとOCRのノイズが多いので、手ではやりたくありません。

よろしくお願いします。

744 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:48:20.69 ]
next-overlay-changeとかでバッファの先頭からループして
テキストプロパティに変換して削除して回るだけっぽい




745 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:39:46.40 ]
>>744
www.gnu.org/software/emacs/manual/html_node/elisp/Finding-Overlays.html
の find-overlays-specifying を見てたんですが、
(overlay-get overlay 'face) とかでどんな overlay かは返ってきますね。

するとこれをスタックに積んで始まりと終わりが分かったら
そこを変換しろと言う訳ですね。ちょっとやってみます。
また分からなかったら質問します。ありがとうございます。

746 名前:デフォルトの名無しさん [2012/03/21(水) 23:49:54.13 ]
deを含まないabcを探索したいのですが、以下でうまくいきません。
もしかして、emacs lispで「?!」は使えないのでしょうか?

(re-search-forward ”abc(?!de)” nil t)

747 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 00:16:43.92 ]
Infoぐらい読もう。
(info "(elisp)Syntax of Regexps")

748 名前:746 mailto:sage [2012/03/22(木) 01:07:53.55 ]
>>747
special charactersに「!」が含まれていないので、
使えないという理解でいいんですよね?

うーん、書くのが面倒くさくなるなあ。

749 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 02:16:32.52 ]
>>746
バックスラッシュが括弧に必要

750 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 08:31:18.61 ]
>>749
拡張正規表現の話だぞ。

751 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 13:49:33.36 ]
>>750
すまん。Emacsに先読みが無いことに今気がついた。
普通は後続の正規表現を指定するか、単語境界いれるからあんまり使わないんだよね

752 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 16:17:30.37 ]
elispは拡張正規表現をサポートしていない。

代替するとこんな感じか?わっかりにっきーな
(re-search-forward "abc[^d]\\|abcd[^e]\\|abc$\\|abcd$")

753 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 21:46:10.19 ]
>>752
「拡張正規表現」の定義によりますよ。

754 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:06:24.54 ]
言いたいことあるなら中身まで言えば良いのに



755 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:12:46.02 ]
>>750
emacsの正規表現でグループ化するには(をエスケープして\(としてやらないといけない
しかし単に"\("と書いてはいけない。
"\("が文字列として評価され(になり、その(が正規表現に渡されてとして評価される
正規表現に\(を渡したい時は文字列"\\("としないといけない

756 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:15:18.09 ]
>>755
エスケープはわかったからさ。>>746
> deを含まないabcを探索したいのですが
これをemacsの正規表現で書いてくれや。

757 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:36:29.29 ]
サーセン

758 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 13:24:07.87 ]
>>756
>>753

759 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 16:20:20.63 ]
?
emacsの正規表現って定義あるよね?

760 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 23:21:27.61 ]
Perl/Ruby/Python/TclとかにあるNegative lookahead (?!re)はemacs lispには無いはず。
emacs24とかは知らんが。

abc(?!de)は、"abcxxxx" の最初の "abc" とマッチするんだよね。
>>752のは "abcx"とマッチすることになるから微妙に違ってくる。
emacs lispでは、ひとつの正規表現だけでは、これと同じことはできないんじゃないの?

761 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:31:35.63 ]
vim なら abc\(de\)\@! でできる。
Emacs の正規表現の貧弱さにはいつもイライラする。


762 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 05:17:04.56 ]
鬼車導入と新たな正規表現リテラルの導入かねやっぱり

763 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 10:03:06.08 ]
今更エンジン変更とか新しくPEG導入するよかコストかかりそう

764 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 13:45:33.85 ]
正規表現をPCREに変えろという話が本家で出ては消え、出ては消え・・・
本気で変えたいんならレキシカルスコープ変数やった人みたいに、
専用ブランチ作ってマージして、互換性の問題などを検証してみんなを納得させないといけない。
PEGはもういくつか実装あるような希ガス



765 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 15:24:09.42 ]
ELisp の場合、正規表現を特別扱いするような文法はないから、単に新しい関数群を導入すれば互換性は壊さずに済むよ。
pcre-search-forward や pcre-match-string みたいな。


766 名前:デフォルトの名無しさん [2012/03/24(土) 19:29:57.02 ]
以下の設定で、open -gとしてバックグランドで開きたいのですが、どのように書けば"-g"オプションを渡せますか?
(setq browse-url-generic-program "/usr/bin/open")

767 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 19:39:48.53 ]
browse-url-generic-args ってそれ指定するための変数じゃねーの?しらんけど

768 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 20:04:29.09 ]
>>767
(setq browse-url-generic-args (list "-g")))
でうまく行きました。ありがとうございます。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef