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, 2015 at 21:00
  • 24.5.1, and yeah, using the etags program that comes with it :(
    – Dave F
    Sep 4, 2015 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, 2015 at 23:06

1 Answer 1


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.


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.