1

I have been using company for tab completion. It has been great while editing files.

Unfortunately, when I am using a buffer with the SLIME's REPL something annoying happens. As I start typing some function name, e.g.: list-bookmarks, Emacs creates a new buffer showing this info:

Click on a completion to select it.
In this buffer, type RET to select the completion near point.

Possible completions are:
list-bookmarks
list-bookmarks-after-hook
list-bookmarks-before-hook

Almost always, I will ignore this information. Thus, I would like to disable it.

I would like to have only company working on SLIME's REPL. It is already being shown in the status bar as an active mode.

Observation: this "problem" does not if I use M-/. It only happens if I use tab. Since I am a heavy user of tab, I would like to tweak it without chaning bindings on M-\·

My bet is that I need to disable some hook in my config. Is my instinct correct? What exactly should I do?

Thanks!

1 Answer 1

1

There are lots of things to unpack here. Let me reframe what you're actually asking.

I have been using company for tab completion.

You have been using company for completion. Company-mode is a minor mode. It can be enabled locally or globally. You don't press any key for the completion to start. You simply wait company-idle-delay seconds, and it starts completing (i.e. the drop-down menu appears). Notice, however, that there's a company-active-map. That's a set of keybindings enabled IF AND ONLY IF the completion has already started. Indeed, (by default) hitting TAB runs company-complete-common. Let me make this clear: hitting TAB BEFORE the completion runs completion-at-point, i.e. the built-in (extremely powerful and underrated) Emacs completion system.

Although company is part of emacs, there's no documentation (afaik). How did I study it? By reading the source code. If you're unsure where to start: visit its homepage; M-x find-library RET company RET; C-h f company-mode RET.

Now it should be clear that what you're really asking is: is there a way to disable the built-in Emacs completion? Well, yes. Do you really need that? No. Don't hit TAB before company starts doing its thing. If you'd like it to start faster, tweak company-idle-delay.

Notice that you don't need to use M-/ when company-mode is active. What M-/ suggests is part of company's completion. In proper terms, dabbrev is a company backend by default.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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