Convert Figma logo to code with AI

emacs-helm logohelm

Emacs incremental completion and selection narrowing framework

3,420
393
3,420
5

Top Related Projects

2,355

Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!

1,427

:mag: consult.el - Consulting completing-read

1,065

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

  1. Basic Helm command to find files:
(helm-find-files)
  1. 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))))
  1. 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

2,355

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.

1,427

: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.

1,065

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

License GPL 3 MELPA MELPA Stable

Emacs-Helm

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

Emacs-helm grep ag

Maintainance of Helm is a lot of work please consider making a donation, thank you!

Donate monthly using Patreon