etagsを試す

30分プログラム、その168。etagsを試す。前々から気になっていたので。

これを使うと特定の関数に簡単にジャンプできるようになる。これはかなり便利な気がする。

詳しくは、Meadow/Emacs memo:プログラム関連 - 一般用を参考に。

ちなみに、etagsはEmacs用、ctagsはvim用、gtagsはglobal用。gtagsをEmacsから使う方法もあるらしいけれど、それはまた今度。

使い方

まず、コマンドラインでTAGSファイルを生成する。

$ etags *.scm

で、EmacsでM-.と打つとタグジャンプができる。関数名がタブやスペースで補完できる。

ソースコード

一応、テストに使ったソースコード。特に意味はない。

#! /opt/local/bin/gosh

(use srfi-1)
(define (fact n)
  (if (eq? n 0)
      1
      (* n (- n 1))))

(define (sum xs)
  (apply + xs))

(define (product xs)
  (apply * xs))

(define (fact-2 n)
  (product (iota n 1)))

(define (qsort xs)
  (if (eq? xs '())
      '()
      (let1 p (car xs)
	(append
	 (qsort (filter (lambda(x) (< x p)) (cdr xs)))
	 (list p)
	 (qsort (filter (lambda(x) (>= x p)) (cdr xs)))))))