I've tried to create a tags table for my assembler project using:

etags --language=none --regex="/[ \t]*\.\([^: \t]+\)/\1/i" *.asm

Which does work to a degree, and indeed when I load the TAGS file into Emacs, I see all the tags created just fine (from assembly labels).

My problem arises when I try and use M-. to search for a specific tag. It only shows me a very small subset of the tags in the *completions* buffer, despite all the tags seemingly present in the TAGS file.

Here's an example of what I'm trying to match:

.t0 DCB 0
.t1 DCB 0
.t2 DCB 0
.t4 DCB 0

Yet when I do M-., only the t0 tag will be listed in *completions*. If I manually enter t1 it can jump straight to it!

  • What version of Emacs are you using? Are you using the etags program that comes with that version? – Dmitry Sep 3 '15 at 21:00
  • 24.5.1, and yeah, using the etags program that comes with it :( – Dave F Sep 4 '15 at 20:20
  • 1
    I have no idea about results for asm code, but in general be aware that Exuberant Ctags is a thing that exists, and (like GNU ctags) it produces Emacs-compatible TAGS files when given a -e flag. In some cases Exuberant Ctags gives significantly better results. – phils Sep 6 '15 at 23:06

Thank you. I've reproduced it in the current master and pushed a fix: 770db45d6769.

If you don't build Emacs from Git, you can try applying this patch to your currently installed version.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.