git プロジェクトの emacs をセットアップするとき、私は使用しています
git ls-files | xargs -d\\n etags
これにより、現在のディレクトリに TAGS ファイルが作成されます。別のプロジェクトのシンボルを含めたいことがよくあるので、絶対パスを追加します。
etags -a /path/to/project/*.[ch]
ただし、2 つのgitリポジトリがある場合
git ls-files /path/to/git_project
動作しません: git は、パスが現在のリポジトリの外にあることを教えてくれます。cd できましたが、stdout に出力されたパスは TAGS ファイルに関連していないため、emacs はそれらを見つけられません。
この問題を解決するエレガントな方法はありますか? 私の頭に浮かぶのは、xargsにフィードする前に各行にプレフィックスを追加する、複雑すぎるシェルスクリプトマジックです...