Skip to content
Thierry Volpiatto edited this page May 3, 2017 · 47 revisions

Frequently Asked Questions (FAQ).

Errors when running make

helm.el:32:1:Error: Cannot open load file: aucun fichier ou dossier de ce type, async

If you have such error, that’s mean emacs-async package is not installed, or it is installed but not in a standard place and helm can’t find it, so you have to specify where to find it with EMACSLOADPATH environment variable. Specify it on the command line like this:

EMACSLOADPATH="/path/to/emacs-async:" make

See Installation for more details.

Where is Helm documentation?

Hit “C-h m” within a Helm session, or use the “helm-documentation” command.

A tip to hit C-h m within a Helm session can be found on the mode line. All help pages are grouped in a Org file generated by the command helm-documentation.

Why does MELPA update give errors?

You should not encounter this problem anymore.

Helm, when installed from (M)ELPA, specifies a dependency on emacs-async, which should resolve this problem. If it does happen, however, do the following:

  1. Uninstall helm and async with package-list-packages.
  2. Close Emacs
  3. Start emacs -Q.
  4. Reinstall helm from package-list-packages.
  5. Restart Emacs

If problem persists, report an issue.

Notes

  • After upgrading (helm or whatever), you will have to restart emacs (expect problems otherwise).
  • emacs-async is available as async in MELPA.
  • Async compilation of packages can be disabled per package or globally in async-bytecomp.el. If you do so, don’t complain if you have errors after upgrading Helm or Helm modules.

Why is calling helm-M-x with a prefix argument giving an error?

Use prefix args after starting helm-M-x, not before.

Read the Helm documentation (helm-documentation, bound by default to <helm-prefix> h h).

Also see Wiki page for helm-M-x.

Update: After Helm v1.9.8, using a prefix argument before helm-M-x is possible. See https://github.com/emacs-helm/helm/wiki/Commands

How do I get Helm and Popwin to play nice?

See the wiki page on working with Popwin.

What happened to the grep and multi-occur commands?

They have been removed due to redundancy.

The grep (helm-do-grep, helm-do-zgrep, helm-do-pdfgrep) and multi-occur (helm-multi-occur) commands got removed because they were unuseful as you can use them from helm-find-files and file-related commands (e.g. helm-locate). So now if you want to run helm grep, start helm-find-files, choose you files and hit C-s. The only difference now is that you hit C-s instead of RET. Not the end of the world!

Why can’t I exit completing-read with an empty string?

Hit C-RET or M-RET.

This can be seen in the mode line.

Why am I getting warnings when compiling with emacs-24.3.1?

Don’t be afraid, just ignore them ;-).

Helm has no warnings when compiling with emacs-24.4 or later. When compiling with 24.3, you may have many warnings (due to bugs in Emacs itself related to lexical binding and EIEIO).

Why is function-put void?

Reinstall Helm.

This is due to a bad installation of Helm (see here).

Why is a customizable Helm source nil?

If the source is nil, it is probably set up when command starts, and may be defined using helm-make-source with a specialized class.

If the source is defined with a specialized class (not a generic class like helm-source-sync, helm-source-async, helm-source-in-buffer, helm-source-dummy, etc.), you can add a new defmethod in your init file like:

(defmethod helm-setup-user-source ((source helm-source-ffiles))
  (helm-source-add-action-to-source-if
   "Byte compile file(s) async"
   'async-byte-compile-file
   source
   'helm-ff-candidates-lisp-p))

or

(defmethod helm-setup-user-source ((source helm-source-multi-occur))
  (setf (slot-value source 'follow) 1))

You can also set up the source yourself:

(with-eval-after-load "helm-regexp.el"
  (setq helm-source-occur (helm-make-source "Occur" 'helm-source-multi-occur
                            :follow 1))
  (setq helm-source-moccur (helm-make-source "Moccur" 'helm-source-multi-occur
                             :follow 1)))

NOTE: In these examples the follow slot is used, but note that starting from helm-2.1.0 to setup follow persistently, the only thing you have to do is

(setq helm-follow-mode-persistent t)

and when you hit C-c C-f in any source helm-follow-mode will be turned on now and for next emacs sessions until you hit again C-c C-f.

Notes

  • Don’t define a new defmethod helm-setup-user-source with generic classes as specified above.

Why did the debugger enter Lisp error when using session.el?

You may endup with Lisp error (void-variable \.\.\.) May be due to using session.el.

See here for how to fix this.

Why helm-mode is so long to startup?

See Issue 1000.

helm-mode conflict with ido-everywhere

Don’t use ido-everywhere but only helm-mode and customize which commands you want to use ido with variable helm-completing-read-handlers-alist See Here

Why after enabling helm-mode M-x and C-x C-f are not helmized?

Commands execute-extended-command and find-file bound respectively to M-x and C-x C-f have been disabled to force people using the real things that are helm-M-x and helm-find-files, the only thing you have to do to use these commands is to bound them respectively to M-x and C-x C-f. If you really want to have back the helmized commands (less powerfull and slower for M-x), remove them from helm-completing-read-handlers-alist.

Can you modify the emacs vanilla helmized command to behave differently?

No, helm uses a generic function for helmizing emacs vanilla commands and should behave exactly like them except for the completion model. When available use instead its native helm counterpart.

Clone this wiki locally