(ivy-mode 0) in a buffer kills ivy across all the other buffers, too. How to stop ivy in a specific buffer only (I don't need it in ERC, where i want
TAB to give me a list of all the people in the channel, not just ten of them).
How to stop ivy in a specific buffer only
At the time of writing, Ivy is a global minor mode which modifies the variables
completion-in-region-function, and remaps a couple of global buffer switching key bindings.
This means that it is not currently designed to be en/disabled on a per-buffer basis. The closest you can come to achieving this is by reverting the aforementioned variables to their original values buffer-locally. For example:
(defun my-default-completion () "Locally revert completion variables to their default values." (setq-local completing-read-function #'completing-read-default) (setq-local completion-in-region-function #'completion--in-region)) (add-hook 'some-mode-hook #'my-default-completion)
This will not, of course, affect the globally remapped key bindings.
If you're lucky and know where to look, you can sometimes achieve more granular control of how calls to
completing-read are performed under
ivy-mode by customising
I don't think it would be completely unreasonable to file a feature request on the project's issue tracker for a non-global version of