🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.editor.mule
Article #713

Re: about Emacs Lisp

#713
From: Tsuyoshi AKIHO
Date: Mon, 01 Mar 1999 00:00
77 lines
3767 bytes
大阪市立大学の秋保です。

適当に改行させてもらっています。

In article <7b92g8$34b$1@nntp.wao.or.jp>
    fujisawa@wao.or.jp (Fujisawa Jiro) writes:

fujisawa> こんにちは、藤澤と申します。

fujisawa> 最近、文字コードを気にせずにグローバルな検索をする
fujisawa> 為に、 Mule で grep の様にディレクトリ単位でファイ
fujisawa> ル検索が出来る Emacs Lisp が書けないかと考えている

etags で TAGS ファイルを作って、M-x tags-search するというの
は、どうでしょうか。*sjis* と *junet* では、うまく検索できま
した(他はテストしてないです)。

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

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

;; より条件を詳しく
(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 | etags -l " lang " -o " output-file " -")))
---end---

Mule2.3(GNU Emacs 19.28) & GNU Emacs 20.2 で動作確認しました。
これなら、

fujisawa> また、それ以外にも当然ながらバイナリーファイルも開
fujisawa> いてしまいます。バイナリーファイルを無視して、テキ
fujisawa> ストファイルのみ開くにはどうしたらよいのでしょうか?

*.txt を指定して、TAGS ファイルを作れば問題ないです。
検索を続けるには、M-, です。

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

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

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

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

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

-- 
     秋保強(AKIHO Tsuyoshi)
    大阪市立大学院理学研究科 
     レーザー化学研究室 M1
 mail-to:akiho@sci.osaka-cu.ac.jp
Technical Details
Message-ID: <7bcvjq$lgf$1@ocusv4.gw.osaka-cu.ac.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <7b92g8$34b$1@nntp.wao.or.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 10eba4,3ca1c3634d4ed96c
X-Google-Attributes: gid10eba4,public
From: Tsuyoshi AKIHO <akiho@sci.osaka-cu.ac.jp>
Subject: Re: about Emacs Lisp
Date: 1999/03/01
Message-ID: <7bcvjq$lgf$1@ocusv4.gw.osaka-cu.ac.jp>
X-Deja-AN: 449771973
References: <7b92g8$34b$1@nntp.wao.or.jp>
X-cite: xcite 1.20
Content-Type: text/plain; charset=ISO-2022-JP
XXref: aist-nara fj.editor.mule:7889
Organization: Osaka City Univ.
Mime-Version: 1.0 (generated by SEMI 1.13.2 - "Mikawa")
User-Agent: Chao-gnus/6.12.5 SEMI/1.13.2 (Mikawa) FLIM/1.12.5 (Hirahata) Emacs/20.2 (powerpc-gnu-linux) MULE/3.0 (MOMIJINOGA)
Newsgroups: fj.editor.mule
X-Location: news://fse3.aist-nara.ac.jp/fj/editor/mule/7889