[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: gtags-mode で「入力ファイルが 2 度指定されました。」が表示される



いつも meadow を便利に使わせてもらっています。

けんもつさん> C のコーディング等に gtags-mode を使っていましたが、ある時から
けんもつさん> gtags-mode でタグジャンプ(M-t)しようとすると
けんもつさん>   入力ファイルが 2 度指定されました。
けんもつさん> と表示されてジャンプできなくなってしまいました。が、何をしてからおかし
けんもつさん> くなったのか思い出せません...。
けんもつさん> Web で調べた所、Windows の system32 ディレクトリにパスが通っていると
けんもつさん> global が内部で実行する find 等のコマンドに Windows のものが使われてし
けんもつさん> まい、このエラーが表示されるらしいことが分かりました。

私も同じ現象に悩まされました。find ではなく、sort コマンドの問題では
なかったかと思います。

なぜ突然使用できなくなったかの原因はわからずじまいなのですが、
とりあえず以下のようにして回避しています。
(本質的な回避方法ではないので、もっと良い方法があるかと思います)

  ・global-<ver>.tar.gz を展開したトップディレクトリの gtags.conf を
    $HOME/.globalrc にコピー
  ・$HOME/.globalrc で sort_command を明示的に指定 (以下抜粋)
          gctags|tag command for GLOBAL:\
        	:tc=common:\
        	:suffixes=c,h,y,c++,cc,cpp,cxx,hxx,hpp,C,H,s,S,java,php,php3,phtml:\
        	:sort_command=gtags-sort:\   <--- ここ
        	:sed_command=sed:\
        	:GTAGS=gctags -dt %s:\
        	:GRTAGS=gctags -dtr %s:\
        	:GSYMS=gctags -dts %s:
  ・cygwin の sort.exe を gtags-sort.exe という名前にコピー

sortコマンドに cygwin sort コマンドの絶対パスを指定したり、
ln -s sort.exe gtags-sort.exe ではだめだったと記憶しています。
上記は、GLOBAL の info "4.1 How to config GLOBAL" を参考にしました。

GLOBAL の比較的新しいバージョンでないと、.globalrc で sort_command を
指定できないかも知れません。上記で動作を確認した GLOBAL は多分最新版です。
# 手元の環境ではないのでバージョンがわかりません・・・

ご参考まで。
--
原 洋介