🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.editor.mule
Article #714

Re: about Emacs Lisp

#714
From: Fujisawa Jiro
Date: Mon, 01 Mar 1999 00:00
141 lines
6650 bytes
こんにちは、藤澤です。

御教授どうも有難うございます。

In article <7bcvjq$lgf$1@ocusv4.gw.osaka-cu.ac.jp> Tsuyoshi AKIHO
<akiho@sci.osaka-cu.ac.jp> writes:
> 大阪市立大学の秋保です。適当に改行させてもらっています。

> In article <7b92g8$34b$1@nntp.wao.or.jp> fujisawa@wao.or.jp
> (Fujisawa Jiro) writes:
fujisawa> (略)
> etags で TAGS ファイルを作って、M-x tags-search するというのは、どう
> でしょうか。*sjis* と *junet* では、うまく検索できました(他はテスト
> してないです)。

*euc-japan* でもうまく行くようです。

> 僕は、以下の関数を ~/.emacs に定義して使っています。

> ---start---
 ;; 再帰的にファイルを検索させて、etags を実行させる。
> (defun etags-find (dir pattern)
> " find DIR -name 'PATTERN' |etags -"
>   (interactive
>    "DFind-name (directory): \nsFind-name (filenamewildcard): ") 
>   (shell-command 
>        (concat "find " dir " -name \"" pattern "\" -print |etags -"))
> )

これは最初うまくいかなかったのですが、調べてみるとその理由は、私の所の 
find が、

# find ~/deta/temp/ -name '*.t*' -print 
/home/fujisawa/deta/temp//dokuyu.tex
/home/fujisawa/deta/temp//sonota.txt
/home/fujisawa/deta/temp//tyubunx.tex
/home/fujisawa/deta/temp//tmp/htyubun.tex
/home/fujisawa/deta/temp//tmp/nenji.txt

の様に指定したディレクトリの後に '//' を入れるせいのようで、

(前略)-print | sed -e 's/\\/\\//\\//g' | etags -"))

の様に sed を使って '/' を一つ消してやればうまくいくようになりました。

> (defun etags-find-detail (dir pattern lang output-file)
>   "etags-find-detail \n find DIR -name 'PATTERN' |etags -"
>   (interactive
>    "DFind-name (directory): 
>    \nsFind-name (filename wildcard): 
>    \nsLangage-name (Default: auto): 
>    \nsOutput-file (Default: TAGS): ")
>   (if (not (>= (length lang) 1))
>       (setq lang "auto"))
>   (if (not (>= (length output-file) 1))
>       (setq output-file "TAGS"))
>   (shell-command 
>    (concat "find " dir " -name \"" pattern 
>            "\" -print | sed -e 's/\\/\\//\\//g' | etags -l " 
>            lang " -o " output-file " -")))
(適当に折り返しました)

ただ、こちらの方は、うまく動かず、その原因は、私の所の etags には '-l' 
というオプションが無い為のようです。
# etags --help
で見ても、
# man etags
で見ても、'-l' というオプションは見つかりません。バージョンか何かが違っ
ているのでしょうか?
# etags -V
とすると、
ETAGS for Emacs version 19.28.
と表示されます。

> Mule2.3(GNU Emacs 19.28) & GNU Emacs 20.2 で動作確認しました。これな
> ら、
fujisawa> (略)
> *.txt を指定して、TAGS ファイルを作れば問題ないです。検索を続けるに
> は、M-, です。

まあ、私が検索をかけるファイルは、大抵が *.txt か *.tex で、同じディレ
クトリにあるバイナリーファイルは、*.dvi ぐらいですから、*.t* でほとん
ど問題無く行くようですが、たまに *.gb とか *.b5 とかありますから...
まあ、これらは中国語のファイルですから、結局別に検索すればいいんですが。
ワイルドカードでは、正規表現の様に "txt|tex|gb|b5" とかは出来無いです
よね。

> 藤澤さんは、中国語でも検索したいと思うのですが、Mule では、 M-x
> set-primary-environment で、 chinese を指定すれば、検索できると思い
> ます。

一番やりたかったのは、*junet* で多言語を混在させた文章の検索なのですが、
これは全然問題無く出来ました。(^_^)
中国語で書かれたファイルはそれほど多くないので、*junet* に変換しておけ
ば問題無いようです。

> Mule for Windows でなら、find コマンドがないので、cygnus をインストー
> ルしていないと使えないです。Meadow は使ってないのですが、同じと思い
> ます。

今の所、FreeBSD でほとんどの作業を行なおうと思っているので、取り敢えず 
UNIX の Mule で動作すれば満足なのですが、そのうち Window の方でも挑戦
してみたいと思います。

> GNU Emacs 20.2 では、-*-mode: C; coding: latin-1;-*- とファイルに書
> いておけば、code の指定が出来るので、この方法で検索できると思います
> (テストしてない)。

Emacs 20 は、私の使用したい幾つかのマクロが動かない為、UNIX の方では現
在の所導入を躊躇しております。何とか UNIX に作業環境を移したいと思った
のも、一つはこの理由によります。
この間も、自分で書いた Emacs Lisp が、19.28 の Mule では動いたのに、
Meadow ではうまく行きませんでした。(何故だろう?)

fujisawa> さらに、*.tex のファイルは、やてふモードで(やてふを使ってい
fujisawa> ます)開かれてしまい、hilit も使っているため、特に大きいファ
fujisawa> イルの場合、よけいな時間がかかってしまいます。

> こちらはパスさせて下さい。

etags を使った方法なら、開くファイルは検索にマッチしたファイルのみなの
で、これはそれほど大きな問題にはならないようです。解決出来るならそれに
こした事はありませんが。

御教授どうも有難うございました。お蔭様で非常に便利になりました。
(etags という物がある事すら知らなかった無知な私...)

後は、w3 で Big5 で書かれたホームページを検索する事が出来れば、ほとん
ど全ての作業を FreeBSD に移す事が出来そうです。

これに関しては、また改めて質問させて頂きたいと思っておりますので、何か
御気付きの点等ございましたら、御教授下さい。

長くなってしまい、申し訳ありませんでした。


------
                                 ┌────────────────┐
                                 │藤澤次郎   神戸大学文化学研究科 ┃
                                 │E-mail:fujisawa@lit.kobe-u.ac.jp┃
                                 └━━━━━━━━━━━━━━━━┛
Technical Details
Message-ID: <7betu8$cie$1@nntp.wao.or.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <7b92g8$34b$1@nntp.wao.or.jp> <7bcvjq$lgf$1@ocusv4.gw.osaka-cu.ac.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 10eba4,3ca1c3634d4ed96c
X-Google-Attributes: gid10eba4,public
From: fujisawa@wao.or.jp (Fujisawa Jiro)
Subject: Re: about Emacs Lisp
Date: 1999/03/01
Message-ID: <7betu8$cie$1@nntp.wao.or.jp>
X-Deja-AN: 450089876
References: <7b92g8$34b$1@nntp.wao.or.jp> <7bcvjq$lgf$1@ocusv4.gw.osaka-cu.ac.jp>
Content-Type: text/plain; charset=ISO-2022-JP
X-Complaints-To: root@210.224.92.18
X-Trace: nntp.wao.or.jp 920320776 12878 210.224.92.119 (1 Mar 1999 20:39:36 GMT)
Organization: Kobe University
Mime-Version: 1.0 (generated by tm-edit 7.106)
NNTP-Posting-Date: 1 Mar 1999 20:39:36 GMT
Newsgroups: fj.editor.mule