_____ _ _ _ | ____|_ __ ___ __ _ ___ ___ | | | | ___| |_ __ ___ | _| | '_ ` _ \ / _` |/ __/ __| | |_| |/ _ \ | '_ ` _ \ | |___| | | | | | (_| | (__\__ \ | _ | __/ | | | | | | |_____|_| |_| |_|\__,_|\___|___/ |_| |_|\___|_|_| |_| |_|
Helm is incremental completion and selection narrowing framework for
Emacs. It will help steer you in the right direction when you're looking
for stuff in Emacs (like buffers, files, etc).
Helm is a fork of
anything.el originaly written by Tamas Patrovic
and can be considered to be its successor.
Helm sets out to clean up the legacy code in
and provide a cleaner, leaner and more modular tool, that's not tied in
the trap of backward compatibility.
You need a recent Emacs to use latest helm, at least Emacs-24.3.
helmrepository to some directory:
$ git clone https://github.com/emacs-helm/helm.git /path/to/helm/directory
makefrom this directory.
(add-to-list 'load-path "/path/to/helm/directory") (require 'helm-config)
NOTE: Installing helm like this (i.e from git+make) is the safest way.
Alternatively, you can have a quick try to helm by launching from the helm directory:
Note that this will not work on Windows systems.
Helm is now available on Melpa at
You will find there instructions to install.
WARNING: Due to a bad concept of package.el which is in charge of fetching helm files
and compiling them, expect errors most of the time when upgrading from melpa and
To avoid this you will have to compile your new files outside of your current emacs running helm.
People installing from git and using make file will not suffer from this problem.
See FAQ for more infos.
Note to Linux Distributions Maintainers
Only the extensions present in the github emacs-helm organisation are supported.
Some people are installing
helm with their own config using diverses
and other hacks, not using
Expect failures and slowdown at startup unless you really know what you are doing when you do so.
If you're afraid to play with Emacs's configuration, but want to try out Helm - have NO FEAR. Have a look at Emacs Prelude - it has Helm built-in and properly set-up.
M-x helm-mini and enjoy. You might want to bind that command to
a keyboard shortcut. Here's a suggestion:
(global-set-key (kbd "C-c h") 'helm-mini)
You can also start with
M-x helm-mode and enjoy helm completion in your favourites
Emacs commands (e.g
C-x C-f, etc...).
You can enable this by adding in your init file:
As a startup point you can also look at the helm section in Emacs menu to discover some of the commands provided by helm.
Helm is capable of a lot. Here is a demo of
The demo starts when you see
Eval: START in the minibuffer.
- All the C buffers are selected using the regexp
*C. In the demo, I also select Tcl buffers with
*Tcland then switched back to C buffers with
- I only want to have buffers that contains only the string "crash". To do that, I add a space, then add the pattern
- After the initial search pattern, I hand over the current matching buffers to
moccurwith Helm interface. In the above demo, I only switch to one file, that is
kexec.c. However, you can select multiple buffers with
C-SPCor select all buffers with
- Candidates can be filtered gradually by adding more pattern, i.e. I added
memoryto filtered down to buffers that contain the string "memory" among the buffers that are containing "crash".
As you can see, as you filtered out, the number of candidates decreases, as displayed in the modeline. At the end, there were 12 buffers remained as the result of filtering, down from the total 253 buffers.
You can read this guide to quickly get started with Helm.
You can find all the gory details on the Helm Wiki.
Check out the project's issue list a list of unresolved issues. By the way - feel free to fix any of them and sent us a pull request. :-)
Here's a list of all the people who have contributed to the development of Helm.
Bug reports and suggestions for improvements are always welcome. GitHub pull requests are even better! :-)
NOTE: When trying if something is working or not, be sure to start helm from
Emacs -Q or even better
Start it from your helm directory with
The Helm Team