;;; new-term.el --- A way to spawn multiple emacs terminals -*- lexical-binding: t; -*- ;; Copyright © 2022 Erik Oosting ;; Author: Erik Oosting ;; Keywords: application-launcher, misc ;; URL: https://crazazy.tilde.cafe/emenu.git/log.html ;;; License: ;; This file comes with the MIT license, and without any warranty whatsoever ;; You can do with this stuff whatever you want to, but just remember ;; to put me in the footnote :D. Would be nice at least ;;; Commentary: ;; A simple way to have multiple terminals in emacs. just type "M-x new-term" ;; to start a new session ;;; Code: ;;;###autoload (defun new-term (program) "start a new terminal emulator in a new buffer" (interactive (list (read-from-minibuffer "Run program: " (or explicit-shell-file-name (getenv "ESHELL") shell-file-name)))) (let* ((term-list (seq-filter (lambda (s) (string-match-p "terminal" (buffer-name s))) (buffer-list))) (term-num (number-to-string (length term-list)))) (set-buffer (make-term (concat "terminal-" term-num) program)) (term-mode) (term-char-mode) (switch-to-buffer (concat "*terminal-" term-num "*")))) ;;; new-term.el ends here