Toggle-term for emacs! https://justinlime.dev
Find a file
2024-11-12 00:35:37 -06:00
assets init 2024-05-04 19:09:13 -05:00
LICENSE add license 2024-05-15 19:45:49 -05:00
README.org Fixup 2024-08-03 13:51:50 -05:00
toggle-term.el use display-window instead 2024-11-12 00:35:37 -06:00

Toggle Term

toggle-term.el is an Emacs package inspired by toggleterm.nvim, allowing you to spawn a persistent term, vterm, eat, shell, eshell, or ielm at the bottom of the frame and switch between them when needed.

/justinlime/toggle-term.el/media/branch/main/assets/toggle-term.gif

Installation

Melpa

As of 05/26/24 toggle-term.el is part of the MELPA

Just add the following to your init.el if you already have the MELPA added:

  (use-package toggle-term
    :bind (("M-o f" . toggle-term-find)
           ("M-o t" . toggle-term-term)
           ("M-o v" . toggle-term-vterm)
           ("M-o a" . toggle-term-eat)
           ("M-o s" . toggle-term-shell)
           ("M-o e" . toggle-term-eshell)
           ("M-o i" . toggle-term-ielm)
           ("M-o o" . toggle-term-toggle))
    :config
      (setq toggle-term-size 25)
      (setq toggle-term-switch-upon-toggle t))

Quelpa

(quelpa
 '(toggle-term :fetcher github
               :repo "justinlime/toggle-term.el"))
(setq toggle-term-size 25)
(setq toggle-term-switch-upon-toggle t)
(require 'toggle-term)
Quelpa Use Package
  (use-package toggle-term
    :quelpa (toggle-term :fetcher github :repo "justinlime/toggle-term.el")
    :bind (("M-o f" . toggle-term-find)
           ("M-o t" . toggle-term-term)
           ("M-o v" . toggle-term-vterm)
           ("M-o a" . toggle-term-eat)
           ("M-o s" . toggle-term-shell)
           ("M-o e" . toggle-term-eshell)
           ("M-o i" . toggle-term-ielm)
           ("M-o o" . toggle-term-toggle))
    :config
      (setq toggle-term-size 25)
      (setq toggle-term-switch-upon-toggle t))

Usage

Functions

Toggle-term provides the following main functions:

toggle-term-find
Switch to an active toggle, or create a new one.
toggle-term-toggle
Toggle the last used toggle.

Helper Functions

The follwing helper functions are included for use with keybinds:

toggle-term-term
Toggle a term, named toggle-term-term
toggle-term-vterm
Toggle a term, named toggle-term-vterm
toggle-term-eat
Toggle a eat-term, named toggle-term-eat
toggle-term-shell
Toggle a shell, named toggle-term-shell
toggle-term-eshell
Toggle an eshell, named toggle-term-eshell
toggle-term-ielm
Toggle an ielm, named toggle-term-ielm

Variables

toggle-term-size

This can be used to set the size, which is a percentage of the window the toggle will occupy.

This would set the toggle to occupy 25% of the available window:

(setq toggle-term-size 25)

NOTE: values too high, or too low, may cause unexpected behavior

toggle-term-switch-upon-toggle

Determines if the window created by toggle term should be switched to upon spawning:

(setq toggle-term-switch-upon-toggle t)
toggle-term-use-persp

Optionally use perspective integration, automatically enabled when persp-mode is enabled.

(setq toggle-term-use-persp t)
toggle-term-init-toggle

Optionally define an initial toggle that will be the first used when invoking toggle-term-toggle.

;; '("name-of-toggle" . type-of-toggle)
(setq toggle-term-init-toggle '("my-terminal" . "term"))
;; or
(setq toggle-term-init-toggle '("my-shell" . "shell"))
;; etc