Top Related Projects
Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
:mag: consult.el - Consulting completing-read
Emacs Mini-Buffer Actions Rooted in Keymaps
Project Interaction Library for Emacs
Quick Overview
Helm is an incremental completion and selection narrowing framework for Emacs. It provides a powerful interface for searching and filtering various types of data, including files, buffers, and commands. Helm aims to make Emacs more intuitive and efficient by offering a consistent and customizable way to interact with different Emacs features.
Pros
- Enhances productivity by providing a unified interface for many Emacs operations
- Highly customizable and extensible, allowing users to create their own Helm sources
- Offers fuzzy matching and flexible filtering options for efficient searching
- Integrates well with many popular Emacs packages and modes
Cons
- Can have a steep learning curve for new users
- May feel overwhelming due to the large number of features and options
- Can be resource-intensive on older hardware or with large datasets
- Some users may prefer the simplicity of built-in Emacs completion systems
Code Examples
- Basic Helm command to find files:
(helm-find-files)
- Custom Helm source for searching through a list of items:
(helm :sources
(helm-build-sync-source "My Custom Source"
:candidates '("Item 1" "Item 2" "Item 3")
:action (lambda (candidate)
(message "Selected: %s" candidate))))
- Using Helm for buffer selection:
(helm-buffers-list)
Getting Started
To start using Helm, add the following to your Emacs configuration file:
(require 'helm-config)
(helm-mode 1)
;; Optional: Replace some common Emacs commands with Helm versions
(global-set-key (kbd "M-x") #'helm-M-x)
(global-set-key (kbd "C-x C-f") #'helm-find-files)
(global-set-key (kbd "C-x b") #'helm-buffers-list)
;; Optional: Enable fuzzy matching
(setq helm-mode-fuzzy-match t)
(setq helm-completion-in-region-fuzzy-match t)
After adding these lines, restart Emacs or evaluate the code. You can now start using Helm commands like helm-M-x
or helm-find-files
to experience the enhanced completion and narrowing features.
Competitor Comparisons
Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
Pros of Swiper
- Lightweight and faster performance, especially for large buffers
- Simpler and more focused functionality, easier to learn and use
- Integrates well with other Ivy-based packages
Cons of Swiper
- Less feature-rich compared to Helm's extensive capabilities
- Limited customization options and fewer built-in actions
- May require additional packages for advanced functionality
Code Comparison
Swiper:
(ivy-mode 1)
(global-set-key "\C-s" 'swiper)
(global-set-key (kbd "C-c C-r") 'ivy-resume)
(global-set-key (kbd "<f6>") 'ivy-resume)
Helm:
(require 'helm-config)
(global-set-key (kbd "M-x") 'helm-M-x)
(global-set-key (kbd "C-x C-f") 'helm-find-files)
(global-set-key (kbd "C-x b") 'helm-buffers-list)
(helm-mode 1)
Both Swiper and Helm are popular Emacs packages for improving search and completion functionality. Swiper, part of the Ivy framework, offers a streamlined approach with faster performance, making it ideal for users who prefer simplicity and speed. Helm, on the other hand, provides a more comprehensive set of features and customization options, making it suitable for power users who want extensive control over their Emacs environment. The choice between the two often comes down to personal preference and specific workflow requirements.
:mag: consult.el - Consulting completing-read
Pros of Consult
- Lightweight and fast, with minimal dependencies
- Integrates seamlessly with Emacs' built-in completion framework
- Highly customizable and extensible
Cons of Consult
- Less feature-rich out of the box compared to Helm
- Steeper learning curve for advanced customizations
- Smaller ecosystem of extensions and plugins
Code Comparison
Helm:
(helm :sources (helm-build-sync-source "Example"
:candidates '("Option 1" "Option 2" "Option 3")
:action (lambda (candidate)
(message "Selected: %s" candidate))))
Consult:
(consult--read
'("Option 1" "Option 2" "Option 3")
:prompt "Select: "
:category 'example
:action (lambda (candidate)
(message "Selected: %s" candidate)))
Both Helm and Consult provide powerful completion and selection frameworks for Emacs. Helm offers a more comprehensive set of features and a larger ecosystem, while Consult focuses on lightweight performance and integration with Emacs' built-in completion system. The choice between the two depends on individual preferences and specific use cases.
Emacs Mini-Buffer Actions Rooted in Keymaps
Pros of Embark
- Lightweight and modular design, allowing for easier customization and integration
- Provides context-aware actions without a dedicated UI, preserving screen real estate
- Seamlessly integrates with existing Emacs commands and keybindings
Cons of Embark
- Less comprehensive out-of-the-box functionality compared to Helm
- Steeper learning curve for users accustomed to traditional completion frameworks
- Smaller community and ecosystem of extensions
Code Comparison
Helm:
(helm :sources (helm-build-sync-source "Example"
:candidates '("Option 1" "Option 2" "Option 3")
:action (lambda (candidate)
(message "Selected: %s" candidate))))
Embark:
(defun my-action (candidate)
(message "Selected: %s" candidate))
(embark-define-keymap my-map
"My keymap"
("a" my-action))
(add-to-list 'embark-keymap-alist '(my-type . my-map))
Both Helm and Embark are powerful tools for enhancing Emacs' functionality, but they approach the problem differently. Helm provides a comprehensive, UI-driven solution for narrowing and acting on choices, while Embark offers a more lightweight, context-aware approach that integrates seamlessly with existing Emacs commands. The choice between them depends on personal preference and specific use cases.
Project Interaction Library for Emacs
Pros of Projectile
- Focused specifically on project management and navigation
- Lightweight and fast, with minimal setup required
- Integrates well with other popular Emacs packages
Cons of Projectile
- Less versatile than Helm, primarily focused on project-related tasks
- May require additional packages for some advanced features
- Smaller community and ecosystem compared to Helm
Code Comparison
Projectile:
(projectile-mode +1)
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
(setq projectile-completion-system 'ivy)
Helm:
(require 'helm-config)
(helm-mode 1)
(global-set-key (kbd "M-x") 'helm-M-x)
(global-set-key (kbd "C-x C-f") 'helm-find-files)
Summary
Projectile is a focused project management tool for Emacs, offering fast and efficient navigation within projects. It's lightweight and easy to set up but may require additional packages for some advanced features. Helm, on the other hand, is a more comprehensive completion and selection narrowing framework that extends beyond project management. While Helm offers greater versatility, Projectile excels in its specific domain of project-related tasks. The choice between the two depends on whether you need a dedicated project management tool or a more general-purpose completion framework.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Emacs-Helm
Helm is an Emacs framework for incremental completions and narrowing selections. It provides an easy-to-use API for developers wishing to build their own Helm applications in Emacs, powerful search tools and dozens of already built-in commands providing completion to almost everything. It is a must-have for anyone using Emacs as a main work environment. Helm has been widely adopted by many Emacs power-users. It is available in Melpa and can be easily installed from the Emacs package manager.
Homepage | Downloads | Get started | Helm wiki | FAQ
Helm in action browsing images
Maintainance of Helm is a lot of work please consider making a donation, thank you!

Top Related Projects
Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
:mag: consult.el - Consulting completing-read
Emacs Mini-Buffer Actions Rooted in Keymaps
Project Interaction Library for Emacs
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot