eval-exec / eee.el

Launch TUI commands in an external terminal asynchronously, seamlessly integrating callbacks within Emacs. Elevate your Emacs experience with eee.el
GNU General Public License v3.0
87 stars 5 forks source link

eee.el launches excellent terminal user interface tools (such as yazi, fzf, lazy-git, etc.) with Emacs asynchronously. It is very fast and does not burden Emacs.

ee.el Support:

  1. [[https://github.com/sxyazi/yazi/][yazi]] : launch yazi from Emacs asynchronously, then yazi tell emacs which file to open
  2. [[https://github.com/BurntSushi/ripgrep/][ripgrep]] : launch ripgrep + fzf from Emacs asynchronous, then ripgrep tell emacs jump to which file and position
  3. [[https://github.com/junegunn/fzf/][fzf]] : combined with =ripgrep=
  4. [[https://github.com/jesseduffield/lazygit][lazygit]] : launch =lazygit= from Emacs asynchronously
  5. ripgrep-all: search pdf files by =ee-rga=
  6. delta: show git delta by =ee-delta=
  7. htop: launch htop by =ee-htop=
  8. btop: launch btop by =ee-btop= ... more tui tools and options will be enhanced and provided.

[[https://github.com/user-attachments/assets/9298b2be-1ccb-4696-8569-672fac660f22][preview]]

** Installation

*** Elpaca

+begin_src elisp

(use-package eee :ensure (:type git :host github :repo "eval-exec/eee.el" :files (:defaults ".el" ".sh")))

+end_src

*** Straight

+begin_src elisp

(use-package eee :ensure '(:type git :host github :repo "eval-exec/eee.el" :files (:defaults ".el" ".sh")))

+end_src

*** Local

+begin_src elisp

(use-package eee :load-path "")

+end_src

** Configuration

*** Example

+begin_src elisp

(use-package eee :load-path "~/Projects/github.com/eval-exec/eee.el/" :config

;; Should have wezterm or alacritty installed, more terminal application is supporting... ;; Issues and pull requests are welcome (setq ee-terminal-command "wezterm")

(global-definer "f" 'ee-find) (global-definer "g" 'ee-lazygit) (global-definer "y" 'ee-yazi-project) (general-def "C-x C-f" 'ee-yazi) (general-def "C-S-f" 'ee-rg) (general-evil-define-key 'normal 'global "M-f" 'ee-line) )

+end_src

Please submit an issue to let me know what you need and want. Thank you! 💙