aşağıdaki minimum kaynak dosyasını adres: bozukNeden etags bozuk bir TAGS dosyası oluşturuyor?
$ etags path/xx/yy/fooBar.c
$ cat TAGS
path/xx/yy/fooBar.c,25
void this_is_a_test(1,0
Ama find yoluyla ETAGların çalıştırırsanız/Etiketler dosyasını xargs: Böyle ETAGların çalıştırırsanız
$ cat path/xx/yy/fooBar.c
void this_is_a_test(void)
{
}
ok çalışır
$ find . -name fooBar.c
./path/xx/yy/fooBar.c
$ find . -name fooBar.c | xargs etags
$ cat TAGS
path/xx/yy/fBoBar.c,25
void this_is_a_test(^?1,0
Dosya adı fBoBar.c - bogus!
find . -name '*.[ch]' | xargs etags
gibi bir şey yaparak TAGS oluşturabilmek istiyorum. Ama bunu yaptığımda dosya isimlerinin çoğunu yozlaştırıyor.
Bunun neden böyle başarısız olduğunu ve/veya çalışmasını sağlamak için ne yapabilirim?
Ubuntu Lucid. Etags, emacs23-bin ortak 23.1 + 1-4ubuntu7'dir.
Düzenleme:
fschmitt sorusuna cevaben:
$ etags $(find . -name fooBar.c)
$ cat TAGS
path/xx/yy/fBoBar.c,25
void this_is_a_test(1,0
Yeni bilgi:
Ben sadece orijinal Söz konusu iki kullanımlar arasındaki fark üzerinde olduğunu fark Yoldaki önde gelen .
. Ve e-postaları etags ./path/xx/yy/fooBar.c
gibi çağırırsam, dosyayı bozar. Bu nedenle, geçici çözümlerin etags'ın önde gelen etiketlerine sahip olmadığından emin olun. (Dokümantasyon neredeyse tam olarak benim kullanım deseni açıklar çünkü Belki de bu ETAG'ları bir hata söz konusudur.)
, sen --recurse seçeneğiyle (.c ve .h sadece) tüm dosyaları alabilirsiniz: 'ETAGların --recurse .', en azından http: //ctags.sourceforge. net/ctags-5.8. –
@fearless_fool: Teşekkürler! Bu seçenek, emacs ile gelen etags'ta mevcut değildir, ancak bunu bilmek, coşkulu mesajlara geçmek istememi sağlar. – bstpierre
Herhangi bir dezavantaja sahip olup olmadığını bilmiyorum, ama 'pwd -name $' ı bul. * .c '-o -name' * .h '| xargs etags'? Bu şekilde mutlak yollar etags'a teslim edilir. –